Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

сравнение числа с маской


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]

Как вариант:
Сперва сравниваем длины числпа и маски. Потом берем первую цифру числа - проходим по всем остальным цифрам - если маска та же а цифра другая - возвращаем ложь. Потом переходим к второй цифре и т.д.


Наверх

Титульная страница Поиск, карта сайта Написать письмо