Usuwanie linii kodu od lewej

0

Cze. Pisze program który by usunął słowa z pliku LOG.
Np:

22-04-2004 12-49-02 | AktywneOkno => [mmtask]
22-04-2004 12-49-06 | AktywneOkno => []
22-04-2004 12-49-15 | AktywneOkno => [mks_mail - Skaner poczty przychodzącej]
22-04-2004 12-49-15 | AktywneOkno => [Monitor mks_vir - Lista zainfekowanych obiektów]
22-04-2004 12-49-19 | AktywneOkno => [Tlen.pl]
22-04-2004 12-49-19 | AktywneOkno => [mmtask]
22-04-2004 12-49-25 | AktywneOkno => []
22-04-2004 12-49-25 | AktywneOkno => [000104154ŽŔ]
22-04-2004 12-49-25 | AktywneOkno => [Monitor mks_vir - Lista zainfekowanych obiektów]
22-04-2004 12-49-29 | AktywneOkno => []
22-04-2004 12-49-46 | AktywneOkno => [Sieć Microsoft Hearts]--F2
22-04-2004 12-50-57 | AktywneOkno => [Tabela wyników -- Ostatnie miejsce]
22-04-2004 12-50-59 | AktywneOkno => [Sieć Microsoft Hearts]
22-04-2004 12-51-52 | AktywneOkno => [Tabela wyników -- Trzecie miejsce]
22-04-2004 12-51-54 | AktywneOkno => [Sieć Microsoft Hearts]
22-04-2004 12-52-59 | AktywneOkno => [Tabela wyników -- Ostatnie miejsce]
22-04-2004 12-53-04 | AktywneOkno => [Sieć Microsoft Hearts]
22-04-2004 12-53-54 | AktywneOkno => [Tabela wyników -- Ostatnie miejsce]
22-04-2004 12-53-57 | AktywneOkno => [Sieć Microsoft Hearts]
22-04-2004 12-54-54 | AktywneOkno => [Tabela wyników -- Ostatnie miejsce]
22-04-2004 12-54-57 | AktywneOkno => [Sieć Microsoft Hearts]
22-04-2004 12-55-52 | AktywneOkno => [Tabela wyników -- Ostatnie miejsce]
22-04-2004 12-55-55 | AktywneOkno => [Sieć Microsoft Hearts]
22-04-2004 12-56-50 | AktywneOkno => [Tabela wyników -- Ostatnie miejsce]

i chciałbym aby usunął jednocześnie wszystkie linie kodu od lewej do znaku ">",
czyli:
22-04-2004 12-49-02 | AktywneOkno =

lub tylko np: same słowa w kilku przejściach pokolei (AktywneOkno, [mmtask],[Tabela wyników -- Trzecie miejsce], itd)

Z góry dziękuję

0

Topornie: Idzoesz po kolei po liniach i usuwasz znaki, az znak = '>'

0

Prawdę mówiąc jestem trochę początkujący w Delphi i nie pamiętam funkcji szukania znaku ale bez niej mi się obejdzie. Ten tekst nie był sprawdzany w Delphi:

function zamien(tekst,znak:string);
var i:integer;
 nowys:string;
 wykryto:boolean;
begin
 wykryto:=false;
 i:=0;
 while (i<strlen(tekst)) and (wykryto=false) do
  if (tekst[i]=znak) wykryto:=true;
 while (i<strlen(tekst)) do nowys:=nowys+tekst[i];
 Result:=nowys;
end;

var f,newf:textfile;
     s:string;
begin
 AssignFile(f,'log.ini');
 AssignFile(newf,'log.txt');
 Reset(f);
 Rewrite(newf);
 while not eof(f) do begin
  readln(f,s);
  s:=zamien(s,'>');
  writeln(newf,s);
 end;
 CloseFile(f);
 CloseFile(newf);
end;

jak już mówiłem źródło jest amatorskie i niesprawdzone :)
licze również na pomoc w http://4programmers.net/Forum/viewtopic.php?id=52858

0

podpowiem: funkcja Pos(Substr, str) podaje pozycję w stringu Str na której znajduje się Substr (też string), jeżeli nie znajdzie zwraca 0;

0

No to w takim razie to będzie dużo prostsze:

var f,newf:textfile;
     s:string;
begin
 AssignFile(f,'log.ini');
 AssignFile(newf,'log.txt');
 Reset(f);
 Rewrite(newf);
 while not eof(f) do begin
   readln(f,s);
   s:=copy(pos('>',s),strlen(s),s);
   writeln(newf,s);
 end;
 CloseFile(f);
 CloseFile(newf);
end;

dzięki Ktos, już nigdy nie zapomnę nazwę tej funkcji. Jeszcze nie jestem pewny co do kolejności parametrów pos bo nie chce mi się delphi odpalać, oraz typu danych atrybutów dla strlen czy to czasem nie ma być PChar, ale chyba nie

0

Dziękuję wszystkim za odpowiedzi.
Dziękuje że chcieli poświęcić trochę czasu na wyszukanie tej funkcji.

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