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

解決


ゆきお  2002-12-15 03:00:28  No: 105698

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

よろしくお願いします。


Say  2002-12-15 07:58:21  No: 105699

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

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

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

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


ゆきお  2002-12-18 09:57:39  No: 105700

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

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

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


Say  2002-12-18 21:33:08  No: 105701

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


ゆきお  2002-12-22 11:34:27  No: 105702

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

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

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

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

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


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

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






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