VB初心者です。
3レコードからなる90バイトのバイナリーファイルの
最後のレコードだけを上書きしたいのですが、うまく
いきません。どう書けば良いのでしょうか?
宜しくお願い致します。
'------------------------------------------------
Public Type REC_INFORMATION
AA As Long
BB As Single
CC As Single
DD As Single
EE As Single
FF As Single
GG As Single
HH As Integer
End Type
Public RecInfo As REC_INFORMATION
'-------------------------------------------------------------
Dim ByteCNT as Long
RecInfo.AA = CLng("123")
RecInfo.BB = CSng("123")
RecInfo.CC = CSng("123")
RecInfo.DD = CSng("123")
RecInfo.EE = CSng("123")
RecInfo.FF = CSng("123")
RecInfo.GG = CSng("1")
RecInfo.HH = CInt("1")
Open "c:\TEST.bin" For Binary As #1
ByteCNT = LOF(1)
Seek #1, (ByteCNT - 29)
Put #1, , RecInfo
Close #1
No.1
- 回答日時:
出来るような気がするのですが・・・
どのように出来ないのか、補足願います。
この回答への補足
失礼致しました。補足致します。
一度以前のファイルの最後のレコードのRecInfo.AAを取得し、
今回取得した123と同一であれば上書き,違うのもであればファイルの最後に新しく今回のレコードと追加するという仕様です。
そのコーディングの途中段階であり、"GET"している部分が抜けていました。この先がうまくできないので困っています。
宜しくご指導願います。
'--------------------------------
Open "c:\TEST.bin" For Binary As #1
ByteCNT = LOF(1)
Seek #1, (ByteCNT - 29)
Get #1, , RecInfo.AA '補足部分
Put #1, , RecInfo
Close #1
No.2ベストアンサー
- 回答日時:
Randomファイルはレコード単位で扱うべきです。
Open File For Random As #1 Len = len(構造体)
レコード数 = (LOF(1) \ len(構造体)) + 1
Get #1, レコード番号, 構造体
Put #1, レコード番号, 構造体
Close #1
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- 英語 We examined the rungs of every chair in the hotel, 1 2022/10/02 11:27
- Excel(エクセル) バイナリー演算を勉強したい 1 2023/04/19 14:17
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル書込みで一行もしくは...
-
Access を×ボタンで閉じ...
-
データセットのレコード更新が...
-
COBOLでのランダムアクセス
-
JSPのNULLレコード表示について...
-
レコードセット(ADO.Recordset)...
-
VB.netの戻り値が返ってこない
-
カレントレコードが無い事を判...
-
DataGridViewにてセル以外をク...
-
ADODBのRecordset.Deleteのエラ...
-
Access のフォームで新しい行...
-
固有レコード識別子の選択とは
-
ヘッダレコードとトレーラレコ...
-
[VB6]プログレスバーコントロー...
-
Line Inputで文字化け(助けて...
-
DAO エクセルvbaからアクセ...
-
BASP21 で CGIとの通信
-
Accessで別テーブルの値をフォ...
-
select句副問い合わせ 値の個...
-
GROUP BYを行った後に結合した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードが存在しなかった場合
-
ADO VBA 実行時エラー3021
-
ファイル書込みで一行もしくは...
-
アクセスでレポートの1印刷内...
-
カレントレコードが無い事を判...
-
差し込み印刷のレコード数について
-
レコードセット(ADO.Recordset)...
-
ワードの差込印刷で教えて下さ...
-
DataGridViewの内容をDBに反映...
-
Access でレコードセレクタが押...
-
DataGridViewの、選択されてい...
-
JSPのNULLレコード表示について...
-
ACCESSで大量の更新を行うと「...
-
[VBA] ADOの Clone と AddNew
-
Access を×ボタンで閉じ...
-
サブレンジ分割されたNDB(富士...
-
ヘッダレコードとトレーラレコ...
-
データセットのレコード更新が...
-
DataGridViewにてセル以外をク...
-
Line Inputで文字化け(助けて...
おすすめ情報