既然你已經使用了印,你可以使用它SplitColumnsNoTrim()
功能使用的分隔符字符串可以包含在它的多個字符分割String
成TStrings
。顧名思義,SplitColumnsNoTrim()
不會在分離的子串之間進行任何修整。如果您想修剪,請改用SplitColumns()
。
var
Strm: TStringStream;
Strings: TStringList;
begin
Strings := TStringList.Create;
try
Strm := TStringStream.Create;
try
IdHTTP.Get('http://...', Strm);
SplitColumnsNoTrim(Strm.DataString, Strings, '[eol]');
finally
Strm.Free;
end;
// use Strings as needed ...
finally
Strings.Free;
end;
end;
雖然,我不會建議使用TStringStream
這種解析。 D2009 +中的TStringStream
需要您在其構造函數中指定一個TEncoding
(或者讓它默認爲OS默認的Ansi編碼),如果您將TIdHTTP
直接下載到TStringStream
中,則不能這樣做。除非數據總是ASCII,否則您不會提前知道數據的字符集。 TIdHTTP
有邏輯,所下載的數據解碼成使用數據的實際字符集一個String
,所以你應該利用這個功能來代替,例如:
var
Strings: TStringList;
begin
Strings := TStringList.Create;
try
SplitColumnsNoTrim(IdHTTP.Get('http://...'), Strings, '[eol]');
// use Strings as needed ...
finally
Strings.Free;
end;
end;
THX雷米,該訣竅。我也會接受TStringStream的建議。 –