delphi 循环提取字符串问题!~

来源:百度知道 编辑:UC知道 时间:2024/05/13 04:21:37
以下字符串在Memo1中.
111111\lkadjf\lksjl
222222\sjdfsk\jhkkjh
333333\asd\fksj\lkfjs

我要提取每行以"\"结束的前面部分,也就是111111 222222 333333
然后写入到Memo2中
111111
222222
333333

还有如何避免重复(这个暂时不需要,以后可能需要)

谢谢各位大虾帮忙想一下.

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
str:string;
begin
for i:= 0 to Memo1.Lines.Count-1 do
begin
str:=copy(Memo1.Lines[i],0,pos('\',Memo1.Lines[i])-1);
Memo2.Lines.Add(str);
end;
end;

delphi自带了一个分割函数
ExtractStrings
function ExtractStrings(Separators: TSysCharSet; WhiteSpace: TSysCharSet; Content: PAnsiChar; Strings: TStrings): Integer;

[参数注释]:
Separators 参数指定一组分割符,所有的子串都是用它们分割的。但是成对的引号内的分割符会被忽略(参看下面的例子)。
WhiteSpace 参数指定每个子串开头被忽略的字符s。
Content 参数就是被分割的“源”串了。
Strings 参数用于接收分割后的各个子串。它的原有内容不会被清空。别忘了Create哦。
另外,EctractStrings不会把(忽略WhiteSpaces后的)空串加入到Strings中。