Hogyan tudok típusos állományba írni, úgy hogy ne törölje az előző adatot?
Szia.
Rewrite (f) helyett használj Reset (f)-t.
Eldönteni, hogy a fájl létezik-e vagy nem pedig az ioresult függvény segitségével tudod.
Turbó pascal help Ioresult minta program (itt is tipusos fájlról van szó, csak a tipus az byte) :
Sample Code :
{IOResult.PAS}
{Sample code for the IOResult function.}
{ For Windows: }
{ uses WinCrt; }
var F: file of Byte;
begin
{ Get file name command line }
Assign(F, ParamStr(1));
{$I-}
Reset(F);
{$I+}
if IOResult = 0 then
Writeln('File size in bytes: ', FileSize(F))
else
Writeln('File not found');
end.
Sok sikert.
Üdv.
Szia köszi a gyors választ! Ha a rewrite helyett reset-l nyitom meg a filet akkor is teljesen felülírja a file-m tartalmát és mindig csak az az egy adat lesz benne amit éppen megadok a programban. Pár napja ezen gondolkodom hogyan lehetne ezt megoldani. Próbáltam úgy is,hogy a filesize megadja fileban az adatok számának a végét és seek-l odaállítom a pozíciót a fileba írás előtt, így meg maradttak a beírt számok több futtatásra, de mind kinullázódott csak az utolsó nem amit éppen megadtam.
Tömbökkel is próbálkoztam, sőt a beolvasás tömbe olvas be.
Szia.
Akkor az a baj, hogy mindig az első rekordhelyre irsz (vagy 0. rekord).
Megnyitott filen belüli a pozicionálás : seek
Filében lévő rekordszám lekérdéezése (utolsó rekord megállapitása végett) : filesize
Tipusos álományoknál is ugyanolyan jól müködnek.
Seek minta program :
Sample Code:
{FilePos.PAS}
{Sample code for the FilePos and FileSize functions, and the Seek
procedure.}
{ For Windows: }
{ uses WinCrt; }
var
f: file of Byte;
size : Longint;
begin
{ Get file name from command line }
Assign(f, ParamStr(1));
Reset(f);
size := FileSize(f);
Writeln('File size in bytes: ',size);
Writeln('Seeking halfway into file...');
Seek(f,size div 2);
Writeln('Position is now ',FilePos(f));
Close(f);
end.
Sok sikert.
Üdv.
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!