Re: проверка ввода данных ! срочно плиз !
От: ssm Россия  
Дата: 11.04.03 05:53
Оценка:
Здравствуйте, Danilov YV, Вы писали:

DY>подскажите плиз !


DY>я ввожу номер квартиры... но в номере могут содежаться буквы при том только русские... напрмер 23а, 5б... плюс к этому буква впереди не должна находицца.. то есть а23 не может быть... как мне сделать такую проверку ? то есть:

DY>1) буквы русские
DY>2) буква не впереди ?

Вот простейший конечный автомат из двух состояний:

function Check(str : string) : boolean;
type
  TState = (stNum, stLetter);
const
  ValidChars = ['а'..'я'];
  ValidNums = ['0'..'9'];
var
  i : integer;
  st : TState;
begin
  result := false;
  i := 1;
  st := stNum;
  while(i <= length(str)) do begin
    if(st = stLetter) then begin
      result := false;
      exit;
    end else if(st = stNum) then begin
      if(str[i] in ValidChars) then begin
        st := stLetter;
        result := true;
      end else if not(str[i] in ValidNums) then
        exit;
    end;
    inc(i);
  end;
  result := true;
end;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.