我这里有两个方法可以使用,希望能帮到你:1。把空格转换为非常用串,比如:“)(*&*%#@”,再用stringList分割,完成把“)(*&*%#@”替换为空格2。使用ExtractStrings函数,用法如下:在Classes单元中, ExtractStrings()是这样声明的: --------------------------------------------------------------------------- function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer; --------------------------------------------------------------------------- Separators 参数指定一组分割符,所有的子串都是用它们分割的。但是成对的引号内的分割符会被忽略(参看下面的例子)。WhiteSpace 参数指定每个子串开头被忽略的字符s。Content 参数就是被分割的“源”串了。Strings 参数用于接收分割后的各个子串。它的原有内容不会被清空。别忘了Create哦。另外,EctractStrings不会把(忽略WhiteSpaces后的)空串加入到Strings中。写个例子吧:比如ABC|... DEF|#### GHI|"不会被分开|# www.wesoho.com"要得到 ABCDEFGHI不会被分开|# www.wesoho.com四个子串可以用下面的代码:uses Classes;var ASource: PChar; AStr: String; ACount: Integer; AStrings: TStringList;begin ASource := 'ABC|... DEF|#### GHI|"不会被分开|# www.wesoho.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. ============================