Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TstringList [D2005, XP]


Std ©   (2006-04-08 14:41:00) 

Доброго времени суток.
Подскажите что не так в коде и как пофиксить

var
datlist,list2:TStringList;
i,j:interer;
begin
...
 for I:= 0 to datlist.Count do
   begin
     if list2.Count=0 then list2.Add(datlist.Strings[i]);
     for j:=0 to List2.Count do
       begin
         if datlist.Strings[i]<>list2.Strings[j] then list2.Add(datlist.Strings[i]);
       end;
   end;

выбивает ошибку List index out of bounds(1)
Суть в том что бы из первого списка перенести строки без повторений во второй список. Т.Е. если в списке1 есть строки
привет
привет
превед
то во втором списке должно быть только две троки
привет
превед
использовать stringList.Sorted:=true; stringList.Duplicates нельзя потому что последовательность строк во втором списке должна совпадать с последовательностью строк в первом


Anatoly Podgoretsky   (2006-04-08 19:20:00) [1]

List2.assign


Anatoly Podgoretsky   (2006-04-08 19:20:00) [2]

List2.Add


EvS   (2006-04-08 14:50:00) [3]

var
datlist,list2:TStringList;
i:interer;
begin
...
for I:= 0 to datlist.Count-1 do
   if list2.IndexOf(datlist.Strings[i])=-1 then list2.Add(datlist.Strings[i]);

end;


MBo   (2006-04-08 14:49:00) [4]

По причине ошибки:
for I:= 0 to datlist.Count -1
for j:=0 to List2.Count -1

По сути  (полное решение):
for i:= 0 to DatList.Count-1 do begin
 if List2.IndexOf(DatList[i]) < 0 then
    List2.Add(DatList[i]);
 
P.S. И не забыть, что оба списка должны быть созданы.


Джо   (2006-04-08 14:48:00) [5]

 for I := 0 to Strings1.Count-1 do
 begin
   if Strings2.IndexOf(Strings1[I]) = -1 then
     Strings2.Add(Strings1[I])
 end


Наверх

Титульная страница Поиск, карта сайта Написать письмо