怎么样截取字符串 ( 积分: 100 )

  • 主题发起人 主题发起人 wangzhibing3366
  • 开始时间 开始时间
W

wangzhibing3366

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么样截取字符串(中文和字符都有的)
比喻说有一个str := '字符22串23函数'
我要截取其中的几个字符,不知道怎么做!!!
 
copyfunction Copy(S; Index, Count: Integer): string;
 
函数: Pos
 
举例:str := '字符22串23函数'
[Delphi] function Copy(S: string; Index: Integer; Count: Integer): string;

newstr := copy (str, 2, 3);
 
举例:str := '字符22串23函数'
[Delphi] function Copy(S: string; Index: Integer; Count: Integer): string;

newstr := copy (str, 2, 3);
-------------------------------------------
当我用copy(str,1,3)的时候就是乱码,不是“字符2”
 
举例:str := '字符22串23函数'
[Delphi] function Copy(S: string; Index: Integer; Count: Integer): string;

newstr := copy (str, 2, 3);
-------------------------------------------
当我用copy(str,1,3)的时候就是乱码,不是“字符2”


//////////////////
一个中文=2个字符
newstr := copy (str, 2, 4);//就对了
 
copy (WideString(str), 2, 3)
 
你们给的方法都是在str 已经确定的情况下的

var
i,count,c:integer;
s:string;
begin
count:=Length(str);
for i:=0 to count-1 do
beign
try
c:=StrToInt(str);
except
s:=s+c;
end;
end;
end;
 
var
s:string;
begin
s:='字符22串23函数';
s:=Copy(WideString(s),4,3);
showmessage(s);
 
var
str, NewStr: WideString;
begin
str := '字符22串23函数';
//再正常的调Copy函数,保你没任何问题
NewStr:= Copy(str, 1, 3);
//此时NewStr='字符2'
 
漢字是兩位,如果你要是想得到“字符22”那麽就是COPY(STR,1,6)才可以。就不會出現亂碼了。
 
liaj讲的对,用WideString就不会错了,汉字也会当成一个字符来处理
 
用DELPHI的帮助文件查一下,String的字符截取多的是,
 

Similar threads

回复
0
查看
873
不得闲
回复
0
查看
1K
不得闲
回复
0
查看
999
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部