文字列を追加書き込み アクティビティの使い方について

UiPath 初心者です。

txtファイルコピー後に
文字列を追加書き込み アクティビティ を使用し、
以下のように2行目のみを
データテーブルより取得し書き換えたいです。
(データテーブルの行数分、繰り返し処理)
処理を行うと以下のエラーが出ましたが解決方法を教えて頂けないでしょうか。

【エラー内容】
Error ERROR 検証エラー 式 “来月度新機種.row(4).ToString” の処理中にコンパイル エラーが発生しました。
‘row’ は ‘System.Data.DataTable’ のメンバーではありません。

【変数】
来月度新機種 System.Data.DataTable

元データ
★★★
あああ.txt

処理後
★★★
111.txt

繰り返し(各行)アクティビティの中なら、『来月度新機種』は不要ですね。

『来月度新機種』の一行がrow変数に格納されますから。

アクティビティの外なら、rowではなく、rowsだと思います

ありがとうございます。
不要な単語を入れていたのですね。
解決しました。

2行目のみ書替の件は、分かりますでしょうか。

別トピックにしたほうが良いのであれば、そちらも教えて頂きたくよろしくお願いいたします。

こんにちは

やり方はいろいろありますが
たとえば、正規表現置換を用いると以下になると思います。(Replaceアクティビティでも同様のパターンで可能です)

 text = System.Text.RegularExpressions.Regex.Replace(text,"(?<=^.*\n).*?(?=\r?\n)",newString)

ご回答ありがとうございます。

超のつく初心者の為、分からない点があり、
教えて頂きたいです。

先程教えて頂いたパターンは、
正規表現の値 へ入力で合っていますでしょうか。
プロパティの中に
入力や置換があり、
置換には、row(4).ToString を入れたのですが、

入力=(現在の値??)は、
毎回入っている値が異なるため指定できませんでした。
こちらを2行目指定するにはどうすれば良いでしょうか。

こんにちは

このケースはおそらく事前にファイルをコピーする必要はなく
例えば以下のような実装で良いように思えます。
なおテキストファイルの読み書きは文字コード指定に注意する必要がありますのでご留意ください。

度々すみません

2行目が最終行になる可能性があるようでしたらパターンは

"(?<=^.*\n).*?(?=\r?\n|$)"

ですね。訂正いたします。

ご回答頂きありがとうございます。

私の説明が悪く申し訳ございません。

やりたい作業は、
サブフォルダやテキストごと元フォルダをコピーし、フォルダ名はデーターテーブルの6列目より取得。サブフォルダは何もせず、テキストは、書かれている内容を2行目のみ データテーブルの4列目より取得。
これをデータテーブルのデータ分、繰り返す。となります。

今回、コピー後の、テキストへの記入が分からず質問しておりました。

元フォルダ(フォルダ)
I- ★★★(サブフォルダ)
I- AAAAAA(サブフォルダ)
I- あああ.txt (中身が 00000
99999)

処理後のリネームフォルダ(フォルダ)
I- ★★★(サブフォルダ)
I- AAAAAA(サブフォルダ)
I- あああ.txt (中身が 00000
AAAAA )

このような場合、再度教えて頂けないでしょうか。
テキストは、2行しか記入がなく、2行目が最終行となります。

こんにちは

テキストファイルの名称の特定の仕方が良くわかりませんでしたが、固定ファイル名とすると

ちなみに対象テキストファイルが常に2行目が最終行で、末尾に改行がない場合は、正規表現パターンはかなり単純になり ".*$"でOKです。

1 Like

教えて頂きありがとうございます。
また、お返事が遅くなり申し訳ございませんでした。

教えて頂いた方法でやってみたのですが、以下の様にエラーが出てしまいます。
原因について分かりますでしょうか。

こんにちは

filenameの型はString配列ではなくString型を指定してみてください。

1 Like

ありがとうございます。
エラーが消えました。
パスがrowで毎回変化するので 配列を使うのかと思っておりました。
どうもありがとうございました。

続きのテキストをファイルに書き込みで別エラーが出ましたので
別トピックスで投稿をしようと思います。
もし、ご都合よろしければ、見て頂きたくよろしくお願いいたします。

1 Like

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