请教:各位大哥这样的函数要怎么写?谢谢! ( 积分: 30 )

  • 主题发起人 主题发起人 lsh998
  • 开始时间 开始时间
L

lsh998

Unregistered / Unconfirmed
GUEST, unregistred user!
请教是这样的:
有字符串 'as|sdf|dfgf|gfhg'
我需要得到的是
as
sdf
dfgf
gfhg

这样,是不是要求 函数返回一个字符串数组啊?

function ParseString1(s:String):Array of string;

//*****************************************************************找字符串|
function ParseString1(s:String):array of string;
var
i:integer;// 字符串 ## 的开始位置
h:intger;
ss:array of string;
begin
result:=0;
while True do
begin
i:=pos('|',s);
if i<=0 then break;
j:=j+1;
temp:=copy(s,1,i-1);
ss[j]:=temp;
delete(s,1,i);
result:=ss[j];
end;
//*****************************************************************找字符串 |


可是我这样写,编译都通不过?

我是错在哪里呢?

谢谢!
 
用TStringList就可以啦

S := TStringList.Create;
S.Delimiter := '|'; //切割符
S.DelimitedText := 'as|sdf|dfgf|gfhg';

S里面每个项就是你要的字符串
S[0] = as
s[1] = sdf
 
也可这样写
function ParseString1(s: String): TStrings;
begin
Result := TStringList.Create;
ExtractStrings(['|'], [' '], PChar(s), Result);
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
922
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部