Witam
Od niedawna próbuję pisać drobne aplikacje w Lazarusie. Ostatnio napotkałem na problem znaczników końca linii.
Otóż wczytuję plik generowany przez inną aplikację, który następnie przerabiam w swojej. Plik umieszcza znaczniki końca linii **LF**. W niektórych liniach jednak dodaje w środku linii znacznik **CR**. Wygląda to mniej więcej tak:
pierwsza linia <LF>
druga linia <LF>
trzecia <CR> linia <LF>
czwarta linia <LF>
W Delphi nie ma problemu, znaczniki CR są pomijane, natomiast Lazarus interpretuje je jako znaczniki końca wiersza.
Chciałbym się pozbyć znaczników CF w pliku. Na tą okoliczność wysmarowałem taką procedurkę (niestety nie działa):
procedure usun_cr(var plik:TextFile;nazwaPliku:string);
var
cr:integer;
ile:byte;
linia,pom:string;
tymcz:TStringList;
begin
tymcz:=TstringList.Create;
reset(plik);
cr:=0;
ile:=0;
pom:='';
linia:='';
while not eof(plik) do
begin
readln(plik,linia);
cr:=Pos(#13, linia);
if cr>0 then
begin
inc(ile);
if ile>1 then
linia:=pom+linia;
pom:=linia;
end//if cr>0
else
if ile>0 then
begin
linia:=pom+linia;
ile:=0;
cr:=0;
end;//if ile>0
if (cr=0)and(ile=0) then
tymcz.Add(linia);
end;//while not eof(plik)
CloseFile(plik);
tymcz.SaveToFile(nazwaPliku);
tymcz.Free;
end;//procedure usun_cr
Procedurę chciałbym używać wielokrotnie, gdyż dość często muszę przerabiać pliki generowane przez zewnętrzną aplikację. Nie jestem zawodowym programistą, zajmuję się raczej administrowaniem siecią, dlatego programowanie jest jedynie uzupełnieniem mojej pracy.
Z góry dzięki za wszelkie sugestie.