
.NETで構造体をランダムファイルに書き込む処理を作成していますが、エラーになります。
構造体宣言は
Public Structure aaa
Public aa as DateTime
Public bb() as int16
Public Sub Init()
ReDim bb(100)
End Sub
End Structure
Public wData As New aaa
ファイル登録時に
FileOpen(iFileNo, sFileName, OpenMode.Random, , , len(wData))
FileOut(iFileNo, wData, iRecord)
上記のFilePutを実行した時点で、
「レコード長が正しくありません」
とエラーが出ます。
オープンするファイルナンバーやレコードは、
初回登録時は共に、1で問題ありません。
VBのイメージで作成したのですが、どうもうまくいきません。
なにとぞ、お教えください。
No.1ベストアンサー
- 回答日時:
構造体の構成に配列要素がある場合は、構造体の宣言で長さをあらかじめ宣言しなければなりません。
Public Structure aaa
Public aa As DateTime
<VBFixedArray(100)> Public bb() As Int16
Public Sub Init()
ReDim bb(100)
End Sub
End Structure
ありがとうございます。
文字列の場合、VBFlexedをつけるのは頭にあったのですが、
配列の場合にも必要とは。
考えれば、可変長をサポートするためのものであるのだから、配列でも必要ですよね。
ありがとうございました。
No.2
- 回答日時:
>ファイル登録時に
>FileOpen(iFileNo, sFileName, OpenMode.Random, , , len(wData))
>FileOut(iFileNo, wData, iRecord)
>上記のFilePutを実行した時点で、
FileOut になっていますが?
FileGet や wData への書き込みはどこでしているのですか?
VB6.0 でも書き込みは、Get 、Put していたはずですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで質問です。 ハイパー...
-
Returnに対するGoSubがありません
-
「パス名が無効です」の発生原因
-
FileSearchがExcel2010でできない
-
VBから参照できないCのDLLを使...
-
VB6 Dir関数で52エラー発生
-
Access2013にてドラッグ&ドロ...
-
ネットワーク上でのファイル操...
-
gccを行ってもexeファイルが生...
-
matlabでexcelを閉じる
-
インデックスが配列の境界外で...
-
VBでファイルが開かれているか...
-
access テキストボックスの値取得
-
fcloseで発生するエラーについて。
-
ファイルをクローズしたい
-
【関数】同じ関数なのに、エラ...
-
AutoExecで自動終了させるには?
-
アクセスのクエリでコンパイル...
-
csvファイルをvbaで読み...
-
【COBOL】read文でエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで質問です。 ハイパー...
-
Excel 2003 のエラーメッセージ
-
「パス名が無効です」の発生原因
-
PowerShellを使って関連付けら...
-
access テキストボックスの値取得
-
【COBOL】read文でエラー
-
アクセスのクエリでコンパイル...
-
Returnに対するGoSubがありません
-
batファイルでレジストリキーの...
-
VBから参照できないCのDLLを使...
-
NAS上のファイルの使用中が解除...
-
データベースソフトのアクセス2...
-
VB6 Dir関数で52エラー発生
-
【関数】同じ関数なのに、エラ...
-
gccを行ってもexeファイルが生...
-
FORTRANの実行エラーについて
-
FTPの送信結果を検知したい
-
fgets関数のEOFの扱い方について
-
ASP.NET 2.0にてアプリが動作し...
-
VBでファイルが開かれているか...
おすすめ情報