ファイル変換ユーティリティ(#NFCNV)
- ファイル情報の保守
-
ファイル変換ユーティリティの使い方の例をいくつか示します。
ファイル変換ユーティリティは、A−VXと、Windows(MS−DOS)やUNIX間でデータファイルを変換するためのユーティリティです。
- 1 変換できるもの
-
処理対象ファイルは以下の通りです。A−VXファイルからWindows形式ファイル、Windows形式ファイルからA−VXファイルへの変換ができます。
A−VX形式ファイル
順編成ファイル 相対編成ファイル 索引順編成ファイル 複数索引順編成ファイル
←→
Windows形式、UNIX形式ファイル
MS−DOS標準テキスト形式ファイル(CSV形式1) MS−DOS標準テキスト形式ファイル(CSV形式2) MS−DOS標準テキスト形式ファイル(SDF形式) MS−DOS SYLK形式ファイル Lotus1−2−3形式ファイル(123形式) R2.1J〜R2.3J MS−DOSテキスト形式ファイル(テキスト(JIS)形式) UNIXテキスト形式ファイル(テキスト(EUC)形式) バイナリ形式ファイル(無変換形式)
- 2 いくつか例
-
A−VX順編成ファイルのデータをWindowsのテキスト形式に変換する Windowsのテキスト形式のデータをA−VX順編成ファイルに変換する データベースのデータをWindows上のcsv形式ファイルにする
応用例
A−VX COBOLソースをWindowsなどのテキスト形式ファイルに変換出力 Windowsなどのテキスト形式ファイルからA−VX COBOLソースに変換出力
- 3 豆知識
-
- ・文字化け防止にセンススイッチを設定しよう
-
普段JSでセンススイッチを使っていない場合、センススイッチの状態がどうなっているかはあまり意識していないことも多いと思います。ところがプログラム内部でセンススイッチを使用していた場合、思わぬ動きをすることがあります。
#NFCNVは入力値としてセンススイッチを使用しています。センススイッチ1がOFFの場合、英数字項目を1バイト/2バイト混在データとして扱い、ONの場合は1バイトのみのデータとして扱う仕組みになっています。
#NFCNV実行時のセンススイッチの状態による英数字項目の扱い
SSW1=ON 英数字項目は1バイト(英数字,記号,カタカナ)として扱う SSW1=OFF 英数字項目は1バイト(英数字,記号,カタカナ)/2バイト(日本語文字)混在データとして扱う
例えば直前に実行したCOBOLプログラム中でセンススイッチ1をONにしていた場合、英数字項目は無条件に1バイトとして扱われます。JS中やプログラム中で、条件によりセンススイッチ1をONにしたりOFFにしたりしていた場合、JSを実行するたびに英数字項目が1バイトで扱われたり混在データとして扱われたりしてしまいます。こうなると英数字項目が文字化けしてしまったりする原因となります。
特にCOBOLプログラム中でセンススイッチを変更していたりすると、表面上センススイッチが見えないため、なぜ文字化けするのかまったくわからないということになりがちです。
#NFCNVをJS起動する場合は、直前にセンススイッチを初期化したほうが良いでしょう。
例えばこんな感じ。(英数字項目が1バイト/2バイト混在のとき)
/SET SSW1=OFF; ・・・センススイッチ1をOFFにする /RUN #NFCNV; MN1=C_MN2=AD_PA1=MSD_PA2=_PA3=CIF_PA4=1_PA5=C80_ PB1=D:\TESTFILE.TXT_PB2=TXTJ_PB3=EXCLUSIVE_ PB7=C_PB8=CREATE_MN1=Q_ /> ;
- ・ファイルの最後にEOFを出さないようにする
-
#NFCNVでA−VXのファイルをWindowsファイルに変換すると、ファイルの終端にEOF(1A)が出力されます。通常(NECの製品だけなのかもしれませんが)Windowsの順編成ファイルや相対編成ファイルやUNIXのファイルはEOFが無いのが仕様になっているようなので、#NFCNVで変換した後にEOFを削除する必要があります。これは面倒です。
A−VX01辺りの#NFCNVからEOFを出力するかどうかを指定することができるみたいです。
PB2パラメータに以下の値を指定することができます。
パラメータ 形式 EOF出力有無 CSV1 CSV1形式 あり CS1N CSV1形式 なし CSV2 CSV2形式 あり CS2N CSV2形式 なし SDF SDF形式 あり SDFN SDF形式 なし TXTJ テキスト形式 あり TXJN テキスト形式 なし 例えばこんな感じ(テキスト形式でEOF出力なしのとき)
/RUN #NFCNV; MN1=C_MN2=AD_PA1=MSD_PA2=_PA3=CIF_PA4=1_PA5=C80_ PB1=D:\TESTFILE.TXT_PB2=TXJN_PB3=EXCLUSIVE_ PB7=C_PB8=CREATE_MN1=Q_ /> ;
- 4 もっと詳しく知りたい
-
「ファイル連携機能説明書」 を参照してください。