注意:我使用的是Delphi 7。
有没有办法用换行符拆分字符串?
我想要以下内容:
procedure Split
(const Delimiter: Char;
Input: string;
const Strings: TStrings) ;
begin
Assert(Assigned(Strings)) ;
Strings.Clear;
Strings.Delimiter := Delimiter;
Strings.DelimitedText := Input;
end;
var
xMSG:String;
xStr:String;
xStrList:TStrings;
xLineBreak:String;
xHello:String;
xWorld:String;
begin
xLineBreak := AnsiString(#13#10);
xMSG := 'Hello ' + xLineBreak + 'World';
xStrList := TStringList.Create;
Split(xLineBreak,AnsiString(xMSG),xStrList);
xHello := xStrList[0];
xWorld := xStrList[1];
MessageBox(0,PAnsiChar(xHello + xWorld),'Test',0);
end.
答案 0 :(得分:7)
是的,这就是Text
属性的作用。从帮助引用(Text属性(TStrings)):
将TStrings对象中的字符串列为单个字符串 由回车和换行符分隔的单个字符串。
由于它是一个班轮,您不需要额外的实用程序。
var
xMSG:String;
// xStr:String;
xStrList:TStrings;
// xLineBreak:String;
xHello:String;
xWorld:String;
begin
// xLineBreak := AnsiString(#13#10); // you don't need this, there's sLineBreak
xMSG := 'Hello ' + sLineBreak + 'World';
xStrList := TStringList.Create;
// Split(xLineBreak,AnsiString(xMSG),xStrList);
xStrList.Text := xMSG; // <--
xHello := xStrList[0];
xWorld := xStrList[1];
xStrList.Free;
MessageBox(0,PAnsiChar(xHello + xWorld),'Test',0);
end;
答案 1 :(得分:2)