procedure TForm1.Button1Click(Sender: TObject); var StrList: TStringList; s: string; begin s := 'adf|wefa|aewfawfe|qwefa'; StrList := TStringList.Create; try StrList.Delimiter := '|'; StrList.DelimitedText := s; Memo1.Lines.Assign(StrList); // 验证 finally FreeAndNil(StrList); end; end;
procedure StrToStrings(S, Sep: string; const List: TStrings); var I, L: Integer; Left: AnsiString; begin Assert(List <> nil); List.Clear; L := Length(Sep); I := Pos(Sep, S); while (I > 0) do begin Left := LeftStr(S, I - 1); List.Add(Left); Delete(S, 1, I + L - 1); I := Pos(Sep, S); end; if S <> '' then List.Add(S); end; var b: TStrings;b := TStringList.Create; StrToStrings('a|b|c', '|', b);
for i:=0 to ( | count)-1 do begin 数组:=copy(str,0,pos('|',str)-1)); 句1 Delete(str,1,pos('|',str)); 句2 end; 用 句1 把第一个‘ |‘前的string提取出来 存入你的数组里 用 句2 把第一个‘ |‘和前面提取出来的string从原来的字符串中 删除!(这句是为了下次调用 句1 不会重复)
var
StrList: TStringList;
s: string;
begin
s := 'adf|wefa|aewfawfe|qwefa';
StrList := TStringList.Create;
try
StrList.Delimiter := '|';
StrList.DelimitedText := s;
Memo1.Lines.Assign(StrList); // 验证
finally
FreeAndNil(StrList);
end;
end;
const List: TStrings);
var
I, L: Integer;
Left: AnsiString;
begin
Assert(List <> nil);
List.Clear;
L := Length(Sep);
I := Pos(Sep, S);
while (I > 0) do
begin
Left := LeftStr(S, I - 1);
List.Add(Left);
Delete(S, 1, I + L - 1);
I := Pos(Sep, S);
end;
if S <> '' then
List.Add(S);
end;
var
b: TStrings;b := TStringList.Create;
StrToStrings('a|b|c', '|', b);
begin
数组:=copy(str,0,pos('|',str)-1)); 句1
Delete(str,1,pos('|',str)); 句2
end; 用 句1 把第一个‘ |‘前的string提取出来 存入你的数组里
用 句2 把第一个‘ |‘和前面提取出来的string从原来的字符串中
删除!(这句是为了下次调用 句1 不会重复)