![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Расширенный поиск по базе [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