zmiana danych w strumieniu

zmiana danych w strumieniu
Johny_Morfina
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 448
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

Kopiuj
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????

frickle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 90
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.

Kopiuj
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

Johny_Morfina
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 448
0

a czy musze, przed ponownym utworzeniem zwolnic strumien?

czy moge po prostu:

Kopiuj
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;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.