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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2017, 21:23   #1
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию Поиск строк DBGrid

Делаю поиск с помощью кода
Код:
if not DBGrid1.DataSource.DataSet.Locate('Группа', RzEdit1.Text, [loCaseInsensitive, loPartialKey]) then
    statusBar1.Panels.Items[1].Text:='Запись не найдена'
    else
  statusBar1.Panels.Items[1].Text:='Запись найдена';
end;
Не получается с помощью кнопки далее перейти к следующей строке
Код:
form1.DBGrid1.DataSource.DataSet.First;
while not (form1.DBGrid1.DataSource.DataSet.Eof) do begin
     DBGrid1.DataSource.DataSet.locate('Группа', RzEdit1.Text, loPartialkey],);
if pos(RzEdit1.Text, form1.DBGrid1.DataSource.DataSet.FindField('Группа').asstring) > 0 then exit;
  form1.DBGrid1.DataSource.DataSet.Next;
end;

StatusBar1.Panels.Items[2].Text:='Ищем: ' +RzEdit1.Text;
Aleksandr вне форума Ответить с цитированием
Старый 20.11.2017, 21:44   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Что по-твоему поиск следующей? Прокомментируй каждую строку из нижнего кода

А искать так:
указатель на следующую от найденной, а не на начало
цикл пока не конец данных
если условие выполняется то нашел и выход из цикла
иначе на следующую и на начало цикла

дерзай ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 20.11.2017 в 21:59.
Аватар вне форума Ответить с цитированием
Старый 21.11.2017, 08:28   #3
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Я дико извиняюсь за свою некомпетентность, но зачем в ДБГрид искать строки руками, если есть фильтрация и SQL?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 21.11.2017, 08:55   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Почему бы и нет? Если выбранных относительно не много само собой. Найти среди выбранных записей первую по какому-то критерию и следующие удовлетворяющие ему, обычно по неупорядоченному полю. По упорядоченному следующие и так видны. При этом остальные условно в зоне видимости.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализовать два метода поиска строк в массиве: поиск перебором, бинарный поиск на языке Pascal DimzNOVIchok45 Помощь студентам 7 19.09.2014 21:40
Поиск и вывод строк в DBGrid VIRKUT Помощь студентам 0 02.06.2013 23:17
Поиск нескольких строк в DBGrid pr1nc БД в Delphi 6 16.12.2012 19:39
поиск строк и копирование ячеек с этих строк Santla789 Microsoft Office Excel 2 19.11.2012 11:15
Диффиринцирование строк в DBGrid - ? Evgenii БД в Delphi 5 21.07.2009 08:57