Delphi中哪个函数可以向一个已初始化了的字符串中的指定位置写入任意长度字符?(10分)

  • 主题发起人 主题发起人 zcb999
  • 开始时间 开始时间
Z

zcb999

Unregistered / Unconfirmed
GUEST, unregistred user!
请问Delphi中哪个函数可以向一个[blue]已初始化了的字符串中的指定位置写入任意长度字符[/blue]?
比如:已将一个字符串初始化为连续10000个星号"*",现在我想[red]直接把第501~508的星号
替换为'12345678'[/red],我要在一个大循环中要多次向该字符串中的不中部位写入固定长度的
不同的内容,如果用'+'号逐个连接将会很慢。如果不是替换而是插入呢?
在VB中用MID$可以实现这个功能,Delphi中呢?
 
delete(s,501,8);
insert(s,501,'12345678');
 
帮你写个函数吧
procedure ReplaceStr(Var Str:string;subStr:string;start,Len:integer)
begin
Delete(Str,Start,Len);
Insert(subSTR,Str,Start);
end;

参数顺序:原字符串、替换串、替换位置、替换长度
 
在s 的 501 位 替换为 s2 ,速度最快的是
if 501+Length(s2) > Length(s) then
SetLength(501+Length(s2));
CopyMemory( PChar(s)+500,PChar(s2) ,Length(s2))
 
S1:='12345678';
Move((Pchar(@S1[1]))^,(Pchar(@S[501]))^,8);

 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部