我有一个字符串str := 'W GT, - Ws t,YU';我用Stringlist分隔strstrlist.Delimiter := ',';
strlist.CommaText := str;处理后,不但逗号的给分开了,空格也给分开了,我只要逗号分开就好,怎么搞现在结果:
W
GT
-Wt
t
YU我要的结果:
W GT
-Ws t
YU
strlist.CommaText := str;处理后,不但逗号的给分开了,空格也给分开了,我只要逗号分开就好,怎么搞现在结果:
W
GT
-Wt
t
YU我要的结果:
W GT
-Ws t
YU
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
i:integer;
begin
str := 'W GT, - Ws t,YU';
i:=pos(',',str);
while i>0 do begin
memo1.Lines.Add(copy(str,1,i-1));
delete(str,1,i);
i:=pos(',',str);
end;
memo1.Lines.Add(str);
end;
S := 'W GT, - Ws t,YU';
ss := TStringList.Create;
ss.Text := StringReplace(S, ',', #13#10, [rfReplaceAll]);
SS[0]...
SS[1]...
ss.free;
strlist.linebreak
没见过,我的Delphi7中也找不到,是新版本的吗?
XE2试过,D7没试过
delphi7没有这个属性,自己写吧
procedure SplitStr(Str, Str_Div: string; var List: TStringList);
var
I : Integer;
S: string;
begin
List.Clear;
for I := 1 to Length(WideString(Str)) do
begin
if WideString(Str)[I] <> WideString(Str_Div) then
S := S + WideString(Str)[I]
else
begin
List.Append(S);
S := '';
end;
end;
List.Append(S);
end;
SplitStr(Str, #44, List);
procedure SplitString(Source,Deli:string;var StrList:TStringList);
var
EndOfCurrentString:byte;
str:string;
begin
if (Source='') or (Deli='') then
Exit;
StrList.Clear;
EndOfCurrentString := Pos(Deli,Source);
while EndOfCurrentString > 0 do
begin
str := Copy(Source,1,EndOfCurrentString-1);
StrList.add(str);
Delete(Source,1,EndOfCurrentString + Length(Deli) -1);
EndOfCurrentString := Pos(Deli,Source);
end;
StrList.Add(source);
end;
var
i, Len: Integer;
sTmp: string;
begin
AList.clear;
AStr := AStr + ASplit;
Len := Length(AStr);
i := 1;
sTmp := '';
while (i <= Len) do
begin
if AStr[i] <> ASplit then
sTmp := sTmp + AStr[i]
else
begin
if sTmp <> '' then
AList.Add(sTmp);
sTmp := '';
end;
Inc(i);
end;
if (AList.Count = 0) and (AStr <> ASplit) then
AList.Add(AStr);
end;我写的这个函数,应该就可以解决
var
sl: TStrings;
i: integer;
begin
sl:= TStringList.Create;
ExtractStrings([','],[' '],'W GT, - Ws t,YU',sl);
for i := 0 to sl.Count - 1 do
begin
// 针对 sl.Strings[i] 做一些事
// ......
Memo1.Lines:=sl;
end;
sl.Free;
end;
var
sl: TStrings;
i: integer;
begin
sl:= TStringList.Create;
ExtractStrings([','],[' '],'W GT, - Ws t,YU',sl);
for i := 0 to sl.Count - 1 do
begin
// 针对 sl.Strings[i] 做一些事
// ......
end;
Memo1.Lines:=sl;
sl.Free;
end;