Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Narciso - Gennaio 23, 2013, 11:23:23 am

Titolo: problema con tstringlist...
Inserito da: Narciso - Gennaio 23, 2013, 11:23:23 am
immaginiamo di avere due stringlist sl1 sl2.... immaginiamo di riempire la prima con i numi propri maschili.... in italiano.... e la seconda con nomi femminili.

Volendo eliminare dallla prima i nomi che appaiono uguali nella seconda.. ( per esempio Andrea e Andrea) ....

verrebbe immediato...

for x:= 0 to sl1.count-1 do
for y:= 0 to sl2.count-1 do
if sl1.strings


purtroppo pero' anche in questo caso la procedura e' scorretta poiche' la sl1... si trasforma e quindi perde un elemento non appenna viene effettuato il delete....

il ciclo va in errore.....

Come risolvereste?


Titolo: Re:problema con tstringlist...
Inserito da: nomorelogic - Gennaio 23, 2013, 11:34:39 am
prova con qualcosa tipo
Codice: [Seleziona]
var scan1: integer;
begin
   scan1 := 0;
   while (scan1 < sl1.Count) and (sl1.Count > 0) do
       if sl2.IndexOf(sl1[scan1]) > 0 then
          sl1.delete
       else
          inc(scan1);
end;


NB: l'ho scritto qua, non l'ho provato :)
Titolo: Re:problema con tstringlist...
Inserito da: bonmario - Gennaio 23, 2013, 01:24:20 pm
Oltre a quello che ti ha scritto nomorelogic, ti conviene ordinare la stringa su cui fai l' "IndexOf", cosė la ricerca č pių veloce.


Ciao, Mario
Titolo: [RISOLTO]Re:problema con tstringlist...
Inserito da: Narciso - Gennaio 24, 2013, 07:03:21 am
GRAZIE MILLE
Titolo: Re:problema con tstringlist...
Inserito da: bonmario - Gennaio 24, 2013, 08:00:08 am
Oltre a quello che ti ha scritto nomorelogic, ti conviene ordinare la stringa su cui fai l' "IndexOf", cosė la ricerca č pių veloce.


Ciao, Mario

Ops... intendevo dire di ordinare la TStringList su cui fai l' "IndexOf" .....

Ciao, Mario