テキストファイル内の区切り文字を配列に代入したい

こんにちは。
UiPath Studio 2023.10.0 EnterPriseユーザです。

デバッグ中にテキストファイルを配列に代入する際によく出るエラー「Object Reference not set to an instance of an object」を出してしまいました。
やりたいことは

改行コードで区切られたstr_テキスト内の要素を配列arr_配列に代入することです。

代入文は

arr_配列=i_str_テキスト.Split(chr(10))

ですが、おかしいところはありますか?

Hi @gorby

Try this query instead

arr_array = i_str_text.Split({Chr(10)}, StringSplitOptions.RemoveEmptyEntries)

Hope it helps!!

Hi @gorby

Try this

arr_array = i_str_text.Split(vbLf)

この式でこの例外がでるのであれば、i_str_テキストがnull (Nothing)なのではないでしょうか?
デバッグモードで実行して、例外が出たときにローカルパネルで内容を確認してみてください。

そうであれば式の問題ではなく、事前に変数をnullじゃないようにする必要があるかと思います。

ご指摘の通りでした。変数をNot Nullに設定してここは通過しましたが、配列を回して取得したstr_テキストの値をローカルパネルで見ると
@“3:昭和”
と最初に@が入っています。@は改行コードでしたでしょうか。@は
str_テキスト.Remove(0,1)で削除できますか?

@記号はC#の文法で表示されているものなので無視しても大丈夫です(ダブルクォーテーションがデータの中身ではないことと同様です)

ただしこの記号があるということは、中身に改行やダブルクォート等エスケープが必要なものが含まれている可能性がありますので、その点は注意いただく必要があると思います。
(例えば、上記はchr(10)で分割していますが、WIndowsの改行記号はCR+LF (=chr(13)+chr(10))なのでchr(13)が末尾に残っている可能性があります)

i_str_テキスト.Replace(chr(13),"").Split(chr(10))

とするか、または改行記号があらかじめCR+LFであることが分かっている場合は、

i_str_テキスト.Split(vbCrLf.ToCharArray,StringSplitOptions.RemoveEmptyEntries)

とした方が良いかもしれません。

1点確認させてください。

上記構文でvbCrLfを削除しておけば、chr(10)とchr(13)が一度で削除できるという認識で合っていますでしょうか?

ちょと意図がつかみにくいのですが、「vbCrLfを削除しておけば」とは何を指していますでしょうか?