怎么将形如'aaa,ccasdf,123,uuu'的STRING类型直接转换成array of string类型?(10分)

  • 主题发起人 主题发起人 baifeng
  • 开始时间 开始时间
B

baifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么将形如'aaa,ccasdf,123,uuu'的STRING类型直接转换成array of string类型?
 
先定义数组
再把字符串直接赋值给数组内指定的字符串就可以了。
 
to lyfwz:
怎么将形如'aaa,ccasdf,123,uuu'的STRING类型直接转换成array of string类型?
我是要:
;var
; ;s:string;
; ;a:array of string;
; ;s:='aaa,ccasdf,123,uuu';
我要达到这种效果:a[1]='aaa'; a[2]='ccasdf';a[3]='123';a[4]='uuu';
怎么办?
 
通过编程解决
 
写个循环,把S逐个字字符写入另一字字符串S1,写这前判断,如果是',',把字符串S1写入
数组。
 
var
; i: integer;
; strlist: TStringList;
; arrstr: array of string;
begin
; strlist := TStringList.Create;
; strlist.Commatext := 'aaa,ccasdf,123,uuu';
; SetLength(arrstr, strlist.Count); ;
; for i := 0 to strlist.Count - 1 do
; ; arrStr := strlist; ;
; strlist.Free;
end;
 
有些地方自己把代码补上!
 
你运气真好,我刚写的函数~!
给你吧!
Type
sptype=array of string;
End;
function split(S, Sep: AnsiString):sptype;
var
; I, L,J: Integer;
; Left: AnsiString;
begin
; J:=0;
; L := Length(Sep);
; I := Pos(Sep, S);
; while (I > 0) do
; begin
; ; Left := leftstr(S, I-1);
; ; inc(J);
; ; setlength(Result,J);
; ; Result[J-1]:=Left;
; ; Delete(S, 1, I + L - 1);
; ; I := Pos(Sep, S);
; end;
; if S <> '' then
; ;begin
; ;inc(J);
; ;setLength(Result,J);
; ;Result[J-1]:=S;
; ;end;
end;
Procedure Test();
Var
; ;sTemp:sptype;
begin
; ;sTemp:=split('aaa,bbb,ccc,ddd,eee',',');
; ;showmessage(sTemp[0]);
end;
 
procedure StrToStrings(S: AnsiString; Sep: AnsiString; 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 := StrLeft(S, I - 1);
; ; List.Add(Left);
; ; Delete(S, 1, I + L - 1);
; ; I := Pos(Sep, S);
; end;
; if S <> '' then
; ; List.Add(S);
end;
 

Similar threads

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