2014年1月8日水曜日

◆ダブルクォーテーション無しのCSVについて

頼まれてCSVを編集するスクリプトを作った。

CSVなら簡単簡単と思ったのだが(実際すぐにできたのだが)、出力されたCSVを見て、「ダブルクォーテーション無しにできる?」と言われてはたと考えてしまった。

簡単にできそうなものなのだが、コマンドレットでは対応していない感じ・・・。

ネットで調べても、「あとからReplaceして消せ」みたいな意見が主流。
そもそもニーズがあまり無いのかしらん・・・。
でも~、ExcelなんかでCSV作るとダブルクォーテーションは付いていないのよね。

なんかいただけない感じ。

仕方なく、ダブルクォーテーションを消したのだが、もうひとつおかしな点を指摘された。
項目の後ろにあるスペースが削られてしまうのだと。
見てみると、後ろのスペースは1つ(1バイト)になってしまう。

元のデータにダブルクォーテーションがついていないからなのですかね。
しかも、調べてみると、インポートでも削られるしエクスポートでも削られる仕様の様だ・・・。(><)

結構厳しいなあ・・・。

暫定的に、適当なエンドマークをスペースの後ろにくっ付けてスペースが削除されないようにしておき、後でエンドマークを削るなんて処理でごまかした。

 

まったく別の方法として、CSV系のコマンドレットを使わずに、CSVを配列に入れて処理して、最後にまたくっ付けるなんてのも有りか。

添え字参照になるので、保守性が今一つなのと、なんといってもこいつは処理が重い。

コマンドレットで対応しないかなぁ・・・。

0 件のコメント:

コメントを投稿