Есть маска где нужно узнавать неизвестные символы по вхождению в определённую группу, тоесть одна группа это 1-F, а вторая группа это 1-8
взял за основу код StrMask, поменял группу на одну из своих, всё работает, а вот в попытках засунуть вторую группу, ничего не работает
function _StrCmp(Str, Msk: PChar): Boolean;
begin
while (Str^ ‹› #0) and (Msk^ ‹› #0) do
begin
if Msk^ = '*' then
begin
if _StrCmp(Str, Msk + 1) then
begin
Result := True;
exit;
end;
end
else
if Msk^ = '#' then
begin
if Str^ in ['1'..'F'] then Inc(Msk)
else break;
end
else
if (Msk^ = '?') or (Msk^ = Str^) then Inc(Msk)
else break;
Inc(Str);
end;
Result := (Str^ = #0) and (Msk^ = #0);
end;
function StrCmp(Str, Msk: string): Boolean;
begin
Result := _StrCmp(PChar(Str), PChar(Msk));
end;
пример маски ##000000##000^00, где # это один из символов входящих в группу 1-F, а ^ это один из символов входящих в группу 1-8

Оооооочень много логики напихано для меня 

Редактировалось 3 раз(а), последний 2020-05-21 16:29:22