Witam, dość długo męczyłem temat zapisywania i odczytywania stringu do i z pliku przez TFileStream. Jak na razie poprawnie udało mi się tylko zapisać dane. Odczyt udał się jedynie wtedy gdy plik nie zawierał polskich znaków, zapisać polskie znaki - NIE MA problemu, odczytać to co uprzednio zapisałem - wychodzi coś jak "żółćcl1" + jakieś znaki formatujące tak że nie widać "[" z ShowMessage. Więc zgłaszam się do was z nędznym ochłapem kodu: Jak odczytać poprawnie String z pliku przez TFileStream.
procedure TForm1.FormCreate(Sender: TObject);
var
S: WideString;
FS: TFileStream;
begin
//S := 'żółtażółć';
FS := TFileStream.Create('test.txt', fmOpenReadWrite);
ShowMessage(IntToStr(FS.Size));
//FS.WriteBuffer(Pointer(S)^, Length(S)*2);
SetLength(S, FS.Size div 2);
FS.ReadBuffer(Pointer(S)^, FS.Size div 2);
ShowMessage(']'+S+'[');
FS.Free;
Application.Terminate;
end;
Chciałbym dodać tylko, że nigdy nie używałem tego kodu do zapisu i odczytu po kolei przy tej samej kompilacji programu, wiem, że to nie przejdzie przez pozycję kursora w pliku, nie zeruje jej by odczytywać od początku, więc zawszę albo tylko zapisuje, później zapis daję w komentarz i kompiluje program by tylko odczytywał, albo na odwrót.
Jeśli macie jakieś uwagi co do zapisu, walić śmiało, muszę się w końcu nauczyć jak zapisać dane tekstowe z polskimi znakami aby dało się je odczytać i jak je po tym odczytać.
Wszystko to potrzebne mi jest do tworzenia pliku z ustawieniami programu w który będzie zawierał różne dane, nie tylko tekst.