ファイルの書き込みNo.00410
HHH さん 04/03/10 14:57
 
お世話になります。
HHHと申します。

秀Termでファイルを書き込み、
VB(Ver6.0)側で、そのファイルを
読込むように作成しました。

秀Termのスプリクトは、

   '正常のときは0、異常のときは1をa#にセットします
   #a="0"

   createfile "UPDT.END"
   writefile "UPDT.END", #a
   closefile "UPDT.END"
   afterhangup TEST-END.HSC
   hangup
   exit    
 
TEST-END.HSCスクリプトの内容は、

  closehideterm
   exit    

です。

VB6側は、

'秀Tramが終了したら2000ミリ秒(2秒)待ちにします。
Call Sleep(2000)
W$ = "1"
If Dir("UPDT.END") <> "" Then
   Open "UPDT.END" For Input As #1 'ファイルのオープン
   Line Input #1, W$
   Close #1
End If


このように、VB6側でUPDT.ENDファイルの内容を
読込んでいますが、秀Tramが正常に終わっているのに、
VB6ではW$の値が1となります(UPDT.ENDファイル
自体作成されていないのかな?)。
OSはWindowsXP(Home)で、秀TramはVer446です。
前は頻繁にはこの現象はなかったのですが、
最近なぜか頻繁に起こります。
根本時に、やりかたが悪いのでしょうか?
どなたか、アドバイスをよろしくお願いします。




[ ]
RE:00410 ファイルの書き込みNo.00411
秀まるお2 さん 04/03/10 17:10
 
 もしかすると、UPDT.ENDファイルがどこか別のフォルダに作成されてるのかも
しれません。ハードディスク上にUPDT.ENDファイルが他に作成されてないか、一
度検索してみることをお勧めします。

 スクリプトは、例えば、c:\testフォルダを使うとしたら、

    #file = "c:\test\UPDT.END";
    createfile #file
    writefile #file, #a
    closefile #file

 のように直した方がいいんと思います。さらに、createfileに失敗したかどう
かも確認し方がいいかもしれません。総合すると、

    #file = "c:\test\UPDT.END";
    createfile #file
    if( no )
        message "UPDT.ENDファイルの作成に失敗しました。";
    endif
    writefile #file, #a
    closefile #file

 とするのがいいんじゃないかと思います。

[ ]
RE:00411 ファイルの書き込みNo.00412
HHH さん 04/03/10 20:17
 
秀まるお2様、
お世話になります。
HHHです。

確かに、パスは設定してなく、
ファイル名のみを渡しています。

createfile "UPDT.END"

これだと、秀Termが起動したフォルダ
だと認識していました。現在の環境ですと

c:\HideTerm

です。もしかして、パスを指定していないと
どこに作成されるか、わからないということ
でしょうか?

[ ]
RE:00412 ファイルの書き込みNo.00413
秀まるお2 さん 04/03/11 13:09
 
> もしかして、パスを指定していないと
> どこに作成されるか、わからないということ
> でしょうか?

 僕もあまり自信がないですが、可能性の1つとして、そういうことがあるかも
しれないと思っただけです。念のためフルパス指定に直しておくに超したことは
無いと思います。

 ハードディスクを検索して、C:\Hidetermの他にUPDT.ENDファイルが無いのな
ら、あえて僕の提案したような修正をしても意味が無い可能性は高いですけど。

 他に、スクリプトおよびVB6プログラムがうまく動かない理由は思いつかない
です。

[ ]
RE:00413 ファイルの書き込みNo.00414
HHH さん 04/03/11 17:13
 
秀まるお2様、
お世話になります。
HHHです。

ありがとう、ございました。
参考になりました。
他のフォルダにUPDT.ENDファイルが
存在しないか調べてみます。

[ ]