• ベストアンサー

VBによる可変長ファイルの読み書き

VB5で固定長、可変長の2種類のファイルを読み込み、編集して、またファイルに書き込むという処理を作成します。 固定長は、構造体にしてランダムアクセスによって、一気に読み書きしています。 問題は可変長のときどのようにファイルアクセスをし、読み書きするのがいいのかよくわかりません。 ファイルデータのフォーマットは 項目   属性  データ長 6バイト データ  可変 データ長 6バイト データ2 可変 ・ ・ ・ といくつか可変長のデータが並びます。 バイナリーでアクセスし、1つ1つ区切りながら読み込むしかないのですか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • bruce1104
  • ベストアンサー率18% (25/133)
回答No.1

データの間に","(カンマ)などがはいってるなど決ま毎があるのなら Private Sub subBunkai(ByVal strData As String,_ ByVal strKey As String, _ ByRef strARec As CRT.A_REC_TYPE) Dim lonLoop As Long If UBound(Split(strData, strKey)) <= 0 Then Exit Sub End If For lonLoop = 0 To UBound(Split(strData, strKey)) Select Case lonLoop Case 0 strARec .A= Split(strData, strKey)(lonLoop) Case 1 strARec .B = Split(strData, strKey)(lonLoop) Case 2 strARec .C = Split(strData, strKey)(lonLoop) Case 3 strARec .D = Split(strData, strKey)(lonLoop) End Select Next End Sub この関数を作成していけます。 strData には呼び元で取得したファイルデータをいれます。    例:"123,45678,ABC" strKey には可変長データを区切ってある区切り文字をいれます。    例:,(カンマ)など strARec モジュール.BASに作成した構造体です。 参考になるでしょうか?

その他の回答 (1)

  • zerosix
  • ベストアンサー率31% (47/149)
回答No.2

#1の方の回答にありますSplitはVB6でのみ使用できるかと 思います。 「データ長」というのは何のデータ長なのでしょうか? 可変長のデータの長さなら、MidBでデータを取得すれば良いのではないですか。