ďťż

Ładny brzuch

Witam.
Potrzebuje stworzyć swój własny format zapisu plików. W pewnej książce do Delphi znalazłem, że do tego wykorzystuje się packed record. Jednak okazalo się, że ma to swoje ograniczenia - szczególnie w przypadku zmiennych typu String, ponieważ packed record akceptuje wyłącznie zmienne o długości nie przekraczającej 255 znaków. Więc pomyślałem sobie, że może da się to zrobić tak:

//....  Tekst: array of String[255]; //....

Niestety kompilator nie chce takiego czegoś, ponieważ musze zadeklarować ile będzie miał array, lecz nie mogę tego zrobić, bo nie wiem ile będzie tekstu do zapisania. Chchaiłem także użyć TMemoryStream zamiast Stringa, ale też się nie udało :(

Więc moje pytanie brzmi: jak zrobić swój własny format pliku skoro nie wiem jaka będzie długość tekstu i nie mogę dodawać MemoryStream.

Piszę program szyfrujący pliki tekstowe, jednak do mojego programu potrzebuje właśnie plików typowanych a nie zwykłego szyfrowania binarnego ;)

OMG: Ależ ten post jest zawiły ;) Ale mam nadzieje, że i tak ktoś mi pomoże :)

Pozdrawiam
I za wszelką pomoc z góry dziękuje :)




~

Kombinowalem i wyszlo mi cos takiego, ale nie wiem czy to tak powinno byc - pewnie nie, bo plik jest strasznie duzy :( (przez tego integera)

type TTest = record TxtLen:integer; Txt:string[1]; end; TABC = file of TTest; var Form1: TForm1; Test: TTest; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var abc: TABC; tmp: Integer; begin AssignFile(abc, 'C:\test.dat'); if FileExists('C:\test.dat') then Reset(abc) else ReWrite(abc); Seek(abc, FileSize(abc)); Test.TxtLen:= Length(Memo1.Text); Write(abc, test); Test.TxtLen:=0; for tmp:=1 to length(Memo1.Text)-1 do begin Test.Txt:= Memo1.Text[tmp]; Write(abc, test); end; CloseFile(abc); end;


~~


Udało mi się ten kod co go napisałem powyżej zmienić trochę i już tak dużo nie zajmuje :)

Hehe migajek - dopiero teraz zrozumiałem o jaki efekt Ci chodzi :D

Dzięki za pomoc :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •