比如,有字串 “欢迎来到中国welcome”,要如何一个汉字,一个字母的分割出来,形如:
a1='欢'
a2='迎'
a3='来'
a4='到'
a5='中'
a6='国'
a7='w'
a8='e'
a9='l'
a10='c'
a11='o'
a12='m'
a13='e'
当然,这个字符串是动态的,我这里只是举一个例子说明白要做到的事情。简单的说,就是字符串中含有汉字,也含有字母。
a1='欢'
a2='迎'
a3='来'
a4='到'
a5='中'
a6='国'
a7='w'
a8='e'
a9='l'
a10='c'
a11='o'
a12='m'
a13='e'
当然,这个字符串是动态的,我这里只是举一个例子说明白要做到的事情。简单的说,就是字符串中含有汉字,也含有字母。
解决方案 »
- TComPort封装在DLL中如何接收数据?
- 如何获取 treeview中,父节点和子结点的值?
- 新开贴求助:TADOTable+ACCESS数据库从一个数据库复制记录到另一个数据库时出错
- ACCESS中的数据类型问题
- 难题,请各位大侠不吝惕教,(关于分组和group by)
- DBGRID的日期格式问题!
- 初学者:为何在BDE中建 的Databases在Delphi中出错?
- 把ip地址放进byte里 该如何写GWIP: array[0..4] of byte;
- 高分求救存储过程执行错误
- TBatchMove?
- 有没有办法保存和回复剪贴板的内容?
- combobox选中后执行查询表格显示在DBbrid中。
procedure TForm1.FormCreate(Sender: TObject);
var
s : string;
i : integer;
begin
s := '欢迎来到中国welcome' ; for i := 1 to Length(s) do
ShowMessage( s[i]);end;
汉字都是 > 160 的如果是 > 160 就取两个 一起输出如果是 < 160 就取1个 输出
没有 D7 D2007 没法调试..楼主试试吧
procedure TForm1.Button1Click(Sender: TObject);
var
s : string;
ws: WideString;
i : integer;
begin
s := '欢迎来到中国welcome' ;
ws := WideString(s); for i := 1 to Length(ws) do
ShowMessage( ws[i]);end;
(爱蹄子的羊头) 的方法可以
procedure TForm1.btn1Click(Sender: TObject);
var
str: WideString;
i: Integer;
begin
str := '欢迎来到中国welcome';
for i := 1 to Length(str) do
begin
//方法1
if ord(str[i]) > 160 then
ShowMessage('汉字')
else
ShowMessage('字符');
//方法2
if Length(string(str[i])) <> Length(str[i]) then
begin
ShowMessage('汉字');
end
else
begin
ShowMessage('字母');
end;
end;
end;
s: widestring;
i: Integer;
begin
s := '欢迎来到中国welcome';
for i := 1 to length(s) do
ShowMessage(s[i])
end;