COBOL漢字
COBOL文字コード変換プログラム Ver. 1.4f (8/22/2016)
特長
NECのオフコン(ACOS2)で取り出した漢字交じりのテキストファイル(以下「データファイル」と呼びます)をShiftJISのファイルに変換するソフトです。32ビットWindowsで動作します(動作確認:Windows XP Professional、Windows Me)。
NECのオフコンでデータを取り出すとASCIIとJIS漢字コードが混じったテキストファイル(データファイル)が得られますが、文字コードの切り替えのためのコードがないので普通の文字コード変換ソフトでは簡単にWindowsで読めるファイルに変換することはできません。このソフトでは
- 文字コードの切り替え位置を指定するだけで、文字コードをShiftJISに変換したテキストファイルを出力する
- 各フィールドの属性や桁数を指定すれば、符号や小数点を追加したCSVファイルを出力する
- ゼロで始まる数字だけからなる文字列や"2E23"というような文字列もマイクロソフトエクセルで正しく読める形で出力する
ことができます。また、COBOLの「COPY句」があれば
- 文字コードの切り替え位置を含むフィールドの桁数設定とCSVファイルの項目名を自動作成する
こともできます。さらに、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ファイルの上部に項目名を表示することができます。
対応している書式(例)
- OCCURS 10 TIMES.
- OCCURS 10.
- PIC N(20) OCCURS 10.
- OCCURS 10 TIMES PIC N(20).
- PIC S9(4)V9(3).
- PIC V9(3).
- PIC NNNNNN.
- PIC 999.99.
- * (行頭にある場合)
- COMP-3
対応していない書式(例)
- ピリオドが省略されている
- COPY
- REDEFINES
- INCLUDE
- COMP-1
動作設定
設定画面で指定します。特にわかりにくいところはないと思います。
制限事項
次の制限があります。制限を緩和したい方は作者宛て連絡ください。
1レコードの長さ | 30,000バイト以下 |
1レコードに含まれる漢字フィールドの数 | 100以下 |
1レコードに含まれるフィールドの総数 | 2,000以下 |
COPY句のネストの深さ | 20以下 |
| |
使用条件など
- 著作権は片山誠一が保有しています
- このソフトは無料で使用できます
- このソフトを使用した結果について、また使用できなかったことについて、作者が責任を問われることは一切ないものとします
- 以上の条件に同意いただける場合のみ、このソフトの使用を続けることができます。ご同意いただけない場合は、プログラムを完全に削除してください
- 配布・転載はアーカイブの形のままで行うのは、無償である限り自由です
- 本プログラムのバグレポートや改善要望などは作者までお願いします。
謝辞
このプログラムは次のプログラムを使わせていただいています。
All rights reserved. リンクは自由ですが、転載・引用・配布(印刷もふくむ)をされるときは作者までご連絡ください。感想もお待ちしています。
作者のホームページにもどる