Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.27;
Скачать: CL | DM;

Вниз

Проект вызвал исключение EStringListError   Найти похожие ветки 

 
Doom-2   (2007-05-07 13:48) [0]

Во время поиска файлов я добавляю в ListBox уникальные (не повторяющиеся) и удаляю названия файлов, которые с таким именем были в списке. Пока пробую так: (файлы ххх.mp3)
    nedobavit:=false;
    for v:=0 to ListBox.Count-1 do
    begin
     if  ListBoxSpisok.Items[v]= SR.Name+"1"
     then begin
      ListBox.Items.Delete(v);
      nedobavit:=true;
     end;
    end;
    if nedobavit =false then ListBox.Items.Add(SR.Name);

Появляется ошибка: Проект вызвал исключение EStringListError с сообщением "List index out of bounds (0). Процесс остановленю"
Подскажите - как исправить?


 
Doom-2   (2007-05-07 13:56) [1]

А при ListBox.Count вместо ListBox.Count-1
просто не срабатывает!


 
Юрий Зотов ©   (2007-05-07 13:59) [2]

for v:= ListBox.Count-1 downto 0 do


 
Desdechado ©   (2007-05-07 13:59) [3]

Для циклов FOR правая граница вычисляется заранее, а ты внутри цикла меняешь количество строк в списке. Естественно, если было 10, а ты 5 удалил, то попытка удаления 6-го будет ошибочной (ведь цикл до 10).


 
Ega23 ©   (2007-05-07 14:08) [4]

Break поставь внутре


 
Doom-2   (2007-05-07 14:20) [5]

Всё работает!

Вот только с первой строкой никак работать не хочет! Даже, если находит такую запись, - не удаляет! (пропускает мимо)


 
Doom-2   (2007-05-07 14:29) [6]

for v:= ListBoxSpisok.Count downto 0 do
- так выскакивает (если ListBox был пустой) - List index out of bounds (0)

for v:= ListBoxSpisok.Count-1 downto 0 do
- так не участвует в процессе первая строка!


 
Reindeer Moss Eater ©   (2007-05-07 14:31) [7]

Это оптический обман


 
Doom-2   (2007-05-07 14:38) [8]

Оптический обман?????!!!!!

Почитай -
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1035

Другое дело, что я в меру своей "зелености в Delphi" так и не понял - как это исправить, вот и обратился!


 
Reindeer Moss Eater ©   (2007-05-07 14:46) [9]

В твоем случае это оптический обман.


 
Reindeer Moss Eater ©   (2007-05-07 14:55) [10]

Ссылка в [8] не имеет ни малейшего отношения к твоей ошибке.

Смотри внимательней что за ерунду ты написал.

for v:=0 to ListBox.Count-1 do
   begin
    if  ListBoxSpisok.Items[v]= SR.Name+"1"


 
Leonid Troyanovsky ©   (2007-05-07 15:01) [11]


> Reindeer Moss Eater ©   (07.05.07 14:46) [9]

> В твоем случае это оптический обман.

А почему оптический? Это, IMHO, вульгарный :)


> Doom-2   (07.05.07 14:29) [6]

> for v:= ListBoxSpisok.Count-1 downto 0 do
> - так не участвует в процессе первая строка!

Это утверждение - ложно.

--
Regards, LVT.


 
Reindeer Moss Eater ©   (2007-05-07 15:16) [12]

> В твоем случае это оптический обман.

А почему оптический? Это, IMHO, вульгарный :)


Обман и оптический (у автора) и вульгарный (попытка ввести в заблуждение форум, сделав из наблюдаемых фактов неверные выводы)



Страницы: 1 вся ветка

Текущий архив: 2007.05.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.09 c
2-1178461787
I-New
2007-05-06 18:29
2007.05.27
GIF в GraphicEx


2-1178697461
Garacio
2007-05-09 11:57
2007.05.27
TargetSource.CopyFrom(SourceSize, CopySize);


1-1174765457
Дмитрий Белькевич
2007-03-24 22:44
2007.05.27
Можно ли в методе объекта узнать название метода?


3-1173446481
Thely
2007-03-09 16:21
2007.05.27
Скрипт в IBX


6-1163753017
Layner
2006-11-17 11:43
2007.05.27
TIdTCPServer - узнать IP или имя кто к нему приконнектился...