• ベストアンサー

固定長からCSVへの出力時にスペースを詰めたい。

固定長ファイルで各項目左詰めでデータ入力されておりスペースが入っております(全角、半角)。このファイルをcsv出力する際に各項目後ろの空白部分を詰めて、csv出力したいのですが可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

VB、VBAでやれる環境なら、RTrimと言う関数が使えて 右側の全角や半角スペースを取り去ってくれますので、簡単にプログラムが組めます。 半角でも全角スペースでも取り除いてくれる確認テスト。 どちらも「大阪市*」と表示されました。 Sub test02() b = "大阪市   " '全角スペース a = RTrim(b) & "*" MsgBox a c = "大阪市 " '半角スペース d = RTrim(c) & "*" MsgBox d End Sub 各レコードをLine Input#で読んで、フィールド長が決まっているのだからMid関数でフィールドごとに切りだし、RTrimして、Write #で書き出せばよいです。

その他の回答 (3)

  • i-touch
  • ベストアンサー率40% (170/415)
回答No.4

VB6のプログラムで、同様のことを自動実行できるように組んでいます。 注意点は、VB6やエクセル97以降のVBAでは、Mid()での文字列がUnicode基準なので、より厳密に固定長から切り出すときには、一度StrConv(str,vbFromUnicode)でANSIコードに変換してMidB()で切り出し、その後、StrConv(str,vbUnicode)で戻す処理が必要です。 では!

  • yang_yang
  • ベストアンサー率31% (117/367)
回答No.2

エクセルはお持ちでしょうか?固定長ファイルをテキスト形式にしてエクセルでファイルを開こうとすると、セルの区切りを指定できます。任意の場所で区切りを指定して、その後csv形式で保存したらいかがでしょうか?

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

プログラムで作成すれば可能です。 作り方は、プログラム言語によって違います。

関連するQ&A