インターネットから情報を取得するには

解決


カレーライズ  2006-05-26 07:59:47  No: 21832

いつもお世話になります。
  よくソフトでインターネットを通じてニュースや天気予報を取得したりしていますが  あれらはどのようにして情報を取得しているのでしょうか???
  インターネットプログラムが初めなのでInternetコンポーネントをどのように利用していけばいいのかがよくわからりません。ご存知の方がいらっしゃいましたらご教授をお願いします。


えーとね  2006-05-26 16:56:15  No: 21833

> よくソフトでインターネットを通じてニュースや天気予報を取得したりしています

たとえばhttp://weather.livedoor.com/ なら
XMLStream := TStringStream.Create('');    
try
  IdHTTP1.Get('http://weather.livedoor.com/forecast/webservice/rest/v1?city=63&day=today', XMLStream);
  XMLStream.Position := 0;
  XMLDoc1.LoadFromStream(XMLStream);
  XMLDoc1.Active := True;
  ImageNode := XMLDoc1.DocumentElement.ChildNodes.FindNode('image');
  Tenki := ImageNode.ChildNodes['title'].Text;
finally
  XMLStream.Free;
end;


カレーライズ  2006-05-27 19:48:35  No: 21834

えーとねさん。ありがとうございます。
  おかげさまで  きちんと内容を取得することができました。そこで新たに質問なのですが、XMLの内容を一度ファイルに保存して、再度ファイルの内容をTmemoで読み込んだときに文字化けが発生します。UniCodeで書かれているためだと思いますが。
  TMemoで Unicode(UTF-8)のファイル内容を正常に読み込ませる方法とかりますでしょうか??


カレーライズ  2006-05-27 19:50:32  No: 21835

すいません。途中で送信されてしまいました。
>  TMemoで Unicode(UTF-8)のファイル内容を正常に読み込ませる方法とかりますでしょうか??

  TMemoで Unicode(UTF-8)のファイル内容を正常に読み込ませる方法とかありますでしょうか??それとも一行ずつ変換のメソッドなどを利用していかないとだめなのでしょうか??


たぶん  2006-05-28 03:24:18  No: 21836

一行ずつ変換のメソッドです。

var
  I: Integer;
begin
  XMLDoc1.Active := true;
  for I := 0 to XMLDoc1.XML.Count - 1 do
    Memo1.Lines.Add(Utf8decode(XMLDoc1.XML.Strings[I]));
end;


カレーライズ  2006-05-28 08:13:31  No: 21837

たぶんさん。ありがとうございます。おかげさまで無事解決できました。
今後何かありましたら  よろしくお願いします


ちなみに  2006-05-30 01:05:18  No: 21838

Delphi 2005 以降は

var
  A: string;
begin
  XMLDoc1.Active := true;
  for A in XMLDoc1.XML do
    Memo1.Lines.add(Utf8decode(A));
end;


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

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






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