掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
inet1でオーバーフローします。 (ID:143274)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 流さ指定にある分D/L出来ず、「オーバーフロー」というエラーになります。 それ自体は、Inet とは無関係のエラーでは無いでしょうか。 Dim a As Long, b As Long a = 6000 b = 150 * 50 * 8 の場合、a は問題ありませんが、b は実行時エラーとなることに注意してください。 これは、150 や 50 や 8 などは Integer 値なので、演算結果も Integer となるためです。 たとえ変数 a が Long であっても、計算段階で Integer の最大値(32767)を 越えてしまうため、その時点でオーバーフローとなってしまいます。 MsgBox TypeName(150) 'これは「Integer」 MsgBox TypeName(60000) 'これは「Long」 MsgBox TypeName(150&) 'これは「Long」 > 他にも手段があるとのことですが、 XMLHTTP であれば、大抵の OS 環境に既に含まれているはずなので、 MSInet.ocx よりも導入しやすいであろうと思って提示したのですが、 自身でしか使わないアプリなら、環境の問題は考慮する必要は無さそうですね。 ただ、Inet には不具合も多く報告されています。そのため、 選択肢の少なかった10年前ならいざ知らず、今となっては、 個人的にはあまりお奨めしていなかったりします > これも分からず教えて貰ったとおり使っています。 開発ライセンスをお持ちなのであれば、Inet を使う事は可能です。 先に述べた不具合の件についても、実際に問題なく使えているならば、 Inet を使い続けても構わないと思いますよ。 > 取込終了のケースです。 イベントによる非同期処理ではなく、OpenURL メソッドによる 同期処理を使う手法もあったります。 (OpenURL の場合、サーバーによっては正しく取得できないことがあります) Dim URL As String, bin() As Byte URL = "http://www.tepco.co.jp/forecast/html/images/juyo-2012.csv" bin = Inet1.OpenURL(URL, icByteArray) Dim fno As Integer fno = FreeFile() Open "juyo-2012.csv" For Binary As #fno Put #fno, , bin Close #fno Debug.Print StrConv(bin, vbUnicode) まぁ、「これ以上新たな業はコリゴリ」とのことでしたから、 あまり他の案を提示しない方が良いのかも知れませんが…。 > getchunkをデータが無くなるまでループさせる方法は分かります。 今回の場合、GetChunk に指定するサイズ指定方法を見直すだけで 問題を解決できるとは思いますが、ループ手法だと都合が悪かったのでしょうか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.