Помощь - Поиск - Пользователи - Календарь
Полная версия: База данных ГИБДД
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-=BR@BUS=-
База данных ГИБДД. Сведения об автомобиле состоят из его
марки, цвета, гос. номера, фамилии, имени, отчества
владельца.
Написать программу, обеспечивающую: 1) введ и хранение на диске
информации об авто; 2) поиск владельцев авто по данной марки и цвета;
3) поиск владельца по неполной информации о гос. номере авто (для
поиска предполагается некоторая маска номера авто, в которой указаны
лишь некоторые знаки, входящии в гос. номер); 4) выдачу полной
информации об авто конкретного владельца.

Помогите сделать поиск по маске (пример: Е***УК)

(поиск по гос. номеру организован в процедуре Find2)
Lapp
Цитата(-=BR@BUS=- @ 9.01.2007 16:48) *

Помогите сделать поиск по маске (пример: Е***УК)

Обычно звездочка (*) означает замену любого количества символов. Так что я не понимаю, что есть три звезды..
Для замены одного символа используется знак вопроса (?).
volvo
Звездочка - это один символ? Тогда попробуй вот такую функцию проверки на соответствие строки маске:

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) do begin

if (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=-
Ну можно и с (?) е???ум или е*ум, всё равно поиск не получается...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.