[DELPHI] Problem z stringiem

0

Witam.

Mam problem z odczytaniem pliku txt do stringa. Otóż zawsze mi dzieli jakoś dziwnie string przy nowej linii, co wygląda w debuggerze tak:

ZnakiZnakiZnakiZnakiZnakiZnaki[El]'#$D#$A'ZnakiZnakiZnakiZnakiZnakiZnaki[EL]

Dodam iż to jest zwykły typ string, nie żadne TStrings czy Bóg wie co jeszcze. [EL] Oznacza koniec linii. Nie wiem czemu mi dodaje te znaki:

'#$D#$A'

Mógłbym je chyba usunąć przez polecenie Delete, ale to jest droga trochę okrężna, bo jeśli wkradnie się trochę inny ciąg to co będzie? Dodam iż ten ciąg nie jest tak normalnie widoczny, jak daję w showmessage ten cały string, showmessage po prostu robi mi przełamanie wiersza, i nic więcej..

Aha, i jeszcze żebym nie zapomniał, plik tekstowy ma przełamanie wiersza równo co 76 znaków, może da się to jakoś obejść żeby w stringu co 76 znaków dodawało [EL], a jeśli zostanie już odczytane 12 linii (12 razy wstawione [EL]) wykonało jakąś operację?

Cały plik odczytuję w ten sposób:

 while not Eof(TF) do
          begin
            Read(TF, C);
            Inc(ILZnakow);
            if Eoln(TF) then
            begin
              Tresc := Tresc+'[EL]';
              Inc(ILLini2);
              ILZnakow := 0;
              if ILLini2 = 12 then
              begin   
              Tresc := '';
              ILLini2 := 0;
              end;
            end
            else
              Tresc := Tresc+String(C);
          end;
0

#$D#$A to jest inaczej #13#10 czyli \r\n czyli zwykły Windowsowy znak końca linii. Wczytujesz go z pliku do tego stringa, możesz usuwać przez Delete.

0

Myślę, że to powinno działać. Odczytuje po prostu po kolei linie...

var TempStr,S:string;
begin
  while not Eof(TF) do begin
    Readln(TF,TempStr);
    S:=S+TempStr+'[EL]';
  end;
end.

[EDIT]: Ktos mnie uprzedził!

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