固定長でデータを出力するには?

解決


ヤマダ  2005-01-13 00:25:47  No: 118809

はじめまして。VB6を使用しています。

フォームで入力した5項目と固定項目3つを合わせて
固定長のファイルで出力し、ファイル名を「xxx.HDR」で保存する。
という処理をしたいのです。
読み込み方法は見つかったのですが、書き込み(出力)する方法が分かりません。
どのような方法があるでしょうか。
よろしくお願いします。


じゃんぬねっと  URL  2005-01-13 00:48:23  No: 118810

> 書き込み(出力)する方法が分かりません。

ってことは「固定長」は関係ないのかな?

書き込みについてはググれば結構出てきますが?http://www.google.co.jp/search?hl=ja&q=VB6+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=


ヤマダ  2005-01-13 01:02:39  No: 118811

>ってことは「固定長」は関係ないのかな?

すみません。書き方が悪かったようです。
ファイルはあくまでも固定長で出力したいです。
そのファイルを「xxx.HDR」の名前で保存したいです。
カンマ区切りやスペース区切りのなどのCSVファイルの出力は
結構検索したらでたきたのですが、固定長での出力は分かりませんでした。
(見落としてるのかもしれませんが…)
よろしくお願いします。


じゃんぬねっと  URL  2005-01-13 01:10:17  No: 118812

自前で固定長にしてから、出力するだけでは?

こんな関数を作るとか... (サッと作ったので結構適当...w)

  nTarget ・・・ 処理対象文字列を指定
  iLength ・・・ 結果的に合計何文字にしたいのか指定
  [nPadString] ・・・ どの文字で埋めるか指定 (省略時は半角スペース)

' 左を埋める
Public Function PadLeft(ByVal nTarget As String, ByVal iLength As Integer, Optional ByVal nPadString As String = " ") As String
    If Len(nTarget) < iLength Then
        nTarget = String$(iLength - Len(nTarget), nPadString) & nTarget
    End If

    PadLeft = Right$(nTarget, iLength)
End Function

' 右を埋める
Public Function PadRight(ByVal nTarget As String, ByVal iLength As Integer, Optional ByVal nPadString As String = " ") As String
    If Len(nTarget) < iLength Then
        nTarget = nTarget & String$(iLength - Len(nTarget), nPadString)
    End If

    PadRight = Left$(nTarget, iLength)
End Function


ヤマダ  2005-01-13 02:17:26  No: 118813

>自前で固定長にしてから、出力するだけでは?

そうですよね。すみません。難しく考えてしまいました…
関数まで教えていただきありがとうございます。
参考にさせていただきます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加