База данных ГИБДД. Сведения об автомобиле состоят из его марки, цвета, гос. номера, фамилии, имени, отчества владельца. Написать программу, обеспечивающую: 1) введ и хранение на диске информации об авто; 2) поиск владельцев авто по данной марки и цвета; 3) поиск владельца по неполной информации о гос. номере авто (для поиска предполагается некоторая маска номера авто, в которой указаны лишь некоторые знаки, входящии в гос. номер); 4) выдачу полной информации об авто конкретного владельца.
Помогите сделать поиск по маске (пример: Е***УК)
(поиск по гос. номеру организован в процедуре Find2)
Lapp
9.01.2007 20:02
Цитата(-=BR@BUS=- @ 9.01.2007 16:48)
Помогите сделать поиск по маске (пример: Е***УК)
Обычно звездочка (*) означает замену любого количества символов. Так что я не понимаю, что есть три звезды.. Для замены одного символа используется знак вопроса (?).
volvo
9.01.2007 20:07
Звездочка - это один символ? Тогда попробуй вот такую функцию проверки на соответствие строки маске:
function match_mask(s: string; mask: string): boolean;
var
i: integer;
stop: boolean;
begin
match_mask := false;
if length(s) <> length(mask) then exit;
i := 1; stop := false;
while (i <= length(s)) and (not stop) dobeginif (mask[i] <> '*') and (s[i] <> mask[i]) then stop := true
else inc(i);
end;
match_mask := (i > length(s));
end;
Вызывать так:
if match_mask(s, 'Е***УК') then{ Подходит }else{ Не подходит }
-=BR@BUS=-
9.01.2007 20:08
Ну можно и с (?) е???ум или е*ум, всё равно поиск не получается...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.