2025/10/27

CSV ファイルの読み込み ① - ファイルの準備

LotusScript でファイルを操作する方法には NotesStream クラスを利用する方法と下記のステートメントを使用する方法の 2 種類があります。ざっくりいうと前者はバイナリファイル、後者はテキストファイルの操作に向いています。

Open 読み書きできるようファイルを開く
Close 開いているファイルを閉じる
FreeFile 使用していないファイル番号を返す
Input #
Line Input #
ファイルからデータを読み込む
Print #
Write #
ファイルにデータを書き込む

今回は、これらステートメントを利用した CSV ファイルの読み込みについて紹介します。


Open

ファイル操作を開始するには、まず Open 命令でファイルを開く必要があります。構文は下記の通りで、開くファイルと開き方を指定します。

Open fileName For mode As #fileNumber

filename 開くファイルを文字列で指定
フルパスで指定しない場合、カレントディレクトリを基準に開く
mode ファイルの開き方を指定(下表参照)
fileNumber 1 ~ 255 までの整数
他のファイル操作コマンドは、この番号でファイルを参照

指定できるモードの種類は以下の通りです。CSV ファイル操作では Input / Output / Append を使用します。

Input シーケンシャル入力モードで開く
テキストファイルの読み込みで使用
Output シーケンシャル出力モードで開く
テキストファイルの書き込みで使用
Append Outputと同じく書き込み用
既存のファイルに追記する
Random ランダムアクセスモードで開く
ファイルはレコード番号でアクセスし、Get # / Put # ステートメントで読み書きする
Binary バイナリファイルモードで開く
Get # / Put # ステートメントで読み書きする


FreeFile

Open ではファイル番号(fileNumber)をしていました。このファイル番号を指定してファイル操作を行うことになるのですが、その番号を取得するのが FreeFile ステートメントです。

fileNumber = FreeFile()

戻り値は、使用していないファイル番号です。この命令を使えば、何番を使えるのか意識する必要がなく、使用できる番号を簡単に取得できます。


Close

開いているファイルを閉じます。引数で閉じるファイル番号を指定できますが、省略するとすべてのファイルを閉じます。

Close fileNumber

LotusScript スクリプトが終了すると開いているファイルは自動的に閉じるようですが、プログラムの意図を明確にするためにも処理が終わったら閉じるようにしましょう。


サンプル

CSV ファイル(テキストファイル)を読み込みモードで開く処理は次のように記述します。

Sub Initialize
   Dim iFP As Integer

   'ファイルオープン(読み込みモード)
   iFP = FreeFile()
   Open "c:\tmp\KEN_ALL_ROME.CSV" For Input As #iFP
   
         (ファイル読み込み処理)
   
   'ファイルのクローズ
   Close
End Sub

FreeFile で使用するファイル番号を取得して、Open で使用しています。変数名 iFP の前に # が付いていますが、これはファイル番号を表すキーワードだと覚えてください。LotusScript 登場のはるか前にあった BASIC 言語の名残となります。


次回の予定

これで CSV ファイルの読み込み準備ができました。次回はファイルからデータを読み込む処理について紹介します。


0 件のコメント:

コメントを投稿