VB テキストファイル操作編 |
テキストファイルの読み込み、書き込みの操作 |
|
【サンプルリスト】 '************************************** ' テキストファイルを1行単位に読み込む '************************************** Private Sub Command1_Click() Dim fileNo As Integer Dim buf fileNo = FreeFile 'ファイル番号の取得 Open "TESTFILE.TXT" For Input As #fileNo 'ファイルを読込モードで開く Do Until EOF(fileNo) 'EOFになるまでループ Line Input #fileNo, buf 'ファイルから1行読み込む Debug.Print buf Loop Close #fileNo 'ファイルを閉じる End Sub |
【サンプルリスト】 '**************************************** ' テキストファイルにデータを1行追加する '**************************************** Private Sub Command1_Click() Dim fileNo As Integer fileNo = FreeFile 'ファイル番号の取得 Open "TESTFILE.TXT" For Append As #fileNo 'ファイルを追加モードで開く Print #fileNo, "TEST" 'ファイルへ書き込む Close #fileNo 'ファイルを閉じる End Sub |
●Openステートメント 【機能】ファイルを開いて、ファイルへ入出力できるようにします。 【書式】Open パス名 For モード As ファイル番号 【書式】Open パス名 For モード Access アクセス ロック As ファイル番号 Len=レコード長
【 例 】 Open strFile For Input As #1 Open strFile For Append As #1 Open strFile For Output As #fileNo Open "TESTFILE" For Binary Access Write As #1 Open "TESTFILE" For Random As #1 Len = Len(MyRecord) Open "TESTFILE" For Output Shared As #1 Open "TESTFILE" For Binary Access Read Lock Read As #1 ※ 指定したファイルが存在しない場合、Append、Binary、Output、Randomモードでは、新規に作成して開きます。 ※ ファイルが別プロセスで既に開かれていて、指定したアクセスが実行できないとき、エラーが発生します。 ※ Binary、Input、Randomは、ファイルを開いたまま、別のファイル番号で同時に開くことができます。一方、Append、Outputは、いったんファイルを閉じないと、別のファイル番号で再び開くことはできません。 |
●FreeFile関数 【機能】使用可能なファイル番号を整数型 (Integer) の値で返します。 【書式】result = FreeFile 【 例 】 Dim fileNo As Integer 'ファイル番号 fileNo = FreeFile 'ファイル番号取得 Open "TESTFILE.TXT" For Append As #fileNo 'ファイルオープン Print #fileNo, "test" Close #fileNo |
●Print #
ステートメント 【機能】ファイルにデータを書き込みます。 【書式】Print #ファイル番号, "出力データ" ※最後に改行コードを出力します。 【書式】Print #ファイル番号, "出力データ"; ※最後に改行コードを出力しません。 【 例 】 Dim fileNo As Integer fileNo = FreeFile Open "TESTFILE.TXT" For Append As #fileNo Print #fileNo, "test1"; 'データ出力 Print #fileNo, "test2" 'データ出力 Print #fileNo, "test3" 'データ出力 Close #fileNo
※ Print # ステートメントで作成したファイルは、Line Input # ステートメント もしくは、Input # ステートメントを使用してファイルを読み込むことができます。 |
●Write #
ステートメント 【機能】ファイルにデータを書き込みます。データはダブルクォーテーションで囲まれて出力します。 【書式】Write #ファイル番号, "出力データ" ※最後に改行コードを出力します。 【書式】Write #ファイル番号, "出力データ"; ※最後にカンマを出力して、改行コードは出力しません。 【 例 】 Dim fileNo As Integer fileNo = FreeFile Open "TESTFILE.TXT" For Append As #fileNo Write #fileNo, "test1"; 'データ出力 Write #fileNo, "test2" 'データ出力 Write #fileNo, "test3" 'データ出力 Close #fileNo
※ Write # ステートメントで作成したファイルは、Input # ステートメントを使用してファイルを正しく読み込むことができます。 |
●Input #
ステートメント 【機能】ファイルからデータを読み込みます。 【書式】Input #ファイル番号, 読込データ格納変数 ※1件データを読み込みます。 【書式】Input #ファイル番号, 変数A, 変数B, ・・・ ※複数件のデータを読み込みます。 【 例 】 Dim fileNo As Integer Dim buf fileNo = FreeFile Open "TESTFILE.TXT" For Input As #fileNo Do Until EOF(fileNo) Input #fileNo, buf 'ファイルから1項目読込 Debug.Print buf Loop Close #fileNo
【 例 】 Dim fileNo As Integer Dim bf1,bf2 fileNo = FreeFile Open "TESTFILE.TXT" For Input As #fileNo Do Until EOF(fileNo) Input #fileNo, bf1, bf2 'ファイルから2項目ずつ読込 "bf1:" & bf1 & " bf2:" & bf2 Loop Close #fileNo
※ Write # ステートメントで作成したファイルは、Input # ステートメントを使用してファイルを正しく読み込むことができます。 |
●Line Input #
ステートメント 【機能】ファイルから1行を読み込みます。 【書式】Line Input #ファイル番号, 読込データ格納変数 【 例 】 Dim fileNo As Integer Dim buf fileNo = FreeFile Open "TESTFILE.TXT" For Input As #fileNo Do Until EOF(fileNo) Line Input #fileNo, buf 'ファイルから1行読込 Debug.Print buf Loop Close #fileNo ※ ファイルからキャリッジ リターン (Chr(13)) または改行コード (Chr(13)) + Chr(10)) の直前までのすべての文字を読み込みます。キャリッジ リターンと改行コードは、変数に読み込まれる文字列に追加されるのではなく、読み飛ばされます。 |
●Closeステートメント 【機能】開かれたファイルを閉じます。 【書式】Close ファイル番号 【書式】Close 【関連】Reset 【 例 】 Dim fileNo As Integer fileNo = FreeFile Open "TESTFILE.TXT" For Append As #fileNo Print #fileNo, "test1" Close #fileNo 'ファイルを閉じる ※ ファイル番号を省略すると、Openステートメントで開いたすべてのファイルが閉じられます。 |
●Resetステートメント 【機能】開かれたファイルをすべて閉じます。 【書式】Reset 【関連】Close 【 例 】 Dim fileNo As Integer fileNo = FreeFile Open "TESTFILE1.TXT" For Append As #fileNo Print #fileNo, "test1" fileNo = FreeFile Open "TESTFILE2.TXT" For Append As #fileNo Print #fileNo, "test2" Reset 'ファイルを閉じる |