函数ExtractStrings介绍

一直以为Delphi中没有分割字符串的函数,以前曾经自己写过,也用过RegExpr来分割,今天无意中发现Delphi本身就有ExtractStrings,而且功能还不弱,分割的同时还可以去空字符串和去空白(可以自定义).

ExtractStrings Routine Fills a string list with substrings parsed from a delimited list.
Unit Classes

 

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

写个例子吧:
比如
ABC|...   DEF|#### GHI|"不会被分开|# www.farproc.com"
要得到
ABC
DEF
GHI
不会被分开|# www.farproc.com
四个子串可以用下面的代码:

uses
   Classes;
var
   ASource:PChar;
   AStr:String;
   ACount:Integer;
   AStrings: TStringList;
begin
   ASource :='ABC|... DEF|#### GHI|"不会被分开|# www.farproc.com"';
   AStrings := TStringList.Create;
   try
     ACount := ExtractStrings(['|'],[' ','#','.'], ASource, AStrings);
     {do any further processing}
     /for AStr in AStrings do
     // Writeln(AStr);

   finally
     AStrings.Free;
   end;

   Readln;
end.

posted @ 2012-08-06 11:02  随风--飘  阅读(529)  评论(0编辑  收藏  举报