请教:分离汉字和E文,数字。

zl1980 2003-04-15 09:56:05
在一串字符中,有汉字,字符,数字,如"甲乙ab12",我想要STR1=甲乙,STR2=ab12,该如何做。
...全文
41 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zl1980 2003-04-15
  • 打赏
  • 举报
回复
汉字和E文的长度都为1,我试过了。
zdcnow 2003-04-15
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
sw:widestring;
s,str1,str2:string;
i:integer;
begin
sw:='甲乙ab12';
str1:='';
str2:='';
for i:=1 to length(sw) do
begin
s:=sw[i];
if length(s)=2 then //汉字length为2,其他,如字符和数字,为1
str1:=str1+s
else
str2:=str2+s;
end;
showmessage(str1);
showmessage(str2);
end;
u2m 2003-04-15
  • 打赏
  • 举报
回复
你先需要定义一下这个函数阿,没在程序中定义怎么引用?
zl1980 2003-04-15
  • 打赏
  • 举报
回复
StringToMultiByte(Str, S, 2, 60);程序报错[Error] treeview.pas(47): Undeclared identifier: 'StringToMultiByte'
我想知道汉字和E文是靠什麽来区分的。
u2m 2003-04-15
  • 打赏
  • 举报
回复
告诉你用法
例如
var
s: array[0..60] of word;
Str:='斯蒂芬asfd'
StringToMultiByte(Str, S, 2, 60);
然后你在进去跟踪即可看到你想要的
zl1980 2003-04-15
  • 打赏
  • 举报
回复
你判断汉字和E文的语句是这两句吗:
high := byte(s[pos]);
if high > 128 then // 汉字
为什麽我的语句 high:=byte(str);报错呢。
还要引用什麽东西吗?
u2m 2003-04-15
  • 打赏
  • 举报
回复
给你个函数,你自己去分离有用的,可以满足你的条件
procedure StringToMultiByte(s: string; var buf: array of word; bufstr: integer;
size: integer);
var
pos, len: integer;
low, high: word;
num: integer;
begin
num := bufstr;
pos := 1; // string start pos always is 1;
len := length(s);
while pos <= len do
begin
if num < (size - 1) then
begin
high := byte(s[pos]);
if high > 128 then // 汉字
begin
low := byte(s[pos + 1]);
buf[num] := (high shl 8) + low;
inc(pos, 2);
end
else
begin // 英文
buf[num] := high;
inc(pos, 1);
end;
inc(num, 1);
end
else
begin
buf[num] := 0;
break;
end;
end;
buf[num] := 0;
end;
guestroad 2003-04-15
  • 打赏
  • 举报
回复
:)
honkily 2003-04-15
  • 打赏
  • 举报
回复
学习
lsk2000 2003-04-15
  • 打赏
  • 举报
回复
学习!
zl1980 2003-04-15
  • 打赏
  • 举报
回复
Samland(笨呀)
OK,解决了。
dongdonga 2003-04-15
  • 打赏
  • 举报
回复
学习..
xiaoxiao197821 2003-04-15
  • 打赏
  • 举报
回复
同意 Samland(笨呀)
Samland 2003-04-15
  • 打赏
  • 举报
回复
汉字前半部分的Ascii值>127

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧