counter

COBOL漢字

COBOL文字コード変換プログラム Ver. 1.4f (8/22/2016)


特長
NECのオフコン(ACOS2)で取り出した漢字交じりのテキストファイル(以下「データファイル」と呼びます)をShiftJISのファイルに変換するソフトです。32ビットWindowsで動作します(動作確認:Windows XP Professional、Windows Me)。

NECのオフコンでデータを取り出すとASCIIとJIS漢字コードが混じったテキストファイル(データファイル)が得られますが、文字コードの切り替えのためのコードがないので普通の文字コード変換ソフトでは簡単にWindowsで読めるファイルに変換することはできません。このソフトではことができます。また、COBOLの「COPY句」があれば こともできます。さらに、2012年からは要望をいただいたので COMP-3以外についてはデータを提供いただけば開発できると思います。
ダウンロード
Vectorの「COBOL漢字」のページへ

変更点
8/22/2016 Ver. 1.4f
 フリーウェアとしました

9/6/2012 Ver. 1.4a
 COMP-3に対応しました

10/8/2006 Ver. 1.3a
 OCCURS 4. に対応できていなかった

8/4/2006 Ver. 1.3
 設定画面を作成

1/31/2006 Ver. 1.2
 PIC V9(3) に対応
 COMPがあったときにアラーム
 数字の左のゼロを削除するオプション
 右側ウィンドウでXを指定できる
 バイナリーファイルの場合文字数を指定
 Iniファイルを保存したときに直ちに再読込
 終了時にIniファイルを作成する
準備
Vectorなどからnkf32.dllをダウンロードし、プログラムと同じディレクトリまたはシステムディレクトリにおいてください。
実行方法
画面右側のエリア(桁数設定エリア)にデータファイルの各フィールドの桁数を指定します。たとえば1レコードがASCII 3バイト、漢字 20バイト、数値 10バイト(小数部分3桁)、符号付数値 8バイト(小数部分2桁)であれば、
3
N10
7.3
S6.2
L300
と指定します。Nは日本語文字を意味し、その後には文字数を書きます(20バイトなら10とする)。また、Sは符号付数値を意味します。X(英数字指定)や9(数字指定)は書く必要がありません(数値の左側のゼロを削除するオプションを指定するときは書いてください)。余分なスペースや改行を途中に入れたりすると正しく動作しません。この部分の設定はメニューの「桁数設定」を使って保存と読み出しをすることもできます。Lはデータファイルがテキストファイルの場合は指定不要ですが、バイナリーファイル(改行コード無し)の場合には1レコードのバイト数を指定します。

ついで、メニューの「ファイル>データファイルを変換」でデータファイルをオープンすると、そのファイルがShiftJISに変換されて保存されます。COMP-3を含む場合には、アスキー形式のデータファイルのほかにバイナリー形式のファイル(拡張子は.BINとしてください)を同じディレクトリに置く必要があります。

元のファイル名がAAAA.txtであれば保存されるファイル名はSJIS-AAAA.txtとなり、同じディレクトリに作成されます。さらに、CSVファイル(AAAA-SJIS.csv)も作成します。CSVファイルでは小数点やマイナス符号を追加するほか、エクセルで文字列として読み込むために各データに '=' をつけたファイル(EQ-AAAA-SJIS.csv)も出力します。

COPY句を読み込んで実行する方法
COBOLのCOPY句を読み込んで設定を自動読み込みすることもできます。ここでいうCOPY句とは
10 予算.
 20 顧客名  PIC N(8).
 20 販売予算 PIC 9(7).
10 明細    OCCURS 3 TIMES.
 20 項目   PIC N(6).
 20 金額   PIC S9(6)V9(3).
というような書式のテキストファイル(ShiftJIS+CRLF)です。これを読み込む(COPY句>COPY句ファイルを読込)と、右側のエリアに桁数設定を抜き出します。次いでデータファイルを読み込むと、その桁数設定を使ってCSVファイルを出力するほか、出力されるCSVファイルの上部に項目名を表示することができます。

対応している書式(例) 対応していない書式(例)
動作設定
設定画面で指定します。特にわかりにくいところはないと思います。
制限事項
次の制限があります。制限を緩和したい方は作者宛て連絡ください。

1レコードの長さ 30,000バイト以下
1レコードに含まれる漢字フィールドの数 100以下
1レコードに含まれるフィールドの総数 2,000以下
COPY句のネストの深さ 20以下
使用条件など
謝辞
このプログラムは次のプログラムを使わせていただいています。



All rights reserved. リンクは自由ですが、転載・引用・配布(印刷もふくむ)をされるときは作者までご連絡ください。感想もお待ちしています。
作者のホームページにもどる