webページをStringListに読み込むには?

解決


nar  2007-06-27 22:12:34  No: 26848

webページをファイルに保存し、StringListに読み込んでいます。
数が多いとやや時間がかかりすぎるキライがあります。
webページを直接StringListに読み込む方法は?

var URL,Fname:string;
    St:TStringList;
-------
St:=TStringList.Create;St.clear;
UrlDownloadToFile(nil, PChar(URL),PChar(Fname), 0, nil);
St.LoadFromFile(Fname);
-------


Fusa  2007-06-28 05:26:21  No: 26849

StringListというか、Stringに取り込む方法です。

IndyのIdHTTPで簡単に出来たような気がするのですが
どうもProxyの関係なのかうまく動かなかったので
WinInetを使ってみました。

一度メモリストリームに取り込んでから
文字列として取得しています。

D2007、WinXPで動作確認しました。

function GetStringFromStream(Stream: TStream): String;
begin
  SetLength(Result, Stream.Size);
  Stream.Position := 0;

  Stream.ReadBuffer(Result[1], Stream.Size);
end;

procedure TForm1.Button5Click(Sender: TObject);
var
  SaveFileName, SaveURL: String;
  ms: TMemoryStream;
begin
  SaveURL := Edit1.Text;

  ms := TMemoryStream.Create;

  WinInet_URLDownloadToStream1(SaveURL, ms);

  ShowMessage(GetStringFromStream(ms));
  ms.Free;

end;

WinInet_URLDownloadToStream1はこちらに乗せておきます。
http://delfusa.main.jp/delfusalibrary/20060527212010/WinInetUnit/WinInetUnit.pas

WinInet_URLDownloadToStream2関数でも同様に動作するでしょう。


nar  2007-06-28 21:45:23  No: 26850

Fusaさん、ありがとうございました。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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