急~一个取值问题 ( 积分: 50 )

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

langzi700

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位达人可以告诉我怎么才能把【aa,bb,cc,dd,】字段里【,】号前的值一一取出来
需要相关代码~~在这里先谢谢各位达人了~
 
uses
StrUtils;

var
s: string;
sl: TStringList;
begin
s := 'aa,bb,cc,dd,';
sl := TStringList.Create;
while Pos(',', s)>0 do
begin
sl.Add(LeftStr(s, Pos(',', s) - 1));
s := RightStr(s, Length(s) - Pos(',', s));
end;
{ ... }
end;
 
LeftStr和RightStr是什么意思~?为什么我编译报错?
 
LeftStr和RightStr是什么意思~?为什么我编译报错?
 
现成的函数不用,那么费劲干嘛
ExtractStrings([','], [' '],'aa,bb,cc,dd',memo1.Lines);
 
来自:langzi700, 时间:2007-4-9 15:56:12, ID:3697443
LeftStr和RightStr是什么意思~?为什么我编译报错?

uses
StrUtils;
 
如果字符串是二楼那样子('aa,bb,cc,dd,')的就可以简单了 ,可以这样拆分
var
lst:tstringlist;
str :string;
begin
str:= 'aa,bb,cc,dd,';
lst:=tstringlist.Create;
try
lst.Delimiter:=(',');
lst.DelimitedText:=str;
finally
lst.Free;
end;
end;
 
Function gfDhfg(Astring:string):Tstringlist;
var str1,str2:string;
i:integer;
begin
Result:=TStringList.Create;
i:=pos(',',Astring);
str2:= Astring;
while i>0 do
begin
str1:=copy(str2,1,i-1);
if trim(str1)<>'' then
Result.Add(str1);
str2:=copy(str2,i+1,length(str2)) ;
i:=pos(',',str2);
end;
if (str1<>str2) and (str2<>'') then
Result.Add(str2);
end;
 
ExtractStrings这个函数更好,不过包含引号会出问题
 
靠,搞那么麻烦干什么,用下面的方法:
var
sl:TStringList;
s:String;
i:integer;
begin
try
sl:=TStringList.create;
s:='a,b,c';
s:=StringReplace(s,',',#13#10,[rfReplaceAll, rfIgnoreCase]);
sl.text:=s;
for i:=0 to sl.count-1 do
begin
//一个一个取出来就好了
end;
finally
sl.free;
end;
end;
 
qingwen07:
兄弟还记得我吗?在北京可好!
 
to qingwen07:
谢谢仁兄~我用了你的方法搞定了~小子在这有理了~
同时也感谢各位仁兄积极的帮助我~万分感激~
但是小子的分少~出来大道~不能满足各位仁兄~
只能把分送给最好的~在这里表示歉意~~~希望各位能够谅解~~
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部