delphi中如何提供字符串的替换?难道是要自己写函数?(50分)

  • 主题发起人 主题发起人 DragonLone
  • 开始时间 开始时间
D

DragonLone

Unregistered / Unconfirmed
GUEST, unregistred user!
1。在asp中,又一个很好用的‘regexp’的对象,它提供了正则表达式的功能,
delphi中又没有相对应的组件?
或者如何在delphi中创建出regexp并且使用?
2。delphi中如何提供字符串的替换?难道是要自己写函数?
 
1 正则表达式的控件在 www.torry.net 有下载!
2 字符串的替换Delphi自身函数可以搞定!不过这里给你一个函数,更方便快捷!
procedure SearchAndReplace(aStrList: TStrings
aSearchStr, aNewStr: string)

//aStrList:目标字符串列表
//aSearchStr:要搜索的字符串
//aNewStr: 用以替换的字符串
var i : integer

s1 : string

p1 : integer

begin
for i := 0 to aStrList.Count -1 do
begin
s1 := aStrList

Repeat
p1 := pos(aSearchStr, s1)

if p1 > 0 then begin
Delete(s1, p1, Length(aSearchStr))

Insert(aNewStr, s1, p1)

aStrList := s1

end

until p1 = 0

end

end


procedure TForm1.Button1Click(Sender: TObject)

begin
SearchAndReplace(Memo1.Lines,Edit1.Text,Edit2.Text)

end;
 
哪个控件的具体地只能不能给我讲一下?
 
搜索 " TRegExpr " 控件即可!
 
delphi的标准函数:
StringReplace,具体用法看帮助!
 
{
函 数 名 : 替换字符串
功 能 : 替换已有字符中的字符串为指定字符串
调用格式 : MyFunc.Strtran(Old_Str,
Source_Str,
Target_Str);
参数说明 : Old_Str -------------- 来源字符串
Source_Str -------------- 需替换的字符串
Target_Str -------------- 替换后的字符串
返 回 值 : 字符串型
示 例 : ShowMessage(MyFunc.Strtran('aabbccaabbcc_aa',
'aa',
'11'));
此例将显示一个信息框,提示内容是"11bbcc11bbcc_11"
}
function TMyFunc.Strtran(Old_Str,
Source_Str,
Target_Str
:string):string;
var
I,R,Get_Loction,StrLen:integer;
begin
//取得原字符串长度
r:=Length(Old_Str);
//以取得的原字符串长度作循环
for I:=1 to R do
begin
//Source_Str在Old_Str中出现的位置
Get_Loction:=Pos(Source_Str,Old_Str);

if Get_Loction<>0 then
begin
//Source_Str的长度
StrLen:=Length(Source_Str);
//删除Source_Str字符串
Delete(Old_Str,Get_Loction,StrLen);
//插入Target_Str字符串到S中
Insert(Target_Str,Old_Str,Get_Loction);
end;
end;
//返回新串
Strtran:=Old_Str;
end;
 
后退
顶部