頼まれてCSVを編集するスクリプトを作った。
CSVなら簡単簡単と思ったのだが(実際すぐにできたのだが)、出力されたCSVを見て、「ダブルクォーテーション無しにできる?」と言われてはたと考えてしまった。
簡単にできそうなものなのだが、コマンドレットでは対応していない感じ・・・。
ネットで調べても、「あとからReplaceして消せ」みたいな意見が主流。
そもそもニーズがあまり無いのかしらん・・・。
でも~、ExcelなんかでCSV作るとダブルクォーテーションは付いていないのよね。
なんかいただけない感じ。
仕方なく、ダブルクォーテーションを消したのだが、もうひとつおかしな点を指摘された。
項目の後ろにあるスペースが削られてしまうのだと。
見てみると、後ろのスペースは1つ(1バイト)になってしまう。
元のデータにダブルクォーテーションがついていないからなのですかね。
しかも、調べてみると、インポートでも削られるしエクスポートでも削られる仕様の様だ・・・。(><)
結構厳しいなあ・・・。
暫定的に、適当なエンドマークをスペースの後ろにくっ付けてスペースが削除されないようにしておき、後でエンドマークを削るなんて処理でごまかした。
まったく別の方法として、CSV系のコマンドレットを使わずに、CSVを配列に入れて処理して、最後にまたくっ付けるなんてのも有りか。
添え字参照になるので、保守性が今一つなのと、なんといってもこいつは処理が重い。
コマンドレットで対応しないかなぁ・・・。
0 件のコメント:
コメントを投稿