adam1103 发表于 2007-12-1 23:40

如何区分数字与字母

判断输入的是字母还是数字 请问这个判断语句该怎么写呀??

sky_yang_sky 发表于 2007-12-2 11:37

function   CheckString(S:   string):   Boolean;
  var
      vStr:  string;
      vChar: string;
  begin
      result   :=   True;
      vStr   :=S;
      while   vStr   <>   ''   do
      begin
          vChar   :=copy(vStr,0,1);
          vStr   :=   copy(vStr,   2,   length(vStr)   -   1);
          if   not   (((vChar>='a')   and   (vChar<='z'))   or   ((vChar>='A')   and   (vChar<='Z')))   then
          begin
              result   :=   False;
              break;
          end;
      end;   
  end;
  function   Checknum(S:   string):   Boolean;
  var   
      vStr:   string;   
      vChar:   string;
  begin
      result   :=   True;   
      vStr   :=   S;   
      while   vStr   <>   ''   do   
      begin   
          vChar   :=   copy(vStr,   0,   1);
          vStr   :=   copy(vStr,   2,   length(vStr)   -   1);   
          try   
              StrToInt(vChar);   
          except   
              result   :=   False;   
              break;
          end;
      end;   
  end;

provoke 发表于 2007-12-3 12:40

只接受数字键入的 Edit 控件

在KeyPress 事件中添加如下代码,Edit1 将只能键入数字,并且可以按退格键删除:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ((key<'0') or (key>'9')) and (key<>#8) then
  key:=#0;
end;

键入不允许的字符时将不被接收,相当于没有按键;
其中:#8为退格键
若要处理浮点数,还可放宽限制,如允许小数点和%等,不过要限制输入多个小数点和%,并且应该不允许第一个字符为非数字字符,情况稍复杂一些。
百分号为#37
小数点用字符串形式即可:'.'

[[italic] 本帖最后由 provoke 于 2007-12-3 12:42 编辑 [/italic]]

joooyooo 发表于 2007-12-25 18:08

根据ASCII码为进行判断不就行了!

adam1103 发表于 2007-12-26 14:43

根据ASCII码为进行判断不就行了

这个我不会...[em04] [em04]

zhoukai 发表于 2008-4-18 09:40

ASC码

if (key>#48)and(key<#57) then
Application.MessageBox('输入的是数字','提示',MB_OK);
if ((key>#65)and(key<#90))or((key>#97)and(key<#122)) then
Application.MessageBox('输入的是字母','提示',MB_OK);

页: [1]

编程论坛