tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: MSCommの動作実態と多重On Error文に関して教えて下さい。
投稿日: 2008/03/19(Wed) 09:01
投稿者BamChan
> > Item(i)に適切ではない文字列が入っている可能性を調べてみるとか。
> > # Printステートメントで取り扱うことのできない文字、という意味です。
>
> <問題の部分の調査用変更>
> Private OrgVal(256) As String
>   :
>     OrgVal(CrntNo) = ""        '逐次、全項目をHex文字列にして退避しておく
>     For i = TblFact(CrntNo).Size - 1 To 0 Step -1
>         If ch(i) = 0 Then
>             OrgVal(CrntNo) = OrgVal(CrntNo) & "00"
>         ElseIf ch(i) < 16 Then
>             OrgVal(CrntNo) = OrgVal(CrntNo) & "0" & Hex(ch(i))
>         Else
>             OrgVal(CrntNo) = OrgVal(CrntNo) & Hex(ch(i))
>         End If
>     Next i
>     OrgVal(CrntNo) = OrgVal(CrntNo) & "Z"  '"Z" をマークにしておく
>   :
>    Item(CrntNo) に対し、本来の編集を行う。 '(この中に問題の部分がありそう?)
>   :
> Private Sub Timer1_Timer()
>     Dim i As Integer
>     Rec = Date & "," & Time & ","
>     Print #1, Rec;
>     FOr i = 0 To Limit
>         On Error GoTo ERR
>         Print #1, Item(i);
>         On Error GoTo 0
>         Print#1, ",";
>     Next i
>     Print #1, ""          ' CR/LF を出力して、csvファイル1レコードとする
>     Exit Sub
> ERR:
>     Print #1, OrgVal(i);  ' 本来の文字列の代わりに、Hex文字列を出力する。
>     Resume Next
> End Sub
>
> これで、出力された.csv ファイルで、"Z"を検索すれば、どのItemにどの様な値が入力され
> どの様な文字編集を行った際に、Printできなくなるか、が特定されると思います。
> これで、結論に近づけると思います。
>
>  色々、寄り道の多いやりとりになりましたが、私にとって意味深い寄り道でした。
> 本当に有難う御座いました。

っと、事実上の収束宣言を出してしまいましたが、今度は上の例外事象が発生しなくなって
しまいました。ランニング時間は、上記の対処前の概ね発生間隔の倍時間を越えています。
更に、この部分以外のソースやハードも含めた環境は、一切変えていないつもりです。
(「見ようとすると現象が変わる」のは、組み込みではよく出会う事項ではありますが‥。)
 単に捉えると、「変更前ソースNo.11781の
 Rec = Rec & Item(i)
の1行が怪しい」、となるわけですが、まさか‥‥です。

確かに、RS232Cで繋いでいる相手から受信しているデータまでは「同じ」とは言い切れませんが、
そういう傾向の現象でも無さそうに思われます。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。