新しく発言する EXIT インデックスへ
RE:「WEB上のファイル読出」唐瀬人さんへ

  RE:「WEB上のファイル読出」 唐瀬人さんへ 山中和義 2006/11/22 19:34:27 
  サンプルプログラム 山中和義 2006/11/22 19:35:57 
  山中様 唐瀬人 2006/11/28 14:29:28 

  RE:「WEB上のファイル読出」 唐瀬人さんへ 山中和義 2006/11/22 19:34:27  ツリーへ

RE:「WEB上のファイル読出」 唐瀬人さんへ 返事を書く
山中和義 2006/11/22 19:34:27
OLEオートメーションを使って、インターネット・エクスプローラを制御すると
表示中のページの内容を得ることができます。

●説明
サーバにあるテキスト文書のファイル名をtest.txtとして内容を

引数1=あいうえお,abc,1234
引数2=ABCXYZ
引数3=12345

とすると、Txt.GetValue$で

引数1=あいうえお,abc,1234[CR][LF]引数2=ABCXYZ[CR][LF]引数3=12345[CR][LF]

が得られます。


最後に
 CALL ieApp.Visible(0) !起動して非表示する
とするといいかもしれません。

  サンプルプログラム 山中和義 2006/11/22 19:35:57  ツリーへ

Re: RE:「WEB上のファイル読出」 唐瀬人さんへ 返事を書く
山中和義 2006/11/22 19:35:57
サンプルプログラム

!OLEでInternet Explorerを使う

CALL ieApp.Visible(-1) !起動して表示する

CALL ieApp.Navigate("C:\My Documents\test.txt") !テキストを表示する
!!CALL ieApp.Navigate("http://www.google.co.jp/") !URLを指定してページを表示する
!!CALL ieApp.GoHome !ホームページを表示する
!!CALL ieApp.Navigate("about:blank") !空白のページ
DO WHILE ieApp.Busy$="True" !表示完了を待つ
WAIT DELAY 0.5
LOOP

CALL Document.New(ieApp.Document) !HTMLドキュメント

!!PRINT Document.GetTitle$
!!PRINT Document.GetURL$

CALL Txt.New(Document.getBody) !BODYタグ

LET p$=Txt.GetValue$ !文書全体を得る
PRINT p$
PRINT

PRINT Param$(p$,"引数1=",CHR$(13))
PRINT Param$(p$,"引数2=",CHR$(13))
PRINT Param$(p$,"引数3=",CHR$(13))


CALL ieApp.Quit !終了させる

END


EXTERNAL FUNCTION Param$(s$,a$,EOF$) !切り出し
LET t=POS(s$,a$)
LET Param$=s$(t:POS(s$,EOF$,t))
END FUNCTION



MODULE ieApp !OLE連携オブジェクト
OLE CREATEOBJECT "InternetExplorer.Application" !ProgID

!メソッド、メンバ変数、プロパティ
EXTERNAL SUB Quit !終了
OLE METHOD "Quit"
END SUB
EXTERNAL SUB Visible(n) !表示・非表示
OLE PropertyPut "Visible"
END SUB
EXTERNAL SUB Navigate(url$) !URLを指定してページを表示する
OLE METHOD "Navigate"
END SUB
EXTERNAL FUNCTION Busy$ !True=作業中、False=
OLE PropertyGet "Busy"
END FUNCTION
EXTERNAL SUB GoHome !ホームページを表示する
OLE METHOD "GoHome"
END SUB
EXTERNAL SUB GoBack !戻る
OLE METHOD "GoBack"
END SUB
EXTERNAL SUB Stop !中止
OLE METHOD "Stop"
END SUB
EXTERNAL SUB Refresh !更新
OLE METHOD "Refresh"
END SUB

EXTERNAL FUNCTION Document
OLE PropertyGet "Document" !ドキュメントへのハンドルを得る
END FUNCTION
END MODULE


MODULE Document !HTMLDocumentクラス
EXTERNAL SUB New(n)
OLE ASSIGN n !InternetExplorer.Application.HTMLDocument
END SUB

EXTERNAL FUNCTION getBody !BODYタグへのハンドルを得る
OLE PropertyGet "Body"
END FUNCTION

EXTERNAL FUNCTION GetTitle$ !タイトルを得る
OLE PropertyGet "Title"
END FUNCTION
EXTERNAL FUNCTION GetURL$ !URLを得る
OLE PropertyGet "URL"
END FUNCTION
END MODULE


MODULE Txt
EXTERNAL SUB New(n)
OLE ASSIGN n !InternetExplorer.Application.Document.Element
END SUB

EXTERNAL FUNCTION GetValue$ !値を得る
OLE PropertyGet "innerText"
END FUNCTION
END MODULE

  山中様 唐瀬人 2006/11/28 14:29:28  ツリーへ

Re: RE:「WEB上のファイル読出」 唐瀬人さんへ 返事を書く
唐瀬人 2006/11/28 14:29:28
山中様

古い投稿にもかかわらず、アイデア投稿いただきまして有難うございます。しばらく出張に出ておりましたのでレスポンスが遅くなり申し訳ありません。

早速サンプルプログラムを試して見ました。こちらの環境では問題なくスムーズにWEB上のテキストファイルの読出ができました。

実は過去の投稿後、十進BASICとコマンドプロンプト(DOSプロンプト)及び他のプログラムの組み合わせにより、WEB上のテキストファイル内容を反映させ所定処理を行うプログラムを一応完成させているのですが、今回の山中様のアイデアを用いることでよりシンプル化できないか今後じっくりと検討していきたいと思います。また「OLEオートメーション」に関して私は無知なのですが、この技術が幅広いWINDOWS環境で利用できるかどうかということも確認したいと思います。

(参考)
<a href="http://www.vector.co.jp/soft/win95/hardware/se408601.html">http://www.vector.co.jp/soft/win95/hardware/se408601.html</a>
<a href="http://www.vector.co.jp/soft/win95/util/se409190.html">http://www.vector.co.jp/soft/win95/util/se409190.html</a>


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。