请问大虾:怎样将EDIT编辑框中的字符和数字区分开来
各位大虾:
小弟在做程序时有一问题请教,我已经将输入的汉字的首拼提出来了,但是没有办法处理和汉字在一起的数字,现在怎样将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




