WebページのソースをStringListに得るには?

解決


lactone  2018-10-24 04:58:20  No: 49572

下記を実行しますと
S.LoadFromStream(MS)  で止まっている模様で、エラーは出ませんが、期待する結果を返しません。
「 // 」をはずして、
MS.SaveToFile('filename.txt')を実行しますと、
テキストファイルに保存されますので、HTTP.Getはできているようです。
よろしくお願いします。

var
  HTTP : TIdHTTP;
  MS : TMemoryStream;
  S : TStringList;
begin
  HTTP :=IdHTTP1;
  S := TStringList.Create;  S.Clear;
  MS := TMemoryStream.Create;
  HTTP.Get('https://news.yahoo.co.jp/',MS);
//  MS.SaveToFile('filename.txt');
  S.LoadFromStream(MS);
  Showessage(S.text);
  Freeandnil(MS);
  S.Free;
end;


lacton  2018-10-24 05:00:20  No: 49573

環境はWindows10 Home + Delphi10.2.3 Comm.Ed. + Indy10.6.2 です。


AAA  2018-10-24 06:03:21  No: 49574

> S.LoadFromStream(MS); 
は MS.Position から読み込むから先頭から読み込みたい場合
Position 0 に戻さないと


lactone  2018-10-24 06:27:10  No: 49575

AAAさんありがとうございます。
下記で解決しました。

var
  HTTP : TIdHTTP;
  MS : TMemoryStream;
  S : TStringList;
begin
  HTTP :=IdHTTP1;
  S := TStringList.Create;  S.Clear;
  MS := TMemoryStream.Create;
  HTTP.Get('https://news.yahoo.co.jp/',MS);
//  MS.SaveToFile('filename.txt');
  MS.Position := 0;  
  S.LoadFromStream(MS);
  Showessage(S.text);
  Freeandnil(MS);
  S.Free;
end;

環境:Windows10 Home + Delphi10.2.3 Comm.Ed. + Indy10.6.2


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加