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 件のコメント:
コメントを投稿