Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2013, 09:49   #1
BizCray
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 15
По умолчанию Не учитываются все данные в TStringList

Доброе время суток.
Прошу помощи, что бы разобраться в сложившийся проблеме.
Код:
Var
tList : TStringList;
i : Integer;

begin
 tList := TStringList.Create;
 tList.Assign(ItemsList);
 i := 0;
 while (i < tList.Count) do
  begin
   if (Pos(UpperCase(Edit1.Text), tList.ValueFromIndex[i]) <> 1) then tList.Delete(i)
    else Inc(i);
  end;
 ListBox1.Items.Assign(tList);
 tList.Free;
 ListBox1.Visible := true;
end;
При трассировке программы данные норм. Функция Pos работает "правильно", но не пойму откуда "пропадает/появляется" первый символ в строке. =(

Среда: Borland Delphi 7
кто хочет попробовать: см. вложения.

Вопрос №2.
может есть решения готовые, а я о них не знаю.
Нужно что бы при вводе первых букв внизу "под вводом" высвечивался список вариантов. (пример, как в поисковых системах).
Спасибо.
Вложения
Тип файла: zip listBox_search.zip (6.4 Кб, 8 просмотров)
BizCray вне форума Ответить с цитированием
Старый 02.10.2013, 10:43   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

А с какого перепуга вы решили использовать функцию ValueFromIndex?
northener вне форума Ответить с цитированием
Старый 02.10.2013, 11:00   #3
BizCray
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
А с какого перепуга вы решили использовать функцию ValueFromIndex?
А что в ней такого страшного и запрещенного?
BizCray вне форума Ответить с цитированием
Старый 02.10.2013, 11:09   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Сообщение от BizCray Посмотреть сообщение
А что в ней такого страшного и запрещенного?
Она рассчитана на применение в том случае когда строки списка выглядят как name=value. В противном случае она имеет некий особый алгоритм. Если вам интересно, добавьте 2 мемо на форму и выведите в первый сами строки из вашего стринглиста, а во второй значения ValueFromIndex для этих строк. И сравните.
northener вне форума Ответить с цитированием
Старый 02.10.2013, 11:34   #5
BizCray
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Она рассчитана на применение в том случае когда строки списка выглядят как name=value. В противном случае она имеет некий особый алгоритм.
Сделал. То же самое. Эту разницу я уже прочувствовал и до этого.

Цитата:
Сообщение от northener Посмотреть сообщение
Если вам интересно, добавьте 2 мемо на форму и выведите в первый сами строки из вашего стринглиста, а во второй значения ValueFromIndex для этих строк. И сравните.
А теперь или я правильно понял:
смотрел описание данной функции Classes.pas
Выходит, что у меня "глотается" первый символ потому-что имя пустое. Я правильно понял? Поэтому залазит на строку?
Поправте, пожалуйста, если не так.

Последний раз редактировалось BizCray; 02.10.2013 в 11:38.
BizCray вне форума Ответить с цитированием
Старый 02.10.2013, 11:34   #6
BizCray
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 15
По умолчанию

................

Последний раз редактировалось BizCray; 02.10.2013 в 11:37.
BizCray вне форума Ответить с цитированием
Старый 02.10.2013, 11:41   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Выходит, что у меня "глотается" первый символ потому-что имя пустое. Я правильно понял?
Почти. У вас вообще нет имени и нет символа "=".
Чем вас не устраивает вариант
Код:
if (Pos(UpperCase(Edit1.Text), tList.[i]) <> 1) then tList.Delete(i)
?
northener вне форума Ответить с цитированием
Старый 02.10.2013, 11:46   #8
BizCray
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 15
По умолчанию

Устраивает. Уже переделал.
Хотел понять просто что да как.
Понял, я так думаю, и поэтому тему закрываем.
Спасибо за помощь и уделенное время, что дало результат "пенька для разгона".
BizCray вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные из Memo в TStringList Ilya_L Помощь студентам 2 03.12.2011 07:45
Перенести данные из TString в TStringList . Сергей Л Общие вопросы Delphi 1 02.11.2011 11:14
Автофильтр (фильтрует не все данные) GieNa Microsoft Office Excel 9 18.07.2011 17:02
Удалить все данные из StringGrid-a postaveche Компоненты Delphi 7 14.01.2011 13:20
Как заставить TStringlist отобразить данные? ЛеньПридумыватьНик Помощь студентам 2 07.03.2010 23:28