CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

请问大虾:怎样将EDIT编辑框中的字符和数字区分开来

楼主lzj_lsjl()2004-08-04 20:53:48 在 Delphi / VCL组件开发及应用 提问

各位大虾:  
          小弟在做程序时有一问题请教,我已经将输入的汉字的首拼提出来了,但是没有办法处理和汉字在一起的数字,现在怎样将EDIT编辑框中的字符和数字分别提出来,然后把数字转换成字符类型,重新把它和转换好的汉字首拼组合起来。列如:  
              EDIT1.TEXT:=   中国123    
          转换后是这样的  
              EDIT2.TEXT:=ZG  
          但是我没有办法处理123呀  
   
  请大虾多多指教  
   
  问题点数:30、回复次数:6Top

1 楼linzhengqun(风。我回来了)回复于 2004-08-04 22:35:40 得分 10

以下是怎么样判断一个字符串中汉字或非汉字的代码  
  由于你的要求中可能的情况比较多,所以你可以参考这一段代码,自己改动  
  大概如此  
   
  var    
      ws:wideString;//定义宽字符类型  
      i:integer;  
  begin  
      ws:=Edit1.text;  
      for   i:=1   to   length(ws)   do  
      begin  
          if   (ws[i]   and   $ff00)=0   then//是字符或数字类型  
            .....  
          else   //该字符是汉字  
            .....      
      end;  
  end;  
  Top

2 楼boatzm(晓舟怕麻烦)【IUnKnown】(#_#!)回复于 2004-08-04 22:36:17 得分 10

procedure   anlaystr(str   :   string;   var   numstr,substr   :string);  
  var  
      i   :   Integer;  
      tempnum,tempstr:   string;  
  begin  
      for   i   :=   0   to   length(str)   do  
      begin  
          if   str[i]   in   [0..9]   then  
          begin  
              tempnum   :=   tempnum   +   str[i];  
          end  
          else  
          begin  
              tempstr   :=   tempstr   +   str[i];  
          end;  
      end;  
      numstr   :=   tempnum;  
      substr   :=   tempstr;  
  end;  
   
  试试,写了没测试,str   为你未分解的窜,numstr   为数字串,substr   为string   串。Top

3 楼boatzm(晓舟怕麻烦)【IUnKnown】(#_#!)回复于 2004-08-04 22:37:17 得分 0

哦,要宽度string   对了,哈哈,我错了。好像。呵呵Top

4 楼lzj_lsjl()回复于 2004-08-06 09:38:16 得分 0

我实验了但是不可以的   if   str[i]   in   [0..9]     在这里报错   说是类型不匹配呀   请问大虾该怎么做呀Top

5 楼GoldShield(李柏岑)回复于 2004-08-06 10:03:22 得分 10

我实验了但是不可以的   if   str[i]   in   [0..9]     在这里报错   说是类型不匹配呀   请问大虾该怎么做呀  
  ...................  
  str[i]   出来是字符,而[0..9]里边是数值型.  
  改为  
        if   str[i]   in   ['0'..'9']  
  因为字符'0'到'9'是连起的,所以可以这样写Top

6 楼lzj_lsjl()回复于 2004-08-06 17:20:00 得分 0

还有一个问题请大虾请教:  
          为什么     BDE   中TDBEDIT的值不让我编辑呀,怎样才能通过BDE中QUERY使用QUERY,列如;  
      我有一个QUERY   和   DATASOURCE   和DBGRID   我将数据库中查到的内容想赋植给DBGRID   然后在  
  赋植给TDBEDIT   中   ,用来修改数据,然后在把修改好的数据写会数据库当中去,但是为什么程序  
  不让我对TDBEDIT的值进行编辑呀!!!  
          请高手指教,十万火急Top

相关问题

  • 有什么简单的方法可以把字符串中的文件名和参数区分开来?
  • 怎样让EDIT不能输入字符,只能接受数字?
  • 在一个字符串中如何将中文与英文及其它采用宽字符的语言区分开
  • edit中如何获得数字量,字符串怎样转化为数字?
  • 如何判断Edit框中输入的字符串是不是全数字字符组成的?
  • =====vc中数字变字符!!=====
  • 数字字符串转换
  • 数字转字符串
  • 字符和数字分解
  • 字符转为数字

关键词

  • 字符
  • 数字
  • 汉字
  • 转换
  • ws
  • 大虾
  • tempnum
  • 请问
  • numstr
  • tdbedit

得分解答快速导航

  • 帖主:lzj_lsjl
  • linzhengqun
  • boatzm
  • GoldShield

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo