既に Indy を使用しているため、そのSplitColumnsNoTrim()
関数を使用して、複数の文字を含むことができる区切り文字 String を使用してString
aを a に分割できます。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
ただし、この種の解析に a を使用することはお勧めしません。TStringStream
D2009+ では、コンストラクターで を指定する必要があります(TEncoding
または、OS の既定の Ansi エンコーディングにデフォルト設定します) 。データが常に ASCII でない限り、事前にデータの文字セットを知ることはできません。 ダウンロードしたデータをデータの実際の文字セットを使用してデコードするロジックがあるため、代わりにその機能を利用する必要があります。TIdHTTP
TStringStream
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;