有人问我Delph问题,我不熟悉,搞不定!谁能帮我的忙!谢谢!function TForm1.GetChsByString(str:string):string;//!获得中文
var
len,j:integer;
hzchar :string;
begin j:=1;
while (j <= Length(str)) do
begin
if ord(str[j])>=127 then //!判断是否是中文
begin
hzchar:=str[j] + str[j+1];
result:=result+hzchar;
j := j + 2;
end
else
begin
j:=j+1;
end;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
str1:string;
j:integer;
begin
str:='zz中国zz';
for j:=1 to 5 do
begin
//!这里只是 付值
str1:=GetChsByString(str);
showmessage(str1);
Edit1.Text:= str1;
//str1,为什么会自动增加 ,变成《中国中国中国中国中国》
end;
//!我希望的结果是 有没有循环结果应该都是 《中国》
end;
end.
var
len,j:integer;
hzchar :string;
begin j:=1;
while (j <= Length(str)) do
begin
if ord(str[j])>=127 then //!判断是否是中文
begin
hzchar:=str[j] + str[j+1];
result:=result+hzchar;
j := j + 2;
end
else
begin
j:=j+1;
end;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
str1:string;
j:integer;
begin
str:='zz中国zz';
for j:=1 to 5 do
begin
//!这里只是 付值
str1:=GetChsByString(str);
showmessage(str1);
Edit1.Text:= str1;
//str1,为什么会自动增加 ,变成《中国中国中国中国中国》
end;
//!我希望的结果是 有没有循环结果应该都是 《中国》
end;
end.
begin
//!这里只是 付值
str1:=GetChsByString(str);
showmessage(str1);
Edit1.Text:= str1;
//str1,为什么会自动增加 ,变成《中国中国中国中国中国》
end;把for,begin,end三行去掉就不重复了.
function TForm1.GetChsByString(str:string):string;//!获得中文
var
len,j:integer;
hzchar :string;
tmpStr: String;
begin j:=1;
while (j <= Length(str)) do
begin
if ord(str[j])>=127 then //!判断是否是中文
begin
hzchar:=str[j] + str[j+1];
tmpStr:=tmpStr+hzchar;
j := j + 2;
end
else
begin
j:=j+1;
end;
end; Result := tmpStr;
end;
var
len,j:integer;
hzchar :string;
begin j:=1;
while (j <= Length(str)) do
begin
if ord(str[j])<=127 then //!判断是否是中文
str[j]:=#32
j:=j+1;
end;
result:=trim(str);
end;
function TForm1.GetChsByString(str:string):string;//!获得中文 var j:integer;
begin j:=1;
while (j <= Length(str)) do
begin
if ord(str[j])<=127 then //如果不是中文
str[j]:=#32;//就换成空格;
j:=j+1;
end;
str:=AnsiReplaceStr(str,#32,'');//--把空格去掉,最后得到的就全是中文字符了。
result:=trim(str);
end;
var
onestr:string;
strcount,i:integer;
begin
strcount:=length(same);
for i:=1 to strcount do
begin
onestr:=same[i];
if length(onestr)>1 then result:=result+onestr;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(getchinese(edit1.Text));
end;edit1.text:='Edit1数据库地方后555555环境 '
结果:=数据库地方后环境
var
onestr :string;
strcount,i :integer;
begin
strcount:=length(same);
for i:=1 to strcount do
begin
onestr:=same[i];
if length(onestr)>1 then result:=result+onestr;//因为中文是双字节,所以length(onestr)=2
else result:=result+' ';//也可以加上这句,把单字节(非中文)变成空格
end;
end;