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;
给你个函数,你自己去分离有用的,可以满足你的条件
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;