Проверка удостоверения личности - PullRequest
0 голосов
/ 31 октября 2018

Я создаю код, который будет проверяться, если пользователь вводит все цифры, когда пользователь вводит идентификатор. У меня есть код, но я не могу понять, как его завершить.

var name:string;
    i,c:integer; 
    ch:char; 
begin
 name:Edit1.text;
 n:length(name);
  for i := 0 to n do 
    begin 
     ch:=name[i];
     //not code// 
     if ch= any digits then showmessage invalid else showmessage valid; 

1 Ответ

0 голосов
/ 31 октября 2018

Ваш фрагмент кода не соответствует описанию вашего вопроса. Вы спрашиваете о подтверждении идентификатора, но вместо этого показываете код для подтверждения имени.

В любом случае попробуйте что-то вроде следующего:

function IsDigit(c: Char): boolean; inline;
begin
  Result := (c >= '0') and (c <= '9');
  {
  Or Result := CharInSet(c, ['0'..'9']);
  Or Result := Character.IsDigit(c);
  Or Result := c.IsDigit();
  } 
end;

Проверка имени:

var
  name: String;
  i: Integer;
  ch: Char;
begin
  name := Edit1.Text;
  n := Length(name);
  for i := 1 to n do
  begin
    ch := name[i];
    if IsDigit(ch) then
    begin
      ShowMessage('invalid');
      Exit;
    end;
  end;
  ShowMessage('valid');
end;

Удостоверение личности:

var
  id: String;
  i: Integer;
  ch: Char;
begin
  id := Edit2.Text;
  n := Length(id);
  if n = 0 then
  begin
    ShowMessage('invalid');
    Exit;
  end;
  for i := 1 to n do
  begin
    ch := id[i];
    if not IsDigit(ch) then
    begin
      ShowMessage('invalid');
      Exit;
    end;
  end;
  ShowMessage('valid');
end;

В качестве альтернативы:

var
  id: Integer; // or Int64
begin
  if not TryStrToInt(Edit2.Text, id) then // or TryStrToInt64()
    ShowMessage('invalid')
  else
    ShowMessage('valid');
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...