いつもお世話になります。VB2005でテキストファイル(中身は1レコードのみ)をFileOpen関数の
ランダムアクセスを使用し、FileGet関数で値を取得しました。しかし、取得後に続くDo While Not EOF~LOOP内の
処理が実行されません。同じファイルでVB6版で使用したら問題なく実行されたのですが。
どのように対応したらよろしいのでしょうか?
よろしくお願い致します。
ソース
Structure TypeUkeData '(Length = 100)
<VBFixedArray(7), MarshalAs(UnmanagedType.ByValArray, SizeConst:=8)> Dim b_UkeDate() As Byte '受付日
<VBFixedArray(7), MarshalAs(UnmanagedType.ByValArray, SizeConst:=8)> Dim b_UkeTime() As Byte '受付時刻
<VBFixedArray(3), MarshalAs(UnmanagedType.ByValArray, SizeConst:=4)> Dim b_UkeCnt() As Byte '件数
<VBFixedArray(79), MarshalAs(UnmanagedType.ByValArray, SizeConst:=80)> Dim b_UkeNaiyo() As Byte '内容
Public Sub Initialize()
ReDim b_UkeDate(7)
ReDim b_UkeTime(7)
ReDim b_UkeCnt(3)
ReDim b_UkeNaiyo(79)
End Sub
End Structure
Sub ReadFile
Dim b_UkeData As TypeUkeData
Dim i_FileNo As Short
Dim i_RecNo As Short
call b_UkeData.Initialize()
i_FileNo = FreeFile()
FileOpen(i_FileNo, "C:\UkeData.tmp", OpenMode.Random, , , 100)
' 最初のレコードを読み込む
i_RecNo = 1
FileGet(i_FileNo, b_UkeData, i_RecNo) ←b_UkeDataに確かに値は入っている
Do While Not EOF(i_FileNo) ←ループ内の処理に一度も入らず次のFileCloseにいってしまう
CALL SubSpilit(b_UkeData)
' 次のレコードを読み込む
i_RecNo = i_RecNo + 1
FileGet(i_FileNo, b_UkeData, i_RecNo)
Loop
FileClose(i_FileNo)
End Sub
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
FileGetをDoループの先頭で処理すればいいのでは ・・・
'ここをコメントアウト
'i_RecNo = 1
'FileGet(i_FileNo, b_UkeData, i_RecNo)
' 0で初期化する
i_RecNo = 0
Do While Not EOF(i_FileNo)
' ここで読み込み処理
i_RecNo += 1
FileGet(i_FileNo, b_UkeData, i_RecNo)
CALL SubSpilit(b_UkeData)
' ここはコメントアウト
' 次のレコードを読み込む
'i_RecNo = i_RecNo + 1
'FileGet(i_FileNo, b_UkeData, i_RecNo)
Loop
FileClose(i_FileNo)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
vbaのエラー対応(実行時エラー...
-
IF文に時間(何時から何時ま...
-
特定の名前のオートシェイプの...
-
どうやってもFor文を抜けてしま...
-
VBA 複数の行を高速で削除する...
-
Functionで戻り値を複数返す方法
-
private subモジュールを他のモ...
-
シグナル 6(SIGABRT)とは?
-
VB6にてネットワーク上にある共...
-
【Vb.net】プリンタジョブの取得
-
Excel VBA セルの名前があるか...
-
マクロで、次のコードへ行く前...
-
VBA For Each 〜 複数条件について
-
メモリ不足になった後の処理
-
RaiseEventのメリット
-
ソケットで通信できない
-
フォルダのアクセス権確認について
-
途中で処理を中断させたい (ア...
-
VB2005のファイル読込でDo Whil...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
vbaのエラー対応(実行時エラー...
-
private subモジュールを他のモ...
-
マクロで、次のコードへ行く前...
-
どう増強すべきか
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
Excel VBA セルの名前があるか...
-
ExcelのVBAで、選択したファイ...
-
どうやってもFor文を抜けてしま...
-
シェルスクリプトでファイル内...
-
ドリブン??
-
特定のファイルを他のプロセス...
-
VB6にてネットワーク上にある共...
-
【VBA】エラー処理で別プロシー...
-
Functionで戻り値を複数返す方法
-
Word VBA。各マクロの間に待ち...
-
エクセル VBAで複数セル選択時...
-
VBA 複数の行を高速で削除する...
おすすめ情報