スポンサーリンク

UiPath 空白行の削除

テキストファイルの空白行の削除

今回はテキストファイルを読み込んだ際に、空白行を削除する方法について説明します。

事前準備として以下のように読み込む用のテキストファイルを作成してください。今回ファイル名はtext.txtとしていますが、ファイル名と中身は任意で入力してください。

先頭行は空白にしています。また、最終行は“d”で終わりです。

スポンサーリンク

変数の作成

まず、変数一覧でread_texttext_listblank_remove_textの3つを作成します。変数の型は以下の表の通りに変更してください。

変数名変数の型
read_textString
test_arrayArray of<String>
blank_remove_textString

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

まず、テキストファイルを読み込むを配置します。
アクティビティ検索欄に「テキストファイル」と入力するか
システム -> ファイル -> テキストファイルを読み込むから配置してください。

配置が完了したら、右下の...をクリックし、読み込むファイルを選択して、右側のプロパティ欄「出力」にread_textと入力します。

これで、テキストファイルを読み込むことが出来ました。

読み込んだテキストを配列にする

次は読み込んだテキストを1行ずつ区切り配列にします。

まず、代入を配置してください。
デフォルトではお気に入りにあるのでそこから配置してください。
もしお気に入りに無い場合は、ワークフロー -> 制御 -> 代入から配置してください。

配置が完了したら、text_array = read_text.Split(CChar(vbcrlf))となるように入力します。

これで、読み込んだテキストを改行コードで1行ずつ区切り、配列にすることが出来ました。

空白行以外を取得する

現在、text_arrayの中身は以下のようになっています。

インデックス値0123456789
格納文字列aaabbbccd

空白になっている箇所以外をblank_remove_textに追加していきます。

まず、繰り返し (コレクションの各要素)を配置します。
アクティビティ検索欄に「繰り返し (コレクションの各要素)」と入力するか
ワークフロー -> コントロール -> 繰り返し (コレクションの各要素)から配置してください。

配置が完了したら、「コレクション」にtext_arrayと入力し、右側のプロパティ欄で「TypeArgument」をString型に変更してください。

次に本体内条件分岐を配置します。
アクティテビィ検索欄に「条件分岐」と入力するか
ワークフロー -> 制御 -> 条件分岐から配置してください。

配置が完了したら、「Condition」にitem.Length > 1と入力します。

補足

item.Length > 1としている理由は、一番最初の行以外の空白行は“\n”という改行文字が入っていて空白行文字数となるため。

read_text” \naaa\n\nbbb\n\n\ncc\n\n\nd”となっており、“\n”で区切っているためtext_arrayの中身は正確には以下のようになっています。

インデックス値0123456789
格納文字列\naaa\n\n\nbbb\n\n\ncc\n\nd
文字数0411411312

※ “\n”は改行文字で1文字として扱われています。

次に条件分岐Then内代入を配置します。
配置が完了したらblank_remove_text = blank_remove_text + itemとなるように入力します。

最後に繰り返し (コレクションの各要素)の後に1行を書き込みを配置します。

デフォルトではお気に入りにあるのでそこから配置します。
もしお気に入りに無い場合は、プログラミング -> デバッグ -> 1行を書き込みから配置してください。

配置が完了したら、blank_remove_textと入力します。
最終的にはシーケンスが以下のようなフロー図になります。

それでは、実行して見ましょう。

空白行以外の行を取得できていることが確認出来ました。
以上で空白行の削除について説明を終了します。

まとめ

全文を改行で区切って配列に格納し、String.Lengthメソッドを使用して1行ごと文字数を取得すると、空白行の文字数は1か0になるため、条件分岐文字数が1よりも大きい行だけを取得すれば空白行を削除することが出来ます。

「ここの説明がわかりにくい」や「こういった方法もありますよ」などがあればコメントしていただけるとありがたいです。その他のコメントもお待ちしております。

おまけ

今回は説明をするために、読み込んだテキストを一度配列にしていますが代入の右側に設定した値を繰り返し (コレクションの各要素)の「コレクション」に直接入力しても同じ結果になります。
text_arrayを作る必要がなくなり、代入を配置する必要がなくなるので少しだけ作成の手間を省けます。

コメント