日付変更時にエラーをなくすには?

解決


ゆきお  2002-12-14 18:00:28  No: 105698  IP: [192.*.*.*]

VBで計測機器を制御しています。
 非常に長い時間計測をしていて、計測時間が30時間以上になってしまいます。
で、なぜかわからないのですけど日付が変わる時間になると(つまり0:00になると)必ずプログラムが止まってしまいます。
 おそらくwindowsが何か操作をしているのだと思うのですが。
こういったことをVBで解決する方法は無いでしょうか?

よろしくお願いします。

編集 削除
Say  2002-12-14 22:58:21  No: 105699  IP: [192.*.*.*]

書かれた内容からは、
「プログラムがとまるようなコードを書いているからだ。」
としか答えようがありません。

もし、0:00になるとプログラムがとまるようWindowsが操作しているなら、
世界中いたるところでプログラムがとまりまくっているはずです。

>こういったことをVBで解決する方法は無いでしょうか?
VBに限らず、0:00になってもとまらないようにコーディングすれば
解決されるでしょう。

具体的にどうすればいいかは、書かれた内容からは、残念ながらわかりません。

編集 削除
ゆきお  2002-12-18 00:57:39  No: 105700  IP: [192.*.*.*]

Sayさん返答ありがとうございます。

>具体的にどうすればいいかは、書かれた内容からは、残念ながらわかりません
全くその通りでした。

時間に関する記述は、このホームページのvisual basic技術テクニック20に書かれている、
        Dim Now As Long
        Now = Timer
        While Timer < Now +1     '1秒間待機する
        DoEvents
        Wend
というものを用いてみました。
そのほかにも現在いろいろ試してみようと思っています。
よかったらまたアドバイスをください。
よろしくお願いします。

編集 削除
Say  2002-12-18 12:33:08  No: 105701  IP: [192.*.*.*]

While〜Wend は古いBASIC互換のための過去の遺物です。
Do While 〜 Loop を使うことをお勧めします。

編集 削除
ゆきお  2002-12-22 02:34:27  No: 105702  IP: [192.*.*.*]

Sayさんご返答ありがとうございます。

>While〜Wend は古いBASIC互換のための過去の遺物です。
>Do While 〜 Loop を使うことをお勧めします。
すべてそのように修正します。ありがとうございます。


それから、自己解決しましたので、それについて書きます。

Timer  は一日を秒数で表したもので、0秒から60*60*24秒(86400)までの数値で表されていました。
それで、23時59分55秒とかで「10秒待機する」と書くと、「Timerが86405になるまで待機」と書いていたのでした。これではいつまで経っても動き出さないのは当然でした。

>「プログラムがとまるようなコードを書いているからだ。」
本当にそのとおりでした。Sayさん、本当に有難うございました。

編集 削除