OS/2 FAQ


OS/2 Programming FAQ - пpогpаммиpование. Статья 049

Q Сопоставление с шаблоном. Звёздочки, вопросики. Паскаль.
A
(DZ FAQ) Vadim Rumyantsev, 2:5030/301


UNIT UslPatrn;

INTERFACE

function MatchLineOk (pattern, line : string) : boolean;
function MatchFileOk (pattern, name : string) : boolean;

IMPLEMENTATION
uses Dos;

function MatchLineOk;

function SubOk (ppos, lpos : byte) : boolean;
begin
if ppos > length (pattern) then
SubOk := lpos > length (line)
else if lpos > length (line) then
SubOk := (pattern [ppos] = '*') and SubOk (ppos+1, lpos)
else if pattern [ppos] = '*' then begin
SubOk := false;
for lpos := length (line) + 1 downto lpos do
if SubOk (ppos+1, lpos) then begin
SubOk := true;
break
end
end
else
SubOk := ((pattern [ppos] = '?') or
(pattern [ppos] = line [lpos])) and
SubOk (ppos+1, lpos+1)
end;

begin
MatchLineOk := SubOk (1, 1)
end;


function MatchFileOk;
var
pd, nd : DirStr;
pn, nn : NameStr;
px, nx : ExtStr;
begin
FSplit (pattern, pd, pn, px);
FSplit (name,    nd, nn, nx);
MatchFileOk := ((pd = '') or (pd = nd)) and
MatchLineOk (pn, nn) and
MatchLineOk (px, nx)
end;

END.

Этот файл можно взять здесь


К предыдущей статье | К оглавлению раздела | К следующей статье

Вернуться к списку разделов FAQ.

Если у вас есть вопросы или пожелания, пишите, мы будем рады.

Данный FAQ cоставили Ivan Borovicov и Viatcheslav Odintsov (2:5020/181) на основе OS/2 FAQ Дмитрия Завалишина (dz) и материалов переписки в группе эхоконференций su.os2.*. Оформление статей: Николай Королев. Программирование JSP для RU/2: Евгений Кулешов. Благодарности: Дмитрию Максимовичу (MaximDim) за громадную помощь на первых этапах и Дмитрию Бану (banshee) за его помощь при проверке текста.



Интересные ссылки:
Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ