Miért nem megy? Pascalban csináltam és ment, de mivel túl nagy számokról van szó a longint már nem elég és csak a freepascalban van int64, ami már elég exitcode 2 vagyis nem létező fájl, de létezik, szerintem a hiba az assign-nél van
assign(g,'prim2.txt');
ez van beírva, a change directory-nál arra a mappára van állítva, ahol a txt van, és mondom pascalban működött ugyanezzel a módszerrel
procedure Beolv(i:byte);
begin
str(i,Fajl);
assign(f,Fajl+'.txt');
reset(f);
readln(f,n);
for i:=1 to n do read(f,Szamjegy[i]);
close(f);
end;
Itt jelez hibát
És mi kerül a Fajl változódba?
Esetleg próbáld így:
Fajl:=Fajl+'.txt';
Writeln(Fajl);
if FileExists(Fajl) then
Assign(f,Fajl)
else writeln('Fájl nem létezik');
A FileExists függvény működéséhez vedd fel a uses után a SysUtils unitot.
i értéke kerül a fájl nevű string válôtozóba: str(i,Fajl);
mivel a txt fájlok nevei a következőképpen néznek ki:
1.txt, 2.txt, 3.txt...
és elég ennyit csinálnom pl.:
for i:=1 to 10 do
begin
Beolv(i);
Megold(i);
end;
FreePascal 2.6 IDE
Turbo Pascal 7-et amúgy, csak ahogyan a kérdésben is írtam nagyobb változóra volt szükségem, az int64 már jó lenne, de tudomásom szerint a turbo pascalban a legnagyobb a longint, de az nem elég
igen vannak ilyen sorok is, ez csak egy részlet a programomból
és ismétlem, nincs hiba a kompilálásnál
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!