Strumienie

0

Mam mały problemik.Stworzyłm plik w którym zapisuje liczbę i tekst.

Procedurea zapisująca
[code]
procedure TForm1.Button1Click(Sender: TObject);
var
stream : TFileStream;
wiek : integer;
imie : array[0..255] of char;
rozmiarTekstu : byte;
begin
wiek := StrToInt(editWiek.Text);

stream := TFileStream.Create('plik.for',fmCreate);
stream.Write(wiek,4);
rozmiarTekstu := Length(editImie.Text);
CopyMemory(@imie,PChar(editImie.Text),rozmiarTekstu);
stream.Write(rozmiarTekstu,1);
stream.Write(imie,rozmiarTekstu);
stream.Free;

end;
[/code]

Procedura odczytująca
[code]

procedure TForm1.Button2Click(Sender: TObject);
var
str : TFileStream;
opis : string;
tekst : array[0..255] of char;
wiek : integer;
rozmiarTekstu : byte;
begin
str := TFileStream.Create('plik.for',fmOpenRead);
str.Read(wiek,4);
str.Read(rozmiarTekstu,1);
str.Read(tekst,rozmiarTekstu);

opis := tekst;
lblTekst.Caption := opis;
lblLiczba.Caption := inttostr(wiek);

str.Free;

end;

[/code]

Zapis pliku jest poprawny (sprawdzałem w HexEdytorze).Problem pojawia się podczas odczytu.Liczba zostaje prawidłowo odczytana,ale do tekstu dodawane są krzaczki.Czy ktoś wie,w czym problem??

0

trzeba chyba zmieniać literka po literce... :-8 taka tabelka pomocnicza :)
? ż ? ć Ľ ł ó ę
ą ż ś ć ź ł ó ę

"?" temu znaczkowi odpowiada "ą", itd..

0

trzeba chyba zmieniać literka po literce... :-8 taka tabelka pomocnicza :)
? ż ? ć Ľ ł ó ę
ą ż ś ć ź ł ó ę

"?" temu znaczkowi odpowiada "ą", itd..

?? czyli?? Program wyświetla CAŁY tekst zapisany do pliku i dodaje na końcu do niego jakieś krzaczki.Myślałem coprawda żeby je zwyczajnie obciąć :) ale nie jest to chyba eleganckie rozwiązanie.

0

myślałem że masz popieprzone kodowanie. w takim razie za dużo odczytujesz - musisz chyba obciąć...

0

Też tak myślałem na początku,ale gdy przy odczytywaniu sprawdzam wartość zmiennej rozmiarTeksu(która,jak sama nazwa wskazuje,przechowuje rozmiar tekstu) to zgadza się ona z rozmiarem tekstu,który zapisywałem.Przy odczytywaniu tekstu używam jej jako rozmiar tekstu :)

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