UiPath テキストファイルを1行ずつ処理する方法
「テキストファイルを読み込む」アクティビティは
ファイルの最初から最後まで全ての文字列をString型変数に取り込みます。
このままでは1行づつ処理することが出来ません。
この記事では1行づつ処理するように応用する方法を紹介します。
手順
言語にVBを選んでいます。

まず「テキストファイルを読み込む」アクティビティを設置し、
プロパティをこのように設定します。
プロパティ | 設定値 |
---|---|
ファイル名 | 読み込むファイル |
コンテンツ | ファイルの内容を格納するString型変数 |

次にString[]型(配列)変数を用意します。
最初はString[]が変数の型にリストアップされないので
Array of [T]を選択しStringを選択します。
![変数の型からArray of[T]を選択](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/01/image-75.png)

これによりString[]変数が宣言出来るようになります。
![String[]変数を作成した図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/01/image-77.png)
次に「代入」アクティビティを設置し、
プロパティの右辺値(Value)と左辺値(To)にこのように設定します。
プロパティ | 設定値 |
---|---|
右辺値(Value) | ファイルの内容を格納したString変数.Replace(vbCrLf,vbLf).Split({vbLf(0),vbCr(0)}) |
左辺値(To) | String配列変数 |

これによりString配列変数にファイルの内容が
1行が配列の1要素に分割された状態で格納されます。
今回はこちらのファイルを読み込みます。

改行コードが3つあるため分割結果は4つになります。
3行目の後ろにも改行があるため、4つ目の要素として空白文字列が入ります。
配列のインデックス | 内容 |
---|---|
0 | 1行目 |
1 | 2行目 |
2 | 3行目 |
3 |
次に繰り返し(コレクションの各要素)を設置しプロパティにこのように指定します。
プロパティ | 設定値 |
---|---|
TypeArgument | String |
コレクション値 | String配列変数 |

これにより行毎に繰り返す状態になり、item変数の中に各行が格納されます。
今回はitemをメッセージボックスへ表示しますが、
最後の空白行を表示しないために条件分岐でフィルタします。
条件にitem=""を設定し、Elseにのみメッセージボックスを設置します。
これにより空白文字の時は処理しない状態になります。
(空白でも処理したい場合は不要です)

このツールを実行することで行毎に
メッセージボックスが表示されます。
