掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VBでWeb上のデータを取得するにはどうすればいいですか? (ID:108367)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 私は、INETの方が良いのでは無いかと思っております。 個人的には、Inetは制限が多いのでお奨めしません。 HTMLソースの取得が目的ならばServerXMLHTTPオブジェクト、 HTMLの解析が目的ならばWebBrowserコントロールの方が融通が利くかと。 > Streamオブジェクト、及びHttpRequestオブジェクトですが、 > 私には良く使い方がわかりませんでした。 Streamオブジェクトは、たとえばこのように使います。 With CreateObject("ADODB.Stream") .Open .Charset = "euc-jp" .WriteText "あいうえお" .SaveToFile "C:\EUC.TXT" .Close End With これで、EUC-JPで「あいうえお」と書かれたファイルが作成されます。 また、LoadFromFileメソッドを使って、EUC-JPファイルを読むことも出来ます。 ファイルを介さずに変換する事もできます。 Option Explicit Private Sub Form_Load() Text1.Text = "魔界の仮面弁士" End Sub Private Sub Command1_Click() Dim SJIS() As Byte Dim JIS() As Byte '元データ SJIS = StrConv(Text1.Text, vbFromUnicode) '変換 JIS = ConvertCharset(SJIS, "Shift_JIS", "EUC-JP") Stop End Sub '==================================================================== ' SrcData: 変換元のデータ ' SrcCharset: 変換元の文字コード ' DestCharset: 変換後の文字コード ' 戻り値: 変換後のデータ '==================================================================== Public Function ConvertCharset( _ ByRef SrcData() As Byte, _ ByVal SrcCharset As String, _ ByVal DestCharset As String) As Byte() Dim Src As ADODB.Stream Dim Dst As ADODB.Stream '改行コードの変換やBOMの除去は行っていません。必要に応じて追加してください。 '(LineSeparatorプロパティは、既定の adCRLF のままです) Set Src = New ADODB.Stream Src.Open Src.Type = adTypeBinary Src.Write SrcData Src.Position = 0 Src.Type = adTypeText Src.Charset = SrcCharset Set Dst = New ADODB.Stream Dst.Open Dst.Type = adTypeText Dst.Charset = DestCharset Src.CopyTo Dst Dst.Position = 0 Dst.Type = adTypeBinary Src.Close ConvertCharset = Dst.Read(adReadAll) Dst.Close Set Src = Nothing Set Dst = Nothing End Function
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.