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

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

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

100分献上!
...全文
36 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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 所代表的分隔符分割,放入一个数组并返回。
什么意思

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧