CSVファイル内の空白を削除する

CSVファイル内の空白を削除する処理で、良い方法があればご教示いただければと思います。

あるサイトから取得するCSVについて、文字後ろにランダムな文字数分の空白が挿入されているような形式になっています。
テキストエディタで、CSVを開くと、各行のカンマ位置が必ず一致するといった感じです。
具体的には、会社名,住所,氏名,のような項目があるとすると、
各項目毎に一定の文字数が確保されているのか、
また、項目に入る名称も異なるため、各行の空白の文字数が異なります。

空白がなくなるまでReplaceを繰り返すような処理を行うしかないような気がしていますが、
同様の処理のご経験があれば、アイデアをいただきたく。
初歩的なことをお伺いしますが、よろしくお願いいたします。

こんにちは

やり方はいろいろあると思いますが、ダブルクォーテーションで囲まれていない、データにカンマが含まれないといった単純条件下でしたら、以下の正規表現で一括置換可能です。

System.Text.RegularExpressions.Regex.Replace(strText," +(?=,|\r?\n)","")

img20210127-1

上記制約に当てはまらないCSVの場合は、もう少し式を修正するか、
あるいは他にはDataTableとして読み込んで個々のデータを処理する等も考えられます。

2 Likes

DataTableとして読み込んで個々のデータを処理のでしたら、「繰り返し(各行)」を使って、

代入アクティビティ
左辺:Row.Item(“会社名”)
右辺:Row.Item(“会社名”).ToString.Trim

のように、Trimを使ってみましょう。Trimですと、前置空白、後続空白はすべて除去されます。文字間の連続する空白は、除去されません(VBAだと除去されちゃうけど)

1 Like

@Yoichi さま

ご紹介いただきました手順で一括置換出来ました。
大変助かりました。

2 Likes

@HANACCHI さま

ありがとうございました。
CSVを扱う処理が今後もあると思いますので、Trimを覚えておきます!

1 Like

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