哪位大哥帮小弟写个函数!谢谢拉!!

peachblossom 2003-07-29 03:07:23
传入两个字符串 str1,str2
返回一个数组

处理的过程是:str1 被 str2 所代表的分隔符分割,放入一个数组并返回。

100分献上!
...全文
15 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
peachblossom 2003-07-29
function xx(str1, str2 : string) : tstrings;
var
a: array of string;
s: TStringList;
i: Integer;
begin
s:= TStringList.Create;
i := Pos(str2,str1);
while i>0 do
begin
s.Add(copy(str1,0,i-1));
Delete(str1,1,i+length(str2)-1);
i := Pos(str2,str1);
end;
s.Add(str1);
//SetLength(a,s.Count);
result := s;
//s.Free;
end;

ljmanage(过客) 的代码我修改了一下,总算过了,谢谢!
回复
peachblossom 2003-07-29
我的意思是:
str1 := 'a,b,c,d'
str2 := ','

返回的是:右 'a','b','c','c' 组成的数组
回复
ltysunde 2003-07-29
不太明白楼主的意思。
你所说的意思是不是以下的表现。
试试看。
Function StrBeCut(str1,str2:string;var Cutstr:array of string):boolean;
begin
Result:=False;
if pos(str2,str1)<>0 then begin
Cutstr[0]:=Copy(str1,1,pos(str2,str1)-1);
CutStr[1]:=Copy(str1,pos(str2,str1)+1,length(str1));
Result:=True;
end;
End;
procedure TForm1.Button2Click(Sender: TObject);
var
str1,str2 : string;
CutStr : array[0..1] of string;
begin
str1:='aaabbb/cccddd';
str2:='/';
IF StrbeCut(str1,str2,CutStr) then begin
Showmessage(CutStr[0]); //->> aaabbb
Showmessage(CutStr[1]); //->> cccddd
End;
End;
回复

ExtractStrings();
回复
johncsdn 2003-07-29
function SetPath(const StrInput: string):PCHAR;
var
s : char;
i,j:integer;
maxL:integer;
ss:string;
begin
s := '\';
ss:=strInput;
maxL:=length(strinput);
j:=0;
for i:=1 to maxL do
if comparetext(copy(strinput,i,1),s)=0 then
begin
inc(j,1);
insert(s,ss,i+j);
end;
result:=PCHAR(ss+#0);
end;

ss:=SetPath(‘c:\aa\aa.txt’);
ss的值為’c:\\aa\\aa.txt’
你參考一下吧。
回复
DWGZ 2003-07-29
是不是MM???
回复
firetoucher 2003-07-29
function splitstr(const str1 ,str2:string):strings;
var
i:integer;
s:string;
begin
result:=tstringlist.create;
s:=str1;
i:=pos(s,str2);
while i do
begin
result.add(copy(s,1,i));
s:=rightstr(s,legth(s) - i - legnth(str2) -1);
i:=pos(s,str2);
end;
result.add(s);
end;
回复
李_军 2003-07-29
var
a: array of string;
s: TStringList;
i: Integer;
begin
s:= TStringList.Create;
i := Pos(str2,str1);
while i>0 do
begin
s.Add(copy(str1,0,i-1));
Delete(str1,1,i);
i := Pos(str2,str1);
end;
SetLength(a,s.Count);
For i:= 0 to s.count-1 do
a[i] := s.strings[i];
s.Free;
end;
回复
tw_cshn 2003-07-29
处理的过程是:str1 被 str2 所代表的分隔符分割,放入一个数组并返回。
什么意思
回复
相关推荐
发帖
Delphi
创建于2007-08-02

4925

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2003-07-29 03:07
社区公告
暂无公告