请教一个函数的算法!(150分)

  • 主题发起人 主题发起人 蓝山咖啡
  • 开始时间 开始时间

蓝山咖啡

Unregistered / Unconfirmed
GUEST, unregistred user!
我想写一个函数,它的功能如下:
从一个edit控件中读入一个字符串,当遇到字符串中的逗号时,把逗号前面的字符写入一个
新串中,并统计逗号的数量。
比如函数aaa(edit1.text,str,z)
edit1.text=wwww,tttt,yyyy,kkkk
执行函数后
str[0]=wwww,str[1]=tttt,str[2]=yyyy,str[3]=kkkk z=3
 
这个其实很容易,为什么不自己做呢?
 
var
S : String;
L : TStrings;
I : Integer;
begin
L := TStringList.Create;
try
S := Edit1.Text;
S := StringReplace(S, ',', #$0D#$0A, [rfReplaceAll]);
L.Text := S;

for I := 0 to L.Count-1 do
ShowMessage(L);

finally
L.Free;
end;
end;
 
首先用Pos得到','的位置,然後在Copy函數將其內容讀出,
使用Copy再將讀出的內容與','號在字符串中舍棄
如此循環
 
procedure aaaaa(atext:string;var a_list: TStringList;var a_Count :integer);
var i :integer;
Str ,Temp: string;
begin
str := aText ;
a_list.Clear ;
a_count :=0 ;
while Pos(',',str)<>0 do
begin
i:= pos(',',str);
temp := Copy(str,1,i-1);
str:=Copy(str,i+1,Length(str)-i);
inc(a_Count);
a_List.Add(Temp);
end;
a_List.Add(str);

end;
 
不是有现成的吗(uses Classes):
z := ExtractStrings([','], [], PChar(Edit1.Text), aStringList);

 
请问#$0D#$0A是什么意思?
 
#13#10,换行、回车
 
多人接受答案了。
 
后退
顶部