■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#23795-0VB複数FD交換時PUT関数がエラー匿名237952001-10-17(水) 16:24
     #23800-0RE#23795:VB複数FD交換時PUT関数がエラーあき☆彡2001-10-17(水) 17:16
     #23803-0RE#23800:VB複数FD交換時PUT関数がエラー匿名238032001-10-17(水) 18:29
#23795-0
VB複数FD交換時PUT関数がエラー
VisualBasic 6 で 複数FDへのバイナリデータ書込み 及び読み込み
処理を作りたいのですが 下記の問題で困ってしまいました。
サンプルソースを作成しました。どこかに基本的なミスがあるかと思うのですが 
回避方法どなたか教えていただけませんでしょうか お願いいたします。


再現方法
確認環境 WindowsNT 4 VisualBasic 6.0(SP5)

1.FORM1 にボタンを2つ作成し、下記ボタン処理を書きます。
   [PUT]ボタン Command1_Click() に対応
   [GET]ボタン Command2_Click() に対応

2.モジュール module1.bas を作成して 構造体定義を書きます。

3.実行します。
(1)[PUT]ボタンにより FD1 FD2 2枚のFDに a:\test.bin を書込みます。
(2)[GET]ボタンにより 2枚の FD から a:\test.bin を読み込むと
 1枚目は 正常に読込みできるが 2枚目で
 「実行時エラー '75' パス名が無効です。」 となります。

(3)「媒体交換してください」で媒体を交換しなければ正常に読めます。
(4)FD1 FD2 どちらを先に読んでも1枚目はok 2枚目はNG(媒体の問題ではない)

サンプルソース

'構造体定義 module1.basファイルに定義
Type Record                     ' ユーザー定義型を定義します。
   ID As Integer
   Name As String * 20
End Type

'以下 form1.frm に定義
 
'[PUT]ボタン処理
Private Sub Command1_Click()

  Dim MyRecord As Record   ' 変数を宣言します。

  ' ファイルをランダム アクセス モードで開きます。
  Open "a:\test.bin" For Random As #1 Len = Len(MyRecord)
  MyRecord.ID = 1                    ' ID を定義します。
  MyRecord.Name = "My Name"          ' 文字列を作成します。
  Put #1, 1, MyRecord     ' レコードをファイルに書き込みます。
  Close #1                        ' ファイルを閉じます。

  MsgBox ("媒体交換してください")

  ' ファイルをランダム アクセス モードで開きます。
  Open "a:\test.bin" For Random As #1 Len = Len(MyRecord)
  MyRecord.ID = 2                    ' ID を定義します。
  MyRecord.Name = "My Name"          ' 文字列を作成します。
  Put #1, 1, MyRecord     ' レコードをファイルに書き込みます。
  Close #1                        ' ファイルを閉じます。

End Sub


'[Get]ボタン処理
Private Sub Command2_Click()

  Dim MyRecord As Record   ' 変数を宣言します。

  Open "a:\test.bin" For Random As #1 Len = Len(MyRecord)
  Get #1, 1, MyRecord
  Close #1

  MsgBox ("媒体交換してください")

  Open "a:\test.bin" For Random As #1 Len = Len(MyRecord)
  Get #1, 1, MyRecord
  Close #1
End Sub
#23800-0
RE#23795:VB複数FD交換時PUT関数がエラー
> VisualBasic 6 で 複数FDへのバイナリデータ書込み 及び読み込み
> 処理を作りたいのですが 下記の問題で困ってしまいました。
> サンプルソースを作成しました。どこかに基本的なミスがあるかと思うのですが 
> 回避方法どなたか教えていただけませんでしょうか お願いいたします。
> 
> 再現方法
> 確認環境 WindowsNT 4 VisualBasic 6.0(SP5)
フロッピーを2枚用意して下記の環境で実行してみましたが再現出来ませんでした。
・WinMe         VB6+SP4
・Win2000Server VB6+SP4

NTでは必ずなるのでしょうか?
#23803-0
RE#23800:VB複数FD交換時PUT関数がエラー
> > VisualBasic 6 で 複数FDへのバイナリデータ書込み 及び読み込み
> > 処理を作りたいのですが 下記の問題で困ってしまいました。
> > サンプルソースを作成しました。どこかに基本的なミスがあるかと思うのですが 
> > 回避方法どなたか教えていただけませんでしょうか お願いいたします。
> > 
> > 再現方法
> > 確認環境 WindowsNT 4 VisualBasic 6.0(SP5)
> フロッピーを2枚用意して下記の環境で実行してみましたが再現出来ませんでした。
> ・WinMe         VB6+SP4
> ・Win2000Server VB6+SP4
> 
> NTでは必ずなるのでしょうか?

再現テスト お手数おかけしました。
すみません。再現環境NT4と書きましたが 
発生環境は Windows2000 Professional(SP1)+VB6(SP5)でした。
この環境(マシンFlora Note 220 + 外付FD)では フラットに再現します。
WindowsNT4(SP6)+VB6(SP5) +DellデスクトップPCでは 再現しませんでした。
ハードウエアによるのかもしれません。
もうすこし 再現条件等 調査した後、再度ご相談いたします。
コーディング上の問題ではなさそうということですよね。
                                           -以上-
 
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)