テキストファイル抽出

Uipath初心者です。

データテーブルの列に格納されている文字列を全て参照して、テキストファイルからその文字列を含んでいる行を抽出したいです。
やり方を教えていただきたいです。

こんにちは

テキストファイルから読み込んだ文字列をstrData, 検索文字列が格納されているデータテーブルをdt, またその格納列をKeywordとすると

arrString = strData.Split(vbcrlf.ToCharArray,StringSplitOptions.RemoveEmptyEntries).Where(Function(s) dt.AsEnumerable.Any(Function(r) s.Contains(r("Keyword").ToString))).ToArray

ありがとうございます。
その抽出したものを再度別のテキストファイルに書き込んでみると、System.string[]と書き出されます。どうしたらいいでしょうか?

こんにちは
上記は文字列配列で出力していますので

String.Join(vbCrLf,arrString)

のようにしてあげると、文字列として書き出せます。

1 Like

ありがとうございます。テキストファイルに書き起こすことに成功しました。

書き方が悪かったのですが

データテーブルの文字列:"111"→テキストファイルから"111"を検索→抽出した分を別のテキストファイルに書き込む

データテーブルの文字列:"222"→テキストファイルから"222"を検索→抽出した分を別のテキストファイルに書き込む

のようにデータテーブルの列の文字列の分だけテキストファイルが作成されるというイメージでした。
申し訳ないですが再度教えていただけますか?

こんにちは

この場合、ファイル名はどのように決定するのでしょうか?

ファイル名は、データテーブルの列から抽出した文字列を使用します。

例えば検索文字列が該当する行が複数存在したり、あるいは1つの行で複数の検索文字列が該当する場合があると思いますが、この場合はどのようになりますでしょうか?

検索文字列がテキストファイルで複数該当する場合は全て抽出します。
一つの行で複数の検索文字列が該当するケースは考慮にいれてません。

こんにちは

この要件であれば、違うアプローチの方がよさそうです。
以下一例です。

Matchesアクティビティのプロパティ

入力: strData

パターン

"(?<=^|\r?\n).*"+row("Keyword").ToString+".*(?=\r?\n|$)"

です。

シーケンス.xaml (8.0 KB)

ご丁寧にありがとうございます!
解決することができました!

1 Like

こんにちは

一点注意事項がありまして、キーワードに正規表現のメタ文字が含まれると、想定の動作に
なりませんので、その点留意ください。(通常のアルファベット、漢字等は問題ありません。
円マークなどいくつかの記号が影響してきます。)

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.