Здравствуйте, 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;