![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сравнение числа с маской
tippa © (2010-04-18 20:04:00)Не могу написать функцию, которая берет маску в виде строки (например 'XXYZZZ') и число, и возвращает true, если число подходит к этой маске.
function proverim(mask:string;n:integer):boolean;
//proverim('ZXXVVV',166000)->true
Дайте пожалуйста совет.
tippa (2010-04-18 22:09:00) [1]спс, вроде работает)
function maska(mask:string;n:string):boolean;
var i,j:integer;
len:integer;//длина маски и числа
begin
Result:=true;
if length(mask)<>length(n) then
begin
Result:=false;
exit
end;
len:=length(mask);
for i:=1 to len do
begin
for j:=1 to len do
begin
if (mask[i]=mask[j]) and (n[i]<>n[j]) then
begin
Result:=false;
exit
end;
end;
end;
end;
DVM (2010-04-18 20:28:00) [2]
> tippa ©
Может регулярные выражения использовать?
И. Павел (2010-04-18 20:11:00) [3]Как вариант:
Сперва сравниваем длины числпа и маски. Потом берем первую цифру числа - проходим по всем остальным цифрам - если маска та же а цифра другая - возвращаем ложь. Потом переходим к второй цифре и т.д.