Kezdőoldal » Számítástechnika » Programozás » Pascal: fájolvasásnál dinamiku...

Pascal: fájolvasásnál dinamikus tömböt nem lehet pufferként felhasználni?

Figyelt kérdés

Alábbi kód nem akar működni:


program dinamikus_olvasas;


var

data : array of byte;

f, f2 : file of byte;

mennyi,nr,nw:longint;

begin

assign(f,paramstr(1));

reset(f);

assign(f2,paramstr(2));

rewrite(f2);

mennyi:=91000;

setlength(data,mennyi);

repeat

blockread(f,data,mennyi,nr);

blockwrite(f2,data,nr,nw);

until nr=0;

close(f);

close(f2);

end.



2016. okt. 31. 16:15
 1/7 anonim ***** válasza:
A nem akar működni errefelé annyit jelent, mintha ha a háziorvosodnak annyit lennél hajlandó elárulni, hogy nem vagy jól.
2016. okt. 31. 16:36
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:

Runtime error 998.

Feltételezem a blockread produkálja a hibát.

Elvileg ez most ugyanúgy viselkedik mint egy statikus tömb vagy én csinálok valamit rosszul? Nem tudom miért nem tetszik neki.

Elvileg ez a hibakód amit visszaad az "ismeretlen hiba" kódja.

2016. okt. 31. 16:42
 3/7 anonim ***** válasza:
43%
De lehet, csak a dinamikus tömbnek is meg kell adni a méretét (init).
2016. okt. 31. 16:42
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
43%
SetLength
2016. okt. 31. 16:45
Hasznos számodra ez a válasz?
 5/7 ejbenjaro ***** válasza:

Mivel dinamikus a tömb ezért mind a beolvasásnál mind a kiírásnál meg kell adni az első elemét valahogy így:


program dinamikus_olvasas;


var

data : array of byte;

f, f2 : file of byte;

mennyi,nr,nw:longint;

begin

assign(f,paramstr(1));

reset(f);

assign(f2,paramstr(2));

rewrite(f2);

mennyi:=91000;

setlength(data,mennyi);

repeat

blockread(f,data[0],mennyi,nr);

blockwrite(f2,data[0],nr,nw);

until nr=0;

close(f);

close(f2);

end.

2016. okt. 31. 18:56
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:

Köszönöm a választ.

Valóban, így működik.

Előző válaszolón csodálkoztam, hogy a setlength-et nem vette észre a kódban...

2016. nov. 1. 06:43
 7/7 anonim ***** válasza:
pendragon retardált, el sem kell olvasni a válaszait.
2016. nov. 1. 09:09
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!