有人问我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.
解决方案 »
- 数据刷新显示
- W1057 Implicit string cast from 'AnsiChar' to 'stri
- 紧急求助呀!帮帮忙!
- 请教各位:为什么我的窗体在最大化时不充满屏幕?上边空一块?
- 关于报表 100分! 高难度,有人找到方法再给分
- 关于Delphi中BDE的问题
- 一个在应用程序服务器上写的过程
- 问各位关于dbgrid得备份和还原得问题。。。
- 我有一个用acess97创建的一个table,现在我把他放到了win2000下,2000下用的是access2000!我配置了odbc 后,在delphi里面连接table,出现以
- URLDownloadToFile下载网络文件 经常卡死不动 如何设置超时 继续下载下一个文件
- 请教:类似于网页的FrameSet,
- [50分初级问题]delphi中new的用法?
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;