zmiana danych w strumieniu

0

siema

mam <B>Strumien</B> (TFileStream) i w nim jakies dane.
chcialbym wykasowac z niego wszystkie dane i na ich miejsce wstawic jakies inne.
gdyby to byl np TMemoryStream zrobilbym

strumien.clear
strumien.write(tmp,sizeof(tmp)); //tmp jest jakims tam rekordem

ale niestety nie jest to TMemoryStream, a co za tym idzie nie ma metody CLEAR... :/

Chcialbym zrobic ta podmiane bez zamykania Strumienia
czy jest to mozliwe????

0

FileStream jest strumieniem plikowym, więc po prostu zamiast dziada otwierać do odczytu, utwórz go, i będziesz pisał w nim od nowa.

t := TFileStream.Create('c:\plikstrumienia.str',fmCreate);
t.write(tmp,sizeof(tmp));

dlatego właśnie nie było sensu wstawiania metody CLEAR, bo to samo realizuje DeleteFile lub otwarcie z utworzeniem - czyli wyzerowanie pliku

0

a czy musze, przed ponownym utworzeniem zwolnic strumien?

czy moge po prostu:

strumien := TFileStream.create('nazwapliku.dat',fmCreate);
//jakies operacje na strumieniu
strumien := TFileStream.create('nazwapliku.dat',fmCreate); //TA SAMA NAZWA PLIKU - chce go wyczyscic
//jakies operacje
strumien.free;

1 użytkowników online, w tym zalogowanych: 0, gości: 1