ファイルの読み書き

English page

「ファイル」→「ファイル読み書き」グループのブロックを使うと、ファイルの読み書きを行うことができます。

RPAサーバーへの接続

ファイルの読み書きはRPAサーバーを経由して行います。
ファイル読み書きのブロックを実行する前に、RPAサーバーに接続するブロックを実行しておきます。

RPAサーバーに接続

ファイルを開く

ファイルを読み書きする際には、まず「ファイルを開く」のブロックで、対象のファイルを開きます。
ファイルを開くと、ファイルに対応するIDが返されますので、それを変数に代入します。
この変数を使ってファイルを読み書きします。

ファイルを開いて変数に代入

「モード」のパラメータで、読み書きのモードを指定します。
モードごとの動作は以下の通りです。

モード動作
読み込み(r)ファイルを読み込むために開きます。
ファイルの先頭の位置からアクセスします。
書き込み(w)ファイルを新規作成して書き込むために開きます。
すでにファイルが存在する場合は、その内容は消去されます。
ファイルの先頭の位置からアクセスします。
追記(a)既存のファイルに追加で書き込むために開きます。
ファイルの最後の位置からアクセスします。
排他的書き込み(x)ファイルを新規作成して書き込むために開きます。
すでにファイルが存在する場合は、エラーが発生します。
ファイルの先頭の位置からアクセスします。

「更新」のチェックをオンにすると、読み書きどちらも行える状態でファイルが開きます。
また、「バイナリ」のチェックをオンにすると、バイナリモードでファイルが開きます(チェックしない場合はテキストモード)。

テキストファイルの読み込み

テキストファイルから文字列を読み込むには、「すべてのテキストを読み込む」「テキストを1行読み込む」「テキストを○○文字読み込む」のブロックを使います。

すべてのテキストデータを読み込む
テキストデータを1行読み込む
文字を読み込む

「1行読み込む」と「○○文字読み込む」のブロックを使う場合、ファイルの最後まで読み込んだら、それ以上読み込まないようにすることが必要です。
ファイルの最後まで読み込んでいる状況で、さらに読み込みのブロックを実行すると、戻り値が空文字列なります。
繰り返しの中で読み込みを行った後、戻り値がから文字列になっていたら繰り返しから抜けるようにします。

例えば、「1行読み込む」のブロックを使って、ファイルを読み込んだ文字列を変数txtに代入し、それをコンソールに出力する場合だと、以下のようにブロックを組みます。

1行ずつファイルから読み込むための繰り返し

「1行読み込む」のブロックでは、行末に改行文字がある行を読み込んだ場合、改行文字も付加された状態になります。
「文字列」グループの「○○の行末の改行を削除した文字列」のブロックを使うと、行末の改行を取り除くことができます。

テキストファイルへの書き込み

「テキストを書き込む」のブロックを使うと、テキストファイルに文字列を書き込むことができます。

テキストデータの書き込み

「改行する」のチェックをオンにすると、文字列を書き込んだ後に、改行文字も書き込みます。

バイナリファイルの読み込み

ファイルを開く際に「バイナリ」のチェックをオンにした場合は、「バイナリデータを○○バイト読み込む」のブロックで、データを読み込みます。
読み込んだ結果は、バイナリ(数値)のリストとして返されます。

バイナリデータを読み込む

ファイルの最後まで読み込んだら、それ以上読み込まないようにすることが必要です。
ファイルの最後まで読み込んでいる状況で、さらに読み込みのブロックを実行すると、戻り値が空のリストになります。
リストの長さが0であるかどうかで、最後まで読み込んだかどうかを判断することができます。

例えば、「バイナリデータを読み込む」のブロックを使って、ファイルから10バイトずつ読み込んだ変数datに代入し、それをコンソールに出力する場合だと、以下のようにブロックを組みます。

バイナリファイルからデータを読み込む繰り返し

バイナリファイルへの書き込み

「バイナリデータを書き込む」のブロックを使うと、バイナリファイルにデータを書き込むことができます。
書き込むデータは、バイナリ(数値)のリストで渡します。

バイナリデータの書き込み

読み書きの位置の取得と設定

「現在の位置」のブロックを使うと、現在読み書きしている位置を得ることができます。

読み書き位置の取得

また、「位置を設定する」のブロックを使うと、次に読み書きする際の位置を設定することができます。

読み書き位置の設定

ただし、テキストファイルでは、ファイルの先頭からの位置しか設定することができません。
テキストファイルを対象にしているときに、位置のパラメータで「末尾」か「現在の位置」を指定するとエラーになります。

ファイルを閉じる

ファイルの読み書きの操作が終わったら、最後に「ファイルを閉じる」のブロックを実行します。

ファイルを閉じる