TStringList - parsiranje...

TStringList - parsiranje...

offline
  • l0s7 
  • Novi MyCity građanin
  • Pridružio: 04 Feb 2009
  • Poruke: 11

Nisam bas siguran da sam postavio pravilan naslov...

  Lista := TStringList.Create;   Lista.LoadFromFile('temp.txt');   while i < Lista.count do   begin     s := Lista[i];     AB := copy(s, 1, pos('QWE', s) -1)    //if AB = copy(s, 1, pos('QWE', s) -1) then Lista[i]:= AB; ?     inc(i);   end;

Trebam da procitam svaki string iz temp.txt, ako sadrzi npr NekaRecQWE
da upise samo NekaRec, ovo QWE se odbacuje.
Kako da postavim uslov da kada linija sadrzi QWE snimi u toj istoj liniji rezultat iz AB?

Hvala unapred!



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Opet nisi inicijalizovao varijablu I pre petlje Smile

Lista := TStringList.Create;   Lista.LoadFromFile('temp.txt');     i := 0;   while i < Lista.count do   begin     if pos('QWE', lista[i]) > 0 then     lista[i] := copy(lista[i], 1, pos('QWE', lista[i]) -1);     inc(i);   end;

Inace, ukoliko ti je unapred poznato koliko krugova petlja treba da se izvrsi, onda je mozda zgodnije koristiti FOR petlju.
WHILE je zgodna ukoliko ti je potrebno da uslov petlje menjas u toku izvrsavanja same petlje.

Lista := TStringList.Create;   Lista.LoadFromFile('temp.txt');     for i := 0 to Lista.count -1 do   begin     if pos('QWE', lista[i]) > 0 then     lista[i] := copy(lista[i], 1, pos('QWE', lista[i]) -1);   end;

Imas jos jednu potencijalnu gresku - fajl 'temp.txt' trazis po relativnoj putanji koja se inace izracunava u odnosu na sadrzaj varijable CurrentDir.
Po startovanju programa, CurrentDir pokazuje na folder u kojem je tvoj program, ali ce se menjati ukoliko tvoj program pristupa razlicitim folderima na kompu.



offline
  • l0s7 
  • Novi MyCity građanin
  • Pridružio: 04 Feb 2009
  • Poruke: 11

Ne dozvoljava mi da pisem u TStringList kada mi je
lista.Sorted := true;
a kada izbacim ili stavim (sorted)posle izvrsavanja tog koda, onda duplira svaku liniju
cak i kada stavim
lista.Duplicates := dupIgnore





-k, hvala

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Ako ti ne dozvoljava upis, onda smestis sadrzaj linije u varijablu, izbacis ono sto ne treba da ima, obrises liniju iz StringList, pa je onda dodas ispravljenu sa Sortirana_Lista.Add(linija);

Ko je trenutno na forumu
 

Ukupno su 785 korisnika na forumu :: 15 registrovanih, 3 sakrivenih i 767 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Ben Roj, Bokiboks, darios, dragoljub11987, goxin, kuntalo, kybonacci, novator, nuke92, Simon simonović, slonic_tonic, Vzor50, Zikapk, zlaya011, šumar bk2