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

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

Расширенный поиск по базе [D6, Paradox]


Anton_2003 ©   (2003-08-30 00:17:00) 

У меня есть поле "Примечание", в этом поле имеется N многострочных записей.
Вопрос:
Как мне найти (по нажатию Button) например слово "шоссе" или любое другое слово в строке "Шла Маша по шоссе и сосала сушку". Пробовал искать в цикле While not Eof с помощью Pos, но с Pos у меня не выходит(руки не туда заточены), помогите советом, как это возможно осуществить с Pos или другим методом.


grusty   (2003-08-31 19:11:00) [1]

-->MsGuns

Это так принципиально? Мне кажется, что главное показать суть...


MsGuns   (2003-08-31 18:45:00) [2]

>grusty © (31.08.03 18:38) [9]

procedure TForm1.Button1Click(Sender: TObject);
begin
if Pos(AnsiLowerCase("шоссе"),AnsiLowerCase("Шла Маша по шоссе и сосала сушку") then ...
end;


ИМХО, незачем громоздить в прогу лишние переменные.


grusty   (2003-08-31 18:38:00) [3]

Попробуй так:

procedure TForm1.Button1Click(Sender: TObject);
var
s,l: String;
begin
l:=AnsiLowerCase("Шла Маша по шоссе и сосала сушку");
s:=AnsiLowerCase("шоссе");
if Pos(s,l)<>0 then ...;
end;

Если регистр необходимо учитывать, то использовать AnsiLowerCase не нужно.


MsGuns   (2003-08-31 18:19:00) [4]

Можно, конечно, искать перебором всех записей, но это совершенно по-ламерски.
Если шаблон всегда начинается с 1-го символа, то locate, иначе - SQL запрос с конструкцией LIKE с последующим позиционированием на запись по ннайденному ID (тот же Locate)

Принцип Pos : выражения

pos("помощ","Это вообще-то есть в помощи"); вернет 22, а
pos("помощь","Это вообще-то есть в помощи"); вернет 0
pos("Помощ","Это вообще-то есть в помощи"); вернет 0


Anatoly Podgoretsky   (2003-08-30 15:11:00) [5]

Аlpha, тогда причем тут многострочные записи?
select не изменяет таблицу, ищи у себя ошибку, где то есть команда изменения.


Anton_2003   (2003-08-30 14:40:00) [6]

select * from MashaStory
where Story Like "%шоссе%"
Именно это и пробовал, но он показывает записи где встречается "шоссе", а мне нужно что бы, таблица оставалась не измененной.
У меня не МЕМО поле, оно "Аlpha". Может кто подскажет как использовать Pos.


KDS   (2003-08-30 11:38:00) [7]

А конструкция
select * from MashaStory
where Story Like "%шоссе%"
будет работать?
Попробуй, я только предположил


Anatoly Podgoretsky   (2003-08-30 11:35:00) [8]

Anton_2003 (30.08.03 00:32) [2]
Насчет запросов я ошибся, у тебя же мемо поле, так что первый метод.


KDS   (2003-08-30 11:30:00) [9]

А конструкция
select * from MashaStory
where Story Like "%шоссе%"
будет работать?
Попробуй, я только предположил


Anton_2003   (2003-08-30 00:32:00) [10]

Запросом я пробовал но мне он не подходит, конечно он решает проблему, но.....


Anatoly Podgoretsky   (2003-08-30 00:22:00) [11]

Пробовал ты правильный метод, только наверно неправильно, алтернативным вариантом является использование запросов SQL


Наверх

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