過去の桐井戸端BBS (桐ver.8)
9081 固定長ファイルで書き出すには? OUCHI 2000/12/22-18:59
桐ver8を使用しています。

作成したDATAを固定長のtxtファイルで書き出す方法はありませんか?
作成したDATAの文字数はバラバラなので指定した文字数の合わせて(空白を挿入)固定長のtxtファイルを作成したいのですが.....
又逆に固定長のtxtファイルを読み込む方法もあれば知りたいです。

たぶんVBAとかでプログラムを作れば簡単なのでしょうが、簡単にできる方法があれば教えて下さい。

現在、ちなみに読み込む方は、accsessに機能があるので一回accsessにインポートしてから”,”切りのtxtで書き出してから
桐に読み込むという大変面倒な作業をしています。

どうかよろしくお願いします。
9084 Re:固定長ファイルで書き出すには? 悲しげ 2000/12/22-22:02
記事番号9081へのコメント
どもっ、OUCHIさん

1)書き出す場合、
-----------------------------------------
[a]     [b]   [c]    [d]
あいうえお かきく  けこ   さしすせ
-----------------------------------------
であり、[a]を12byte、[b]を10byte、[c]を8byte、[d]を16byteの固定長にしたいとします。
簡単には、項目[e]を増設して項目計算式を次のようにします。
#sstr([a],-1,-12)+#sstr([b],-1,-10)+#sstr([c],-1,-8)+#sstr([a],-1,-16)
そして、この項目[e]の値を書き出します。
この場合、各項目値は左寄せとなります。#部分列関数(#sstr)の仕様については、
桐を起動してメニューバーからヘルプ/トピックをご覧下さい。
要するに与えられた桁数になるまで、後ろに半角空白が補われます。
各項目値を右寄せとしたければ、#右側文字列関数を使います。
項目計算式は#last([a],-12)+#last([b],-10)+#last([c],-8)+#last([a],-16)になります。
これは与えられた桁数になるまで、前に半角空白が補われます。
これらを組み合わせれば、各項目ごとに右寄せ・左寄せを混在させることも可能です。
ちなみに、中央揃えはパス。(^^;)
以上は、関数の引き数にマイナス符号を付けています。
これは桁=byte、即ち半角ベースで考えているからです。
もし全て全角と云うことならば、引き数にマイナス符号はつけません。

2)読み込む場合
桐自体に固定長読み込みの機能があるはずですので、それを探して試してみて下さい。
ただ、実は私はそれがうまいこと使いこなせなくて(^^;)、私自身はしばしば別な手法を使っていますんで、
ここは他の方のコメントにお任せします。(^^;)(^^;)

9103 ありがとうございました OUCHI 2000/12/25-15:31
記事番号9084へのコメント
悲しげ 様

アドバイスありがとうございます。早速教えてもらった方法で行なってみました、感動しました。
今まで苦労していたのでとてもうれしいです。

本当にありがとうございました。           ouchi

戻る