用一个字符串替换另一个字符串中的子串的delphi函数有没有,格式是怎样的?(30分)

  • 主题发起人 主题发起人 xuhuizhe
  • 开始时间 开始时间
X

xuhuizhe

Unregistered / Unconfirmed
GUEST, unregistred user!
[red][/red][:D]请教列位大虾一个小小的问题,用一个字符串替换另一个字符串中的子串的delphi函数有没有,格式是怎样的?(30分)
 
好像没有吧,
不过也好办,
我曾经就用pos()和copy()写了这么一个函数.
自己写吧.
 
type
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
function StringReplace(const S, OldPattern, NewPattern: string;
Flags: TReplaceFlags): string;
 
自已写吧 其实很简单
function replace(str,substr:string):string;
var
len_sub, len:integer;
pos1:integer;
begin
len_sub:=length(substr);
pos1:=pos(substr,str)
if pos1<>0 then
result:=copy(str,1,pos1)+copy(str,pos1+len_sub+1,length(str)-pos1-len_sub-1)
else
result:=str;
end
end;

以上是我随手写的 语法可能有点问题 不过主要思路是对的
 
好像没有吧,你试试自己写一个呀
下面吧字符串s中的source替换成target
function replacing(S,source,target:string):string;
var position,StrLen:integer;
begin
{source在S中出现的位置}
replacing:=s;
position:=pos(source,s);
if position<>0 then
begin
{source的长度}
StrLen:=length(source);
{删除source字符串}
delete(s,position,StrLen);
{插入target字符串到S中}
insert (target,s,position);
{返回新串}
replacing:=s;
end;
end;
 
Delphi有一个函数叫StringReplace
type
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
function StringReplace(const S, OldPattern, NewPattern: string;
Flags: TReplaceFlags): string;
其中 S为源字符串,OldPattern为需要被替换的字符串,NewPattern为替换后的字符串,
Flags为替换的参数,RfReplacdAll是替换所有的,RfIgnoreCase是忽略大小写.
注意:替换后的字符串是函数据返回值,原始字符串是不会被改变的.
 
我来添蛇足:建议看看Sysutils.pas中定义的过程——StringReplace &
so on.
 
拓荒国的程式可行,只是在query.sql中此函數不能執行[red][/red]
 
后退
顶部