...

SIMPLIA/TF-MDPORT オンラインマニュアル - ソフトウェア

by user

on
Category: Documents
982

views

Report

Comments

Transcript

SIMPLIA/TF-MDPORT オンラインマニュアル - ソフトウェア
 FUJITSU
SIMPLIA/TF-MDPORT
オンラインマニュアル
(ソフトウェア開発保守支援システム/開発資産流用支援ツール)
Windows版
SIMPLIA/TF-MDPORT V70L20 コマンド機能、コード変換/レコード変換機能
オンラインマニュアル
※MDPORT Pro固有機能
第4版
はじめに
SIMPLIA/TF-MDPORT コマンド機能は、TF-MDPORTの基本機能をコマンドにて実行することができます。
SIMPLIA/TF-MDPORT コード変換/レコード変換機能は、ユーザアプリケーションに組み込むことによりPCと汎
用機・UNIX機間で、ソースやデ−タファイル等の資源を流用することができます。
※当機能はMDPORT Pro固有機能です
ヘルプを読むために
- HTML3.2以降をサポートするWWWブラウザをお使いください。
- 本オンラインマニュアルでは「NetCOBOL」または「COBOL97」を総称して「COBOL97」と表記していま
す。「NetCOBOL」、または「COBOL97」とMDPORTの関係については「ソフトウェア説明書」を参照し
てください。
登録商標について
本オンラインマニュアルで使われている登録商標及び商標は、以下のとおりです。
- Microsoft,Windows,MS-DOS,MSは、米国Microsoft Corporationの米国およびその他の国における登録商標で
す。
- UNIXは、X/Openカンパニーリミテッドが独占的にライセンスしている米国ならびに他の国における登録商
標です。
- ORACLEは、米国Oracle Corporationの登録商標です。
- INFORMIXは、米国Informix Software,Inc.の登録商標です。
- Excelは、米国Microsoft Corporationの製品です。
略記について
本オンラインマニュアルでは、各製品を次のように略記しています。
「Microsoft(R) Windows(R) 2000 Professional
operating system」
→
「Windows 2000」または、「Windows 2000
Professional」
「Microsoft(R) Windows(R) 2000 Server
operating system」
→
「Windows 2000」または、「Windows 2000
Server」
「Microsoft(R) Windows(R) 2000 Advanced
Server operating system」
→
「Windows 2000」または、「Windows 2000
Server」
「Microsoft(R) Windows(R) XP Professional
operating system」
→
「Windows XP」または、「Windows XP
Professional」
「Microsoft(R) Windows(R) XP Professional
x64 Edition」
→ 「Windows XP Pro (x64)」
「Microsoft(R) Windows(R) XP Home Edition
operating system」
→
「Windows XP」または、「Windows XP Home
Edition」
「Microsoft(R) Windows Server(R) 2003,
Standard Edition」
→
「Windows Server 2003」または、「Windows Server
2003 SE」
「Microsoft(R) Windows Server(R) 2003,
Enterprise Edition」
→
「Windows Server 2003」または、「Windows Server
2003 EE」
「Microsoft(R) Windows Server(R) 2003,
Standard x64 Edition」
→
「Windows Server 2003 (x64)」または、「Windows
Server 2003 SE (x64)」
「Microsoft(R) Windows Server(R) 2003,
Enterprise x64 Edition」
→
「Windows Server 2003 (x64)」または、「Windows
Server 2003 EE (x64)」
「Microsoft(R) Windows Server(R) 2003 R2,
Standard x64 Edition」
→
「Windows Server 2003 (x64)」または、「Windows
Server 2003 SE (x64)」
「Microsoft(R) Windows Server(R) 2003 R2,
Enterprise x64 Edition」
→
「Windows Server 2003 (x64)」または、「Windows
Server 2003 EE (x64)」
「Microsoft(R) Windows Server(R) 2003,
Enterprise Edition for Itanium-based Systems」
→
「Windows Server 2003 (Itanium)」または、
「Windows Server 2003 EE (Itanium)」
「Microsoft(R) Windows Server(R) 2003,
Datacenter Edition for Itanium-based Systems」
→
「Windows Server 2003 (Itanium)」または、
「Windows Server 2003 DTE (Itanium)」
「Microsoft(R) Windows Vista(R) Home Basic」
→
「Windows Vista」または、「Windows Vista Home
Basic」
「Microsoft(R) Windows Vista(R) Home
Premium」
→
「Windows Vista」または、「Windows Vista Home
Premium」
「Microsoft(R) Windows Vista(R) Business」
→
「Windows Vista」または、「Windows Vista
Business」
「Microsoft(R) Windows Vista(R) Enterprise」
→
「Windows Vista」または、「Windows Vista
Enterprise」
「Microsoft(R) Windows Vista(R) Ultimate」
→
「Windows Vista」または、「Windows Vista
Ultimate」
「Microsoft(R) Windows Server(R) 2008
Standard」または、 「Microsoft(R) Windows
Server(R) 2008 Standard without Hyper-V
(TM)」または、 「Microsoft(R) Windows Server → 「Windows Server 2008」
(R) 2008 Enterprise」または、 「Microsoft(R)
Windows Server(R) 2008 Enterprise without
Hyper-V(TM)」
「Microsoft(R) Windows Server(R) 2008 for
Itanium-Based Systems」
→ 「Windows Server 2008 Itanium」
「Microsoft(R) Internet Explorer」
→ 「Internet Explorer」
Copyright 1994-2008 FUJITSU LIMITED
機能概要
MDPORTCコマンド
Windows版TF-MDPORTをバッチモードで実行するためのコマンド機能です。変換指示ファイルで指定していた項
目がオペランドで全て指定可能となるため、変換指示ファイル無しでも動作します。また、ファイルの標準入出力
も可能です。
なお、当機能は、TF-MDPORT Proのみ提供されます。
MDPORTLCコマンド
Windows版レイアウト定義生成をバッチモードで実行するためのコマンド機能です。COPYライブラリ名、レイア
ウト定義ファイル名、解析オプション及びデータ形式で指定していた項目がオペランドで全て指定可能となりま
す。
なお、当機能は、TF-MDPORT Proのみ提供されます。
コード変換/レコード変換機能
コード変換/レコード変換機能では、ユーザアプリケーションに組み込むことによりPCと汎用機・オフコン・UNIX
機間で、ソースやデータファイル等の資源を流用することができます。図1にコード変換/レコード変換機能の概要
を示します。
図1 コード変換/レコード変換機能
コード変換/レコード変換機能は以下のような機能を提供する関数群です。
コード変換機能
コード変換機能は、各種コード変換を行う関数群です。
レコード変換機能 レコード変換機能は、レコード単位にコード変換、レコード形式変換を行う関数群です。
コマンド機能
MDPORTのコマンド入力形式とその機能について説明します。MDPORTで用意されているコマンドは、以下のと
おりです。
MDPORTCコマンド
ファイル形式の変換を行います。汎用機型のファイル形式や、UNIXのテキストファイ
ル、COBOLファイル、CSV形式ファイルでの形式変換を行います。ファイル形式変換にと
もない、データ属性に合わせたコード変換も行います。
MDPORTLCコマンド
データファイル変換にて使用するレイアウト定義ファイルを作成します。既存COBOL資
産(COPYライブラリ)から取り込みを行って作成することができます。
各コマンドは次の形式で説明します。
[名 前]
コマンドの名称と機能の概要を以下の形式で示します。
コマンド名−機能の概要
[形 式]
コマンドの記述形式を示します。記述形式は以下の規約で記述しています。
− 通常の文字で記述されている語は、そのとおりに入力することを示しています。
− 形式中の日本語の語は、置き換えて入力することを示しています。
− { }で囲まれている部分は、その括弧中の一つを明に指定する必要があることを示しています。
− [ ]で囲まれている部分は、省略可能であることを示しています。また、省略された場合は、括弧中の下線
のある語が選択されることを示しています。
− 前述の括弧中に"α ¦ β と語句がわかれている部分は、αおよびβが選択対象であることを示しています。
[機能説明]
コマンドの機能やオペランドについて説明します。
[注 意]
コマンドを使用するうえで注意すべき事項を記述しています。
なお、当機能は、TF-MDPORT Proのみ提供されます。
MDPORTCコマンド
[名 前]
MDPORTC
[形 式 1]変換指示ファイル(.mdp)を使用する場合
MDPORTC.EXE
-b 変換指示ファイル名
{ [-fn [ファイル名]] ¦
[-i [入力ファイル名]] [-o [出力ファイル名]]
[-e [メッセージ出力先ファイル名]] } [-f]
[-l レイアウト定義ファイル名]
[-c [カレントフォルダ名]]
[-it {text ¦ data ¦ cblfile ¦ csv ¦ xml}]
[-ot {text ¦ data ¦ cblfile ¦ csv ¦ xml}]
[-m {メッセージ出力件数 ¦ 100}] [-t [yes ¦ no]]
[-ic {sjis ¦ euc ¦ jef ¦ jis ¦ jefa ¦ unicode ¦ 他社}]
[-oc {sjis ¦ euc ¦ jef ¦ jis ¦ jefa ¦ unicode ¦ 他社}]
[-u {ucs2[,{big ¦ little}] ¦ utf8}] [-ns] [-j [yes ¦ no]]
[-ik 入力コードiconvキーワード] [-ok 出力コードiconvキーワード]
[-v 利用者定義変換テーブルファイル名]
[-a1 1カラム系代替コード] [-a2 2カラム系代替コード]
[-id {crlf ¦ lf}] [-od {crlf ¦ lf}]
[-ib {seq ¦ lsq ¦ rel ¦ idx}]
[-ob {seq ¦ lsq ¦ rel ¦ idx[,キー位置;キー長[;...][;dup]][,...]}]
[-ir {f ¦ v}] [-or {f ¦ v}]
[-il [入力レコード長]] [-ol [出力レコード長]]
[-p {rdb2 ¦ oracle ¦ informix ¦ sqlserver ¦ excel}]
[-s {文字 ¦ ,}] [-q {文字 ¦ "}]
[-qd] [-n] [-h] [-g]
[-d] [-w [作業用フォルダ名]] [-lg [ログファイル名]]
[-lf {yes ¦ no}] [-bi {yes ¦ no}]
[-xt [XMLテンプレートファイル名]]
[-dv] [-ev] [-nc]
[形 式 2]変換指示ファイル(.mdp)を使用しない場合
MDPORTC.EXE
{ -fn [ファイル名] ¦
-i [入力ファイル名] [-o [出力ファイル名]]
[-e [メッセージ出力先ファイル名]] } [-f]
[-l レイアウト定義ファイル名]
[-c [カレントフォルダ名]]
-it {text ¦ data ¦ cblfile ¦ csv ¦ xml}
[-ot {text ¦ data ¦ cblfile ¦ csv ¦ xml}]
[-m {メッセージ出力件数 ¦ 100}] [-t [yes ¦ no]]
[-ic {sjis ¦ euc ¦ jef ¦ jis ¦ jefa ¦ unicode ¦ 他社}]
[-oc {sjis ¦ euc ¦ jef ¦ jis ¦ jefa ¦ unicode ¦ 他社}]
[-u {ucs2[,{big ¦ little}] ¦ utf8}] [-ns] [-j [yes ¦ no]]
[-ik 入力コードiconvキーワード] [-ok 出力コードiconvキーワード]
[-v 利用者定義変換テーブルファイル名]
[-a1 1カラム系代替コード] [-a2 2カラム系代替コード]
[-id {crlf ¦ lf}] [-od {crlf ¦ lf}]
[-ib {seq ¦ lsq ¦ rel ¦ idx}]
[-ob {seq ¦ lsq ¦ rel ¦ idx[,キー位置;キー長[;...][;dup]][,...]}]
[-ir {f ¦ v}] [-or {f ¦ v}]
[-il 入力レコード長] [-ol 出力レコード長]
[-p {rdb2 ¦ oracle ¦ informix ¦ sqlserver ¦ excel}]
[-s {文字 ¦ ,}] [-q {文字 ¦ "}]
[-qd] [-n] [-h] [-g]
[-d] [-w [作業用フォルダ名]] [-lg [ログファイル名]]
[-lf {yes ¦ no}] [-bi {yes ¦ no}]
[-xt [XMLテンプレートファイル名]]
[-dv] [-ev] [-nc]
[機能説明]
-b 変換指示ファイル名
変換指示ファイル名を指定します。他のオペランドを同時に指定した場合は、変換指示ファイル内の指定が無効と
なり、オペランドの方を有効とします。
-fn [ファイル名]
変換元の入力ファイル名を指定します。
-fnオペランドで指定するファイル名には、ワイルドカードを使用することができます。オペランドを入力した場
合、入力ファイル名に従い、出力ファイル名、レイアウト定義ファイル名、メッセージ出力先ファイル名を決定し
ます。
例:入力ファイル名(aaa.in)、レイアウト定義ファイル名(aaa.lay)、出力ファイル名(aaa.out)、メッセージ出力先
ファイル名(aaa.err)
ファイル名を指定しない場合には、標準入出力となります。
使用する各ファイルの名前を任意に指定したい場合は、-fnオペランドを指定せずに、-i,-o,-eの各オペランドに任意
のファイル名を指定します。変換指示ファイルを指定せずに-fnオペランドを指定しなかった場合は標準入出力と
なります。
-l オペランドを指定している場合に限り、-l オペランドのレイアウト定義ファイルが優先されます。
-i [入力ファイル名]
-fnオペランドを指定しない場合に、変換元の入力ファイル名を指定します。
-iオペランドで指定するファイル名には、ワイルドカードを使用することができます。 ファイル名を指定しない場
合には、標準入力となります。
-fnオペランドを指定せずに本オペランドを省略すると、標準入力となります。ただし、変換指示ファイルを指定
した場合には標準入力とはなりません。
-it cblfile、または、xmlを指定した場合には標準入力とはなりません。入力ファイルが指定されていない状態とみ
なします。
-o [出力ファイル名]
-fnオペランドを指定しない場合に、変換後の出力ファイル名を指定します。
-oオペランドで指定するファイル名には、ワイルドカードを使用することができます。 ファイル名を指定しない
場合には、標準出力となります。
-fオペランドが指定されていないと、既存ファイルは指定できません。
-fnオペランドを指定せずに本オペランドを省略すると、標準出力となります。ただし、変換指示ファイルを指定
した場合には標準出力とはなりません。
-ot cblfileを指定した場合には標準出力とはなりません。出力ファイルが指定されていない状態とみなします。
-e [メッセージ出力先ファイル名]
-fnオペランドを指定しない場合に、MDPORTCコマンドで出力される警告メッセージを指定のファイルへ出力しま
す。
-eオペランドで指定するファイル名には、ワイルドカードを使用することができます。ファイル名を指定しない場
合には、標準エラー出力となります。出力先ファイルが既に存在している場合は、内容が上書きされます。
-fnオペランドを指定せずに本オペランドを省略すると、警告メッセージは標準エラー出力に出力されます。ただ
し、変換指示ファイルを指定した場合には標準エラー出力とはなりません。
-l レイアウト定義ファイル名
レイアウト定義ファイル名を指定します。指定するファイル名には、ワイルドカードを使用することはできませ
ん。
-f
出力ファイルが既に存在する場合に、上書きして出力します。
-c [カレントフォルダ名]
カレントフォルダ名を指定します。-cオペランドのみ指定した場合、当コマンドを実行したフォルダがカレント
フォルダとなります。
-it {text ¦ data ¦ cblfile ¦ csv ¦ xml}
入力ファイル形式を指定します。以下にファイル形式の意味を示します。
ファイル形式
意味
text :テキストファイル 文字キャラクタのみで構成されたファイルを示します。
data :データファイル
バイナリのデータファイルを示します。
Windows上のCOBOLアプリケーションプログラムでアクセスするファイルの形式で
す。
cblfile:COBOLファイル
ファイル編成として、レコード順ファイル、行順ファイル、相対ファイル、索引ファ
イルがあります。
csv :CSV形式ファイル
項目間をカンマ(デリミタ文字)で区切った形式のテキストファイルを指します。
xml :XML形式ファイル
eXtensible Markup Language(拡張可能マーク付け言語)の略で、項目をタグで囲み、
要素を識別可能なテキストファイルを指します。
変換指示ファイルを指定しなかった場合には、本オペランドは省略できません。
MDPORTがサポートしているコード変換や形式変換パスについては、TF-MDPORTオンラインマニュアルの変換仕
様 「文字コードの変換」を参照してください。
-ot {text ¦ data ¦ cblfile ¦ csv ¦ xml}
出力ファイル形式を指定します。ファイル形式の意味については、-itオペランドと同じです。
テキストモード変換ではtextのみ指定可能となり、本オペランドを省略することができます。データファイル変換
では省略することはできません。
-m {メッセージ出力件数 ¦ 100}
MDPORTCコマンドで出力される警告メッセージの出力件数の上限値を指定します。
(メッセージ出力件数:上限値を1∼9999までの範囲で指定)
-tオペランドが指定されていない場合に、警告メッセージの出力件数が上限値を超えるとコマンドは変換処理を中
断します。
本オペランドを省略した場合は、メッセージ出力件数の上限値を100とします。
-t [yes ¦ no]
本オペランドは、警告メッセージが上限値を越えて発生した場合に、処理を行う方法を指定します。
指定オペランド
無
-t
-t no
-t yes
意味
警告メッセージの出力上限値を超えると、コマンドは変換処理を
中断します。
警告メッセージの出力上限値を超えても、コマンドは変換処理を
続行しますが、上限値を越えた分の警告メッセージは出力されま
せん。
警告メッセージの出力上限値を超えても、コマンドは警告メッ
セージを出力しながら、変換処理を続行します。
-ic {sjis ¦ euc ¦ jef ¦ jis ¦ jefa ¦ unicode ¦ 他社}
入力ファイル上のコード体系を指定します。以下に指定できるコード体系の意味を示します。入力がXMLの時
は、エンコーディング形式が優先されます。
コード体系
意味
sjis
シフトJISコード
euc
ASCIIおよびEUCコード
jef
EBCDICカナおよびJEFコード
jis
JIS8単位コード
jefa
EBCDIC英小文字およびJEFコード
unicode
Unicode
他社
EBCDICおよび他社日本語コード
-itオペランドの指定により、本オペランドで指定できるコード体系が異なります。
他社コードには、提供されているコード変換テーブルを使用すると、以下の指定を行うことができます。
IBM EBCDICおよびIBM漢字コード
KEIS EBCDICおよび日立KEISコード
JIPE EBCDICおよび日本電気JIPS(E)コード
JIPJ EBCDICおよび日本電気JIPS(J)コード
AVX EBCDICおよび日本電気AVX日本語コード
本オペランドを省略した場合、-ic sjisとして扱われます。
-oc {sjis ¦ euc ¦ jef ¦ jis ¦ jefa ¦ unicode ¦ 他社}
出力ファイル上のコード体系を指定します。指定できるコード体系の意味は-icオペランドと同じです。
-otオペランドの指定により、本オペランドで指定できるコード体系が異ります。
本オペランドを省略した場合、-oc sjisとして扱われます。
-u {ucs2[,{big ¦ little}] ¦ utf8}
-icまたは-ocがunicodeの場合にUnicodeの種別及びエンディアンを指定します。
-it textまたはcsvの場合、シグネチャが優先されます。
ファイルにシグネチャがない場合、ユーザが指定した種別とエンディアンで読み込みを行います。なお、本オペラ
ンドを省略した場合は-u ucs2,littleとして扱われます。
入力ファイルが行順ファイルの場合、シグネチャに従います。
出力が行順ファイルの場合、エンディアンは指定できず、リトルエンディアンのみとなります。(COBOLの仕
様)
入力または出力が、一般ファイルまたはCOBOL順ファイルの場合、UCS2のみ指定できます。(COBOLの仕様)た
だし、選択したコード体系に依存する仕様で動作させたい場合は、UTF8を指定することができます。
-ns
Signature出力を省略します。
出力コード体系がUnicodeかつ出力ファイルがテキスト、CSV形式、XML形式の場合以外は指定しても無視されま
す。
-j [yes ¦ no]
CharsetMGRを使用してコード変換する場合に指定します。CharsetMGRが正常にインストールされていない場合
や、同一コードでの変換、CharsetMGRで対応していないコード変換パスでは指定できません。
指定オペランド
意味
無
CharsetMGRを使用した変換を行います。
同一コードやCharsetMGRで対応していないコードについては、
標準変換を行います。
但し、変換指示ファイルが指定されていた場合は、変換指示ファ
イルの指定に従います。
-j
CharsetMGRを使用した変換を行います。
同一コードやCharsetMGRで対応していないコードについては、
標準変換を行います。
-j no
標準変換を行います。
-j yes
CharsetMGRを使用した変換を行います。
CharsetMGRで対応しないコードについては、変換エラーが発生し
て、処理を中断します。
-ik 入力コードiconvキーワード
入力で定義したコード体系がCharsetMGR変換(iconv_open関数)のどのキーワードに該当させるかを指定します。
指定された入力コード別に以下の指定を行うことができます。
入力コードがsjisの場合
sjisms
シフトJIS(R90)
sjisdos
シフトJIS(DOS)
sjisms
シフトJIS(MS)
入力コードがeucの場合
u90
EUC(U90)
s90
EUC(S90)
入力コードがjef,jefaの場合
jefkana
JEF + EBCDIC(カナ)
jefaugkana
JEF + EBCDIC(カナ) 字体重視
efcorekanaj
JEF + EBCDIC(カナ) 領域重視
※jefaの場合は、EBCDIC(英小文字)です。1バイト系の変換規則
は、TF-MDPORTオンラインマニュアルの変換仕様 「文字コード
の変換」を参照してください。
-ok 出力コードiconvキーワード
出力で定義したコード体系がCharsetMGR変換(iconv_open関数)のどのキーワードに該当させるかを指定します。
指定できるキーワードは-ikオペランドと同じです。
-v 利用者定義変換テーブルファイル名
コード変換の際に参照される利用者定義変換テーブルのファイル名を指定します。
-a1 1カラム系代替コード
1カラム系文字コード(ANK文字)の変換にエラーが発生した場合に、出力データとして何の文字へ置き換えるかを
16進コードで、Unicode以外は2桁、Unicodeの時は4桁で指定します。
指定は出力側コード体系でのコードを入力します。Unicodeの時はUCS2ビッグエンディアンで指定します。
本オペランドを省略した場合、出力側コード体系の _ (アンダースコア)で出力されます。
-a2 2カラム系代替コード
2カラム系文字コード(日本語文字)の変換にエラーが発生した場合に、出力データとして何の文字へ置き換えるか
を16進コード4桁で指定します。指定は出力側コード体系でのコードを入力します。Unicodeの時はUCS2ビッグエ
ンディアンで指定します。
本オペランドを省略した場合、出力側コード体系の ■ (黒い四角文字)で出力されます。
-id {crlf ¦ lf}
入力レコードの改行コードの有無または種類を指定します。以下に指定の意味を示します。
設定なし 入力レコードには改行コードは付加されていないことを示します。
crlf
入力レコードには2バイトのCR+LF改行コード(0x0D0A)が付加されていることを示します。
lf
入力レコードには1バイトのLF改行コード(0x0A)が付加されていることを示します。
-itがtext、data、xmlまたはcsvで、かつ-icがJEFコード、他社コード以外の場合に有効となります。
-od {crlf ¦ lf}
出力レコードの改行コードの有無または種類を指定します。
指定できる改行コードの有無または種類は-idオペランドと同じです。
-otがtext、data、xmlまたはcsvで、かつ-ocがJEFコード、他社コード以外の場合に有効となります。
-ib {seq ¦ lsq ¦ rel ¦ idx}
Windows上のCOBOLアプリケーションプログラムでアクセスするファイルの形式を指定するもので、-it cblfileを
指定したときに有効となり、それ以外では無視されます。
seq
レコード順ファイル
lsq
行順ファイル
rel
相対ファイル
idx
索引ファイル
本オペランドを省略するとseqとして扱われます。
-ob {seq ¦ lsq ¦ rel ¦ idx[,キー位置;キー長[;...][;dup]][,...]}
Windows上のCOBOLアプリケーションプログラムでアクセスするファイルの形式を指定するもので、指定できる
レコード属性の種類は-ibオペランドと同じです。
-ot cblfileを指定したときに有効となり、それ以外では無視されます。
索引ファイルを指定した場合には、オペランドに続けてキー位置、キー長をセミコロン(;)で区切って指定します。
キー位置はレコードの先頭を1とした相対バイト位置を指定し、キー長はキー位置からのバイト数で指定します。
重複キーを持つ索引ファイルの場合は";dup"を続けて指定します。主キーは省略できません。
-ir {f ¦ v}
入力ファイルのレコード属性を指定します。
f
固定長
v
可変長
本オペランドを省略すると、fとして扱われます。
-or {f ¦ v}
出力ファイルのレコード属性を指定します。
指定できるレコード属性の種類は、-irオペランドと同じです。
本オペランドを省略すると、fとして扱われます。
-il [入力レコード長]
入力ファイルのレコード長を指定します。指定可能なレコード長は1∼32767です。
入力レコード長を省略した場合は、レイアウト定義ファイルに格納されている入力レコード長が指定されたものと
みなしますが、レイアウト定義ファイルが指定されなかった場合はエラーとなります。
-ol [出力レコード長]
出力ファイルのレコード長を指定します。指定可能なレコード長は1∼32767です。
出力レコード長を省略した場合は、レイアウト定義ファイルに格納されている出力レコード長が指定されたものと
みなしますが、レイアウト定義ファイルが指定されなかった場合はエラーとなります。
種類
コマンド例(出力形式)
データファイル形式(Data)
-ot data -or f -ol 500
Windows(DOS)CSV形式
-ot csv -or v -od crlf
Windows(DOS)テキスト
-ot text -or v -od crlf
UNIXテキスト(CSV含む)
-ot text -or v -od lf または -ot
csv -or v -od lf
汎用機ソース
-ot text -or f -ol 80
XML形式
-ot xml -or v -od crlf
-p {rdb2 ¦ oracle ¦ informix ¦ sqlserver ¦ excel}
CSV形式ファイルを扱う場合に、対象のRDB向けローダ形式を指定します。
-itまたは-otオペランドにcsvを指定したときに有効となり、それ以外では無視されます。
rdb2
SymfoWAREのローダ形式
oracle
Oracleのローダ形式
informix
INFORMIXのローダ形式
sqlserver
SQL Serverのローダ形式
excel
ExcelのCSV形式
本オペランドを省略した場合は、rdb2として扱われます。
-s {文字 ¦ ,}
CSV形式ファイルを扱う場合に、項目間を区切るための文字を指定します。
-itまたは-otオペランドにcsvを指定したときに有効となり、それ以外では無視されます。
指定文字を区切り文字として使用します。
文字 区切り文字としてタブを使用した場合は、直接タブ文字を指定してください。
区切り文字を使用しない(ヌルを使用する)場合は""と指定してください。
,
カンマを区切り文字として使用します。
本オペランドを省略した場合、「,」として扱われます。
-q {文字 ¦ "}
CSV形式ファイルを扱う場合に、項目をくくるための引用符文字を指定します。
レイアウト定義で引用に Y が指定されている場合に有効となり、それ以外では無視されます。
文字
"
指定文字を引用符文字として使用します。
引用符文字を使用しない(ヌルを使用する)場合は""と指定して下さい。
ダブルクォーテーションを引用符文字として使用します。
本オペランドを省略した場合、「"」として扱われます。
-qd
データ中に引用符が存在する場合の扱いを指定します。
1つの引用符データは2つの引用符で表現し、文字列項目をくくっている引用符との識別を行う場合に指定しま
す。レイアウト定義で引用に Y が指定されている場合のみ有効です。
-n
ヌルの項目文字列を2つの引用符で表す場合に指定します。
本オペランドを省略した場合、ヌルの項目文字列には引用符は付加されません。
-h
CSV出力レコードの1件目に、項目名の見出しレコードを出力する場合に指定します。
但し、このオペランドを指定してマルチレイアウトの処理を行うと、エラーを出力して、変換処理を中断します。
-g
ログファイルに出力する内容を標準エラー出力に出力する場合に指定します。
-d
MDPORT本体の実行環境の設定を初期化する場合に指定します。
本オペランドを省略した場合、MDPORT本体の環境設定に従います。
-w, -lg, -lf, -biオペランドを同時に指定した場合、それぞれのデフォルトの設定は無効となり、-w, -lg, -lf, -biオペラ
ンドの指定を有効とします。
本オペランドを指定した場合のデフォルト値は以下の通りとなります。
-w
システムの作業用フォルダ
-lg
作業用フォルダに"Mdport.log"
-lf
no(扱わない)
-bi
no(扱わない)
-w [作業用フォルダ名]
作業用フォルダ名をフルパスで指定します。
作業用フォルダ名を省略した場合は、システムの作業用フォルダ(環境変数TEMPまたはWindowsディレクトリ)を
使用します。
本オペランドを省略した場合、-dオペランドの指定に従います。
-lg [ログファイル名]
ログファイル名をフルパスで指定します。
ログファイル名を省略した場合は、作業用フォルダに"Mdport.log"のファイル名で作成されます。
本オペランドを省略した場合、-dオペランドの指定に従います。
-lf {yes ¦ no}
1GBを超えるサイズのCOBOLファイル(順・行順ファイル)の扱いを指定します。
yes
扱う
no
扱わない
本オペランドを省略した場合、-dオペランドの指定に従います。
-bi {yes ¦ no}
2進項目においてBYTE単位の領域長の扱いを指定します。
yes
扱う
no
扱わない
本オペランドを省略した場合、-dオペランドの指定に従います。
-xt [XMLテンプレートファイル名]
出力ファイル形式がXML形式の場合、XML宣言文等をXMLファイルの先頭に付加するためのXMLテンプレート
ファイル名を指定します。
XMLテンプレートファイル名を省略した場合は、出力先コードと同一文字コードで作成された標準のXMLテンプ
レートファイルが付加されます。
本オペランドを省略した場合、XMLテンプレートファイルをXMLファイルの先頭に付加しません。
-dv
入力ファイルを複数ファイルに分割して出力する場合に指定します。
出力ファイル名にワイルドカード[*.拡張子]を指定した場合にのみ有効となります。
-dvオペランドの出力仕様について
-dv オペランド指定 入力側(例) 出力側(例)
説明
なし
aaa.in
bbb.out
bbb.outへ変換結果を出力します。
なし
aaa.in
*.out
出力側に入力された文字列を拡張子と見なし、入力ファイル(aaa.
in)の拡張子と置き換えたファイルへ出力します。
なし
*.in
*.out
出力側に入力された文字列を拡張子と見なし、入力対象となるファ
イル名の拡張子と置き換えたファイルへ出力します。
なし
*.in
bbb.out
bbb.outへ変換結果を出力します。入力対象ファイルが複数存在す
る場合は、出力ファイルへ追加書きされます。
あり
aaa.in
*.out
出力側に入力された文字列を拡張子と見なし、入力ファイル(aaa.
in)の拡張子と置き換えたファイルへレコード単位(ファイルに連番
が振られます)に出力します。(例) aaa00000.out, aaa00001.out........
あり
*.in
*.out
出力側に入力された文字列を拡張子と見なし、入力対象となるファ
イル名の拡張子と置き換えたファイルへレコード単位(ファイルに
連番が振られます)に出力します。
-ev
ログファイルに出力する内容をイベントログに出力する場合に指定します。
イベントログの出力内容については、TF-MDPORTオンラインマニュアルの「ログ出力」を参照してください。
[復帰値]
当コマンドは以下のいずれかの復帰値で終了します。(プロセスの強制終了や異常終了時の復帰値は保証できませ
ん。)
復帰値
意味
0
正常終了(変換エラーなし)
1
正常終了(変換エラーあり)
2
ログファイルアクセスエラーによる異常終了
3
異常終了(ログファイルへエラー内容出力)
参照)コマンド機能における制限・注意事項
-nc
同一コードを指定した場合に限り、変換を行わずにそのままデータを出力します。
異なるコードを指定した場合は、このオペランドは無視されます。
MDPORTLCコマンド
[名 前]
MDPORTLC
[形 式]
MDPORTLC.EXE
-c COPYライブラリ名
[-l レイアウト定義ファイル名] [-f]
[-i {data ¦ csv ¦ xml}]
[-o {data ¦ csv ¦ xml}]
[-d]
[-t {cob ¦ yps ¦ ffd}]
[-m {lib ¦ com}]
[-w {fix ¦ var ¦ free}]
[-b {word ¦ byte}]
[-a [COPY文への付加文字列名]]
[-p {yes ¦ no}]
[-g]
[-v]
[機能説明]
-c COPYライブラリ名
COPYライブラリ名を指定します。
パスを省略した場合、パスはカレントフォルダ(MDPORTLC.EXEの起動場所)となります。
COPYライブラリ名にはワイルドカードを使用することができます。
-l レイアウト定義ファイル名
作成するレイアウト定義ファイル名を指定します。
パスを省略した場合、レイアウト定義ファイルの出力フォルダはカレントフォルダとなります。
レイアウト定義ファイル名には、指定されたCOPYライブラリ名の拡張子を置き換える目的で[*.拡張子]と指定する
ことができます。
本オペランドを省略した場合、レイアウト定義ファイル名は、指定されたCOPYライブラリ名の拡張子を[lay]に
置き換えた名前になります。また、出力先は指定されたCOPYライブラリの存在するフォルダとなります。
-f
作成するレイアウト定義ファイルが存在する場合、上書きして出力します。
作成するレイアウト定義ファイルが存在する場合、本オペランドを省略すると 出力ファイルが既に存在していま
す。 と警告メッセージを出力します。
-i {data ¦ csv ¦ xml}
入力データ形式を指定します。以下に入力データ形式の意味を示します。
data
データファイル形式
csv
CSV形式
xml
XML形式
本オペランドを省略した場合、-i dataとして扱われます。
-o {data ¦ csv ¦ xml}
出力データ形式を指定します。以下に入力データ形式の意味を示します。
data
データファイル形式
csv
CSV形式
xml
XML形式
本オペランドを省略した場合、-o dataとして扱われます。
-d
レイアウト定義機能のCOBOL解析オプションの設定を無視してデフォルトの設定を指定します。
-t、-m、-w、-b、-a、-pのオペランドを一緒に指定した場合、それぞれのデフォルトの設定は無効となり、-t、m、-w、-b、-a、-pのオペランドの指定を有効とします。
デフォルトの設定
-t (ファイル種別)
cob (COBOL登録集)
-m (解析方法)
lib (COBOL解析ライブラリ)
-w (正書法の種類)
var (可変長)
-b (2進項目の扱い)
word (WORD)
-a (付加文字列名)
NULL
-p(集団項目の扱い)
yes(扱う)
本オペランドを省略した場合、レイアウト定義機能のCOBOL解析オプションの設定となります。また作業フォル
ダ、ログファイルはMDPORT本体の環境設定の設定となります。
-t {cob ¦ yps ¦ ffd}
ファイル種別を指定します。以下にファイル種別の意味を示します。
cob
COBOL登録集
yps
YPSインクルード仕様書(YPS/COBOLをインストール済みの場合のみ)
ffd
ファイル定義体
本オペランドを省略した場合、レイアウト定義機能のCOBOL解析オプションの設定となります。
-m {lib ¦ com}
解析方法を指定します。以下に解析方法の意味を示します。
lib
COBOL解析ライブラリ
com
COBOL97コンパイラ (COBOL97をインストール済みの場合のみ)
本オペランドを省略した場合、レイアウト定義機能のCOBOL解析オプションの設定となります。
-w {fix ¦ var ¦ free}
正書法の種類を指定します。以下に正書法の種類の意味を示します。
fix
固定長
var
可変長
free
自由
本オペランドを省略した場合、レイアウト定義機能のCOBOL解析オプションの設定となります。
-b {word ¦ byte}
2進項目の扱いを指定します。以下に2進項目の扱いの意味を示します。
word
WORD
byte
BYTE
本オペランドを省略した場合、レイアウト定義機能のCOBOL解析オプションの設定となります。
※ 本オペランドはCOBOL97をインストール済みの場合のみ有効です。
-a [COPY文への付加文字列名]
COBOL登録集が仮原文を含む場合、REPLACING句の指定を行わないと正しく解析することができないので、COPY
文への付加文字列名を指定します。
付加文字列名の文字数は64(byte)以内とします。パラメータを省略した場合COPY文への付加文字列の指定は、指
定無しとなります。
本オペランドを省略した場合、レイアウト定義機能のCOBOL解析オプションの設定となります。
※ 本オペランドはCOBOL97をインストール済みの場合のみ有効です。
-p {yes ¦ no}
解析結果としてレイアウト定義に出力する集団項目の扱いを指定します。
yes
扱う
no
扱わない
本オペランドを省略した場合、レイアウト定義機能のCOBOL解析オプションの設定となります。
-g
ログファイルに出力する内容を標準エラー出力に出力する場合に指定します。
-v
ログファイルに出力する内容をイベントログに出力する場合に指定します。
[復帰値]
当コマンドは以下のいずれかの復帰値で終了します。(プロセスの強制終了及び異常終了の復帰値は保証できませ
ん。)
復帰値
意味
0
正常終了(解析エラーなし)
1
異常終了(ログファイルアクセスエラー)
2
異常終了(上記以外のエラー)
[使用可能なオペランドの詳細]
使用可能なオペランドの組合せを下記に示します。
ファイル種別
指定項目
解析方法
COBOL登録集
YPSインクルード仕様書
ファイル定義体
解析ライブ 97コンパイ 解析ライブ 97コンパイ 解析ライブ
ラリ
ラ
ラリ
ラ
ラリ
97コンパイ
ラ
正書法の種類(固定長)
×
○
×
×
×
×
正書法の種類(可変長)
○
○
○
○
○
○
正書法の種類(自由)
×
○
×
×
×
○
2進項目の扱い
×
○
×
○
×
○
COPY文への付加文字列の指定
×
○
×
×
×
×
COPY文への付加文字列
×
○
×
×
×
×
○:使用可 ×:使用不可
サンプルデータでの動作確認手順
製品に付随するサンプルの使用手順について説明します。インストール後の動作確認等に使用してください。
なおサンプルデータには、変換エラー表示機能を使用するために、項目属性に合わないデータ値が意図的に含ま
れています。
MDPORTCコマンド
【手 順】
1.
2.
3.
4.
コマンドプロンプトを起動します。
SIMPLIA/TF-MDPORT Pro がインスト−ルされているフォルダ配下のSAMPLEフォルダに移動します。
"SAMPLE.BAT"と入力します。
Enterキーを押すと実行状況が出力されます。サンプルデータの場合は、以下のようになります。
2000/07/13 14:55:34[Data1.dat]変換処理を開始します。
*** SIMPLIA/TF-MDPORT 変換エラーファイル ***
カレントフォルダ:
入力ファイル名: Data1.dat
レイアウト定義ファイル名: Data1.lay
変換エラー発生数: 2
【コード変換エラー】()内は出現数 (*)は100以上
0000( 1)
【エラー発生項目】項目No:項目名:属性(エラー発生数 *は100以上)
3:製品名:N( 1)
5:売上数量:Z( 1)
【エラー詳細】レコード番号-位置 エラー内容 項目No:項目名:属性
3-23 コード変換エラー(0x0000) 3:製品名:N
4-46 数値部エラー 5:売上数量:Z
2000/07/13 14:55:35[Data1.csv]変換処理が正常に終了しました。 入力レコード件数 : 14 出力レコー
ド件数 : 14 エラー発生件数 : 2
正常終了 (復帰値:1 変換エラーあり)
5. サンプルデータでは以下のエラーが発生したことがわかります。
3レコード目の23バイト目、項目名「製品名」、項目属性「日本語項目(N)」でコード変換エラー(入力
コードは0x0000)
4レコード目の46バイト目、項目名「売上数量」、項目属性「外部10進(Z)」で数値部エラー
MDPORTLCコマンド
【手 順】
1.
2.
3.
4.
コマンドプロンプトを起動します。
SIMPLIA/TF-MDPORT Pro がインスト−ルされているフォルダ配下のSAMPLEフォルダに移動します。
"SAMPLE2.BAT"と入力します。
Enterキーを押すと実行状況が出力されます。サンプルデータの場合は、以下のようになります。
2001/02/27 18:36:19[data1.cob] 解析処理を開始します。
2001/02/27 18:36:19[data4.lay] 解析処理が正常に終了しました。
正常終了 (復帰値:0 解析エラーなし)
コード変換/レコード変換機能
コード変換/レコード変換機能は、PCと汎用機・オフコン・UNIX機間で、ソースやデータファイル等の資源を流用
させることを目的とした関数群で、以下の機能に分類されます。
コード変換機能
各種コードへのコード変換を行います。
レコード変換機能 レコード単位にコード変換、レコード形式変換を行います。
コード変換機能
コード変換機能は、ダイナミックリンクライブラリ(DLL)として提供され、ユーザアプリケーションと動的にリ
ンクすることにより、各種コードへのコード変換を行います。
[機能説明]
コード変換機能は以下の関数をユーザアプリケーションに組込むことにより、各種コード変換を行います。コー
ド変換関数の詳細については 付録 コード変換/レコード変換機能 を参照して下さい。
№
関数名
1 MDCOINIT()
機能
使用するコード変換関数の宣言を行います。
2 MDCOFREE() コード変換終了処理を行います。
3 MDCOSTAT() 詳細エラー情報を取得します。
4 MDCOEBEU() EBCDICからEUC(半角英数カナ)に変換します。
5 MDCOEBJ7() EBCDICからJIS7に変換します。
6 MDCOEBJ8() EBCDICからJIS8に変換します。
7 MDCOEUEB() EUC(半角英数カナ)からEBCDICに変換します。
8 MDCOEUJ7() EUC(半角英数カナ)からJIS7に変換します。
9 MDCOEUJ8() EUC(半角英数カナ)からJIS8に変換します。
10 MDCOEUJE() EUCからJEFに変換します。
11 MDCOEUJI()
EUCからJISに変換します。
12 MDCOEUSJ() EUCからSJISに変換します。
13 MDCOJ7EB() JIS7からEBCDICに変換します。
14 MDCOJ7EU() JIS7からEUC(半角英数カナ)に変換します。
15 MDCOJ7J8()
JIS7からJIS8に変換します。
16 MDCOJ8EB() JIS8からEBCDICに変換します。
17 MDCOJ8EU() JIS8からEUC(半角英数カナ)に変換します。
18 MDCOJ8J7()
JIS8からJIS7に変換します。
19 MDCOJEEU() JEFからEUCに変換します。
20 MDCOJEJI()
JEFからJISに変換します。
21 MDCOJESJ()
JEFからSJISに変換します。
22 MDCOJIEU()
JISからEUCに変換します。
23 MDCOJIJE()
JISからJEFに変換します。
24 MDCOJISJ()
JISからSJISに変換します。
25 MDCOSJEU() SJISからEUCに変換します。
26 MDCOSJJE()
SJISからJEFに変換します。
27 MDCOSJJI()
SJISからJISに変換します。
[動作環境]
コード変換機能のシステムフローを図1に示します。
図1 コード変換機能のシステムフロー
[使用方法]
コード変換機能によるコード変換手順を図2に示します。
図2 コード変換機能によるコード変換手順
[実行環境]
コード変換機能では、関数の変換仕様に関わる環境変数を指定することができます。表1にコード変換機能で指定
可能な環境変数を示します。その他の環境変数は、 実行環境 を参照して下さい。
表1 コード変換機能に関する環境変数
設定できる値
(下線は省略時)
環境変数
MDPORT_JIS
jiskana
jiskana8
jiskana7
MDPORT_CS3
ON
OFF
MDPORT_ISO
ON
OFF
MDPORT_JIS
変換元または変換後のコードがJISの時に有効で、半角・英数カナのモードを指定します。
jiskana
JISローマ字とJISカタカナの切り替えをエスケープシーケンスで行います。
jiskana8 1バイトコード(半角・英数カナ)を、8ビットコードで扱います。
jiskana7 JISローマ字とJISカタカナの切り替えをSI/SOで行います。
MDPORT_CS3
- 変換元または変換後のコードがEUCの時に、コードセット3(3バイト/1文字表現)を使用するかしないかを
指定します。OFFにすると、コードセット3の文字が扱えなくなります。
詳細はレコード変換機能のMDP_init() cs3modeの説明を参照してください。
MDPORT_ISO
- EBCDICコードとASCIIコード間の変換における、変換仕様を指定します。OFFにすると、emuモードで変換さ
れます。
詳細はレコード変換機能のMDP_init() isomodeの説明を参照してください。
[使用例]
C言語プログラムからコード変換機能の関数を使用する場合の記述例を示します。 #include "MDPcomm.h"
:
struct CODPARA codpara;
char indata[256];
char outdata[256};
:
codpara.inlen = indata_len;
codpara.outlen = outdata_len;
/* コード変換パラ
*/
メタ
/* 入力データ
/* 出力データ
*/
*/
/* 入力データ長設
*/
定
/* 出力データ長設
*/
定
:
/** コード変換初期処理変換パスの宣
言 */
/** EUC<-->JIS8, JIS7<-->JIS8, EBCDIC<-->JIS8 */
rtn = MDCOINIT
( FUNC_MDCOEUJ8 );
rtn = MDCOINIT
( FUNC_MDCOJ7J8 );
rtn = MDCOINIT
( FUNC_MDCOEBJ8 );
:
/* MDCOEUJ8()の
宣言
/* MDCOJ7J8()の
宣言
*/
*/
/* MDCOEBJ8()の
宣言
*/
/* EUC -> JIS8
*/
/* JIS7 -> JIS8
*/
/* EBCDIC -> JIS8
*/
/** コード変換ライブラリ呼出し */
rtn = MDCOEUJ8( &codpara, indata,
outdata );
rtn = MDCOJ7J8( &codpara, indata,
outdata );
rtn = MDCOEBJ8( &codpara, indata,
outdata );
:
/** コード変換終了処理 */
rtn = MDCOFREE();
return(0);
[コンパイル方法]
コード変換機能は、ダイナミックリンクライブラリ(DLL)として提供されます。コンパイル時にF5AVPCOD.lib
をリンクして下さい。
[注 意] − 本機能は、マルチスレッドアプリケーションには対応していません。
− 本機能は、CharsetMGRがインストールされている場合、コード変換規則はCharsetMGRに従います。
CharsetMGRが使用できない場合には、内部の変換テーブルを使用します。
− 本ライブラリは、32ビット以外のアプリケーションとリンクして使用することはできません。
MDCOINIT()
[名 前]
MDCOINIT − 使用するコード変換関数を宣言し、コード変換の初期処理を行います。
[形 式]
#include MDPcomm.h
int MDCOINIT(int funcnm);
[機能説明]
funcnmには、アプリケーション内で使用するコード変換関数を以下の中から指定し、メモリの確保、コード変換
ケーブルの展開等の初期処理を行います。
FUNC_MDCOEBEU
関数MDCOEBEU()を表します。
FUNC_MDCOEBJ7
関数MDCOEBJ7()を表します。
FUNC_MDCOEBJ8
関数MDCOEBJ8()を表します。
FUNC_MDCOEUEB
関数MDCOEUEB()を表します。
FUNC_MDCOEUJ7
関数MDCOEUJ7()を表します。
FUNC_MDCOEUJ8
関数MDCOEUJ8()を表します。
FUNC_MDCOEUJE
関数MDCOEUJE()を表します。
FUNC_MDCOEUJI
関数MDCOEUJI()を表します。
FUNC_MDCOEUSJ
関数MDCOEUSJ()を表します。
FUNC_MDCOJ7EB
関数MDCOJ7EB()を表します。
FUNC_MDCOJ7EU
関数MDCOJ7EU()を表します。
FUNC_MDCOJ7J8
関数MDCOJ7J8()を表します。
FUNC_MDCOJ8EB
関数MDCOJ8EB()を表します。
FUNC_MDCOJ8EU
関数MDCOJ8EU()を表します。
FUNC_MDCOJ8J7
関数MDCOJ8J7()を表します。
FUNC_MDCOJEEU
関数MDCOJEEU()を表します。
FUNC_MDCOJEJI
関数MDCOJEJI()を表します。
FUNC_MDCOJESJ
関数MDCOJESJ()を表します。
FUNC_MDCOJIEU
関数MDCOJIEU()を表します。
FUNC_MDCOJIJE
関数MDCOJIJE()を表します。
FUNC_MDCOJISJ
関数MDCOJISJ()を表します。
FUNC_MDCOSJEU
間数MDCOSJEU()を表します。
FUNC_MDCOSJJE
関数MDCOSJJE()を表します。
FUNC_MDCOSJJI
関数MDCOSJJI()を表します。
本関数1回の呼び出しで、複数の関数名を同時に指定することはできません。1つのアプリケーションで異なる複
数のコード変換関数を使用する場合は、使用するコード変換関数の分だけ本関数を事前に呼び出す必要がありま
す。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
MDCOFREE()
[名 前]
MDCOFREE − コード変換の終了処理を行います。
[形 式]
#include MDPcomm.h
int MDCOFREE();
[機能説明]
本関数は、MDCOINIT()関数で展開された文字コードテーブル変換テーブル等の動的に確保した領域の解放等の
コード変換の終了処理を行います。引数はありません。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[注 意]
本関数を呼び出すと、MDCOINIT()により確保された資源は全て解放されます。本関数の呼び出し後は、再度
MDCOINIT()を呼び出し初期化処理を行わないと、コード変換処理を行えません。
MDCOSTAT()
[名 前]
MDCOSTAT − 詳細エラー情報を取得します。
[形 式]
#include MDPcomm.h
void MDCOSTAT(struct mdco_stat *stat);
[機能説明]
本関数は、各コード変換関数で発生したエラーの詳細情報を取得します。mdco_stat構造体宣言とその内容は以下
の通りです。
struct mdco_stat {
int
st_etyp;
/* エラー種別
*/
int
st_wnum;
/* ワーニング発生
数
*/
int
*st_wpos;
int
*st_wtyp;
int
} ;
st_eno;
/* エラー番号
/* ワーニング発生
位置
/* ワーニング発生
種別
*/
*/
*/
st_etypには、各コードへ変換関数で発生したエラーの種別が返されます。エラーの種別は以下のとおりです。
0
エラーはありません。
MDCO_WAR 文字の変換エラーが発生しました。
MDCO_ERR
上記以外のエラー(システムエラー等)が発生しました。
st_enoは、st_etypの値が、MDCO_ERRの場合に以下の値が設定されます。MDCO_ERR以外の場合は無効となりま
す。
MDCO_ENV 実行環境でエラーが発生しました。
MDCO_PAR パラメタに誤りがあります。
その他
上記以外の場合、システムのerrnoが設定されます。
st_wnumは、st_etypの値がMDCO_WARの場合に、ワーニングの発生件数を返します。MDCO_WAR以外の場合は
無効となります。なお、設定される最大件数は9999件までです。
st_wposは、st_etypの値がMDCO_WARの場合に、発生した変換エラーの先頭からの位置(バイト単位)が
st_wnumで示される数の配列として格納され、そのポインタが返されます。
st_wtypは、st_etypの値がMDCO_WARの場合に、発生した変換エラー種別がst_wnumで示される数の配列として
格納され、そのポインタが返されます。
エラー種別は以下のとおりです。
MDCO_WCH1
未定義文字(1バイト系)です。
MDCO_WCH2
未定義文字(2バイト系)です。
MDCO_WNUM 数値エラーです。
MDCO_WOVR
領域長オーバー(変換後文字列長>出力文字列長)です。 [復帰値]
復帰値はありません。
[注 意]
本関数によって返されるエラー詳細情報は、直前に呼び出されたコード変換関数についての情報のみです。対象と
するコード変換関数から復帰後、本関数を呼び出す前に、ほかのシステムコールや関数を呼び出すとエラー詳細情
報は無効になります。
MDCOEBEU()
[名 前]
MDCOEBEU − EBCDICコードからEUC(半角・英数カナ)コードに変換します。
[形 式]
#include MDPcomm.h
int MDCOEBEU(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをEBCDICコードからEUCコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、本関数では使用しません。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはEBCDIC(カナ)コード、出力データの文字コードはEUCコード(ASCIIコード+JISカタ
カナ(CS2))として変換を行います。それ以外の文字コードは変換エラーとします。
MDCOEBJ7()
[名 前]
MDCOEBJ7 − EBCDICコードからJIS7コードに変換します。
[形 式]
#include MDPcomm.h
int MDCOEBJ7(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをEBCDICコードからJIS7コードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、以下の値を設定することにより、出力データにパリティビットを付加することができます。
MDCOOPT_PN JIS7コードへ通常の変換を行います。パリティビットは付加しません。
MDCOOPT_PE JIS7コードへ変換し、上位1ビットを偶数パリティビットとします。
MDCOOPT_PO JIS7コードへ変換し、上位1ビットを奇数パリティビットとします。
その他
MDCOPT_PNと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはEBCDIC(カナ)コード、出力データの文字コードはJIS7コードとして変換を行いま
す。それ以外の文字コードは変換エラーとします。本関数では、JIS7コードはASCII SO(シフトアウト)とSI(シ
フトイン)を使用し、下位7ビットのみでJISローマ字、JISカタカナを表します。なお、パリティビットを付加す
る場合は、JIS7コードで使用されない上位1ビットを使用します。
MDCOEBJ8()
[名 前]
MDCOEBJ8 − EBCDICコードからJIS8コードに変換します。
[形 式]
#include MDPcomm.h
int MDCOEBJ8(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをEBCDICコードからJIS8コードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、本関数では使用しません。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはEBCDIC(カナ)コード、出力データの文字コードはJIS8コードとして変換を行いま
す。それ以外の文字コードは変換エラーとします。
MDCOEUEB()
[名 前]
MDCOEUEB − EUC(半角・英数カナ)からEBCDICコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOEUEB(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをEUC(半角・英数カナ)コードからEBCDICコードに変換し、outdata
に設定します。MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、本関数では使用しません。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはEUC(ASCIIコード+JISカタカナ(CS2))、出力データの文字コードは、EBCDIC(カ
ナ)コードとして変換を行います。それ以外の文字コードは変換エラーとします。
MDCOEUJ7()
[名 前]
MDCOEUJ7 − EUC(半角・英数カナ)コードからJIS7コードに変換します。
[形 式]
#include MDPcomm.h
int MDCOEUJ7(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをEUC(半角・英数カナ)コードからJIS7コードに変換し、outdataに設
定します。MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、以下の値を設定することにより、出力データにパリティビットを付加することができます。
MDCOOPT_PN JIS7コードへ通常の変換を行います。パリティビットは付加しません。
MDCOOPT_PE JIS7コードへ変換し、上位1ビットを偶数パリティビットとします。
MDCOOPT_PO JIS7コードへ変換し、上位1ビットを奇数パリティビットとします。
その他
MDCOOPT_PNと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはEUC(ASCIIコード+JISカタカナ(CS2))コード、出力データの文字コードは、JIS7
コードとして変換を行います。それ以外の文字コードは変換エラーとします。本関数では、JIS7コードはASCII SO
(シフトアウト)とSI(シフトイン)を使用し、下位7ビットのみでJISローマ字、JISカタカナを表します。な
お、パリティビットを付加する場合は、JIS7コードで使用されない上位1ビットを使用します。
MDCOEUJ8()
[名 前]
MDCOEUJ8 − EUC(半角・英数カナ)コードからJIS8コードに変換します。
[形 式]
#include MDPcomm.h
int MDCOEUJ8(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをEUC(半角・英数カナ)コードからJIS8コードに変換し、outdataに設
定します。MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、本関数では使用しません。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはEUC(ASCIIコード+JISカタカナ(CS2))コード、出力データの文字コードは、JIS8
コードとして変換を行います。それ以外の文字コードは変換エラーとします。
MDCOEUJE()
[名 前]
MDCOEUJE − EUCコードからJEFコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOEUJE(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをEUCコードからJEFコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはEUCコード、出力データの文字コードは、JEFコードとして変換を行います。それ以外
の文字コードは変換エラーとします。
MDCOEUJI()
[名 前]
MDCOEUJI − EUCコードからJISコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOEUJI(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをEUCコードからJISコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはEUCコード、出力データの文字コードは、JISコードとして変換を行います。それ以外
の文字コードは変換エラーとします。
MDCOEUSJ()
[名 前]
MDCOEUSJ − EUCコードからシフトJISコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOEUSJ(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをEUCコードからシフトJISコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはEUCコード、出力データの文字コードは、シフトJISコードとして変換を行います。そ
れ以外の文字コードは変換エラーとします。
MDCOJ7EB()
[名 前]
MDCOJ7EB − JIS7コードからEBCDICコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJ7EB(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJIS7コードからEBCDICコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、以下の値を設定することにより、入力データのパリティビットのチェックを行うことができます。
入力データは、通常のJIS7コードで、パリティビットは付加されていないものとして変換を行
MDCOOPT_PN います。入力データパリティビットが付加されている場合でも、上位1バイトは無視して変換
を行います。
MDCOOPT_PE
入力データは、偶数パリティビット(上位1バイト)付のJIS7コードであるものとして変換を
行います。
MDCOOPT_PO
入力データは、奇数パリティビット(上位1バイト)付のJIS7コードであるものとして変換を
行います。
その他
MDCOOPT_PNと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはJIS7コード、出力データの文字コードは、EBCDIC(カナ)コードとして変換を行いま
す。それ以外の文字コードは変換エラーとします。本関数では、入力データであるJIS7コードはASCII SO(シフト
アウト)とSI(シフトイン)を使用してJISローマ字、JISカタカナの切り替えを行い、下位7ビットのみで表され
ているものとします。また、パリティビットのチェックでエラーとなった場合は、変換対象外の文字として扱いま
す。
MDCOJ7EU()
[名 前]
MDCOJ7EU − JIS7コードからEUC(半角・英数カナ)コードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJ7EU(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJIS7コードからEUC(半角・英数カナ)コードに変換し、outdataに設
定します。MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、以下の値を設定することにより、入力データのパリティビットのチェックを行うことができます。
入力データは、通常のJIS7コードで、パリティビットは付加されていないものとして変換を行
MDCOOPT_PN います。入力データパリティビットが付加されている場合でも、上位1バイトは無視して変換
を行います。
MDCOOPT_PE
入力データは、偶数パリティビット(上位1バイト)付のJIS7コードであるものとして変換を
行います。
MDCOOPT_PO
入力データは、奇数パリティビット(上位1バイト)付のJIS7コードであるものとして変換を
行います。
その他
MDCOOPT_PNと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはJIS7コード、出力データの文字コードは、EUC(ASCIIコード+JISカタカナ(CS2))コー
ドとして変換を行います。それ以外の文字コードは変換エラーとします。本関数では、入力データであるJIS7コー
ドはASCII SO(シフトアウト)とSI(シフトイン)を使用してJISローマ字、JISカタカナの切り替えを行い、下位
7ビットのみで表されているものとします。また、パリティビットのチェックでエラーとなった場合は、変換対象
外の文字として扱います。
MDCOJ7J8()
[名 前]
MDCOJ7J8 − JIS7コードからJIS8コードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJ7J8(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJIS7コードからJIS8コードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、以下の値を設定することにより、入力データのパリティビットのチェックを行うことができます。
入力データは、通常のJIS7コードで、パリティビットは付加されていないものとして変換を行
MDCOOPT_PN います。入力データパリティビットが付加されている場合でも、上位1バイトは無視して変換
を行います。
MDCOOPT_PE
入力データは、偶数パリティビット(上位1バイト)付のJIS7コードであるものとして変換を
行います。
MDCOOPT_PO
入力データは、奇数パリティビット(上位1バイト)付のJIS7コードであるものとして変換を
行います。
その他
MDCOOPT_PNと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはJIS7コード、出力データの文字コードは、JIS8コードとして変換を行います。それ以外
の文字コードは変換エラーとします。本関数では、入力データであるJIS7コードはASCII SO(シフトアウト)とSI
(シフトイン)を使用してJISローマ字、JISカタカナの切り替えを行い、下位7ビットのみで表されているものと
します。また、パリティビットのチェックでエラーとなった場合は、変換対象外の文字として扱います。
MDCOJ8EB()
[名 前]
MDCOJ8EB − JIS8コードからEBCDICコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJ8EB(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJIS8コードからEBCDICコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、本関数では使用しません。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはJIS8コード、出力データの文字コードは、EBCDIC(カナ)コードとして変換を行いま
す。それ以外の文字コードは変換エラーとします。
MDCOJ8EU()
[名 前]
MDCOJ8EU − JIS8コードからEUCコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJ8EU(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJIS8コードからEUCコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、本関数では使用しません。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはJIS8コード、出力データの文字コードは、EUC(ASCIIコード+JISカタカナ(CS2))
コードとして変換を行います。それ以外の文字コードは変換エラーとします。
MDCOJ8J7()
[名 前]
MDCOJ8J7 − JIS8コードからJIS7コードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJ8J7(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJIS8コードからJIS7コードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、本関数では使用しません。
optは、以下の値を設定することにより、出力データにパリティビットを付加することができます。
MDCOOPT_PN JIS7コードへ通常の変換を行います。パリティビットは付加しません。
MDCOOPT_PE JIS7コードへ変換し、上位1ビットを偶数パリティビットとします。
MDCOOPT_PO JIS7コードへ変換し、上位1ビットを奇数パリティビットとします。
その他
MDCOOPT_PNと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはJIS8コード、出力データの文字コードは、JIS7コードとして変換を行います。それ以外
の文字コードは変換エラーとします。本関数では、JIS7コードはASCII SO(シフトアウト)とSI(シフトイン)を
使用し、下位7ビットのみでJISローマ字、JISカタカナを表します。なお、パリティビットを付加する場合は、
JIS7コードで使用されない上位1ビットを使用します。
MDCOJEEU()
[名 前]
MDCOJEEU − JEFコードからEUCコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJEEU(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJEFコードからEUCコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはJEFコード、出力データの文字コードは、EUCコードとして変換を行います。それ以外
の文字コードは変換エラーとします。
MDCOJEJI()
[名 前]
MDCOJEJI − JEFコードからJISコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJEJI(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJEFコードからJISコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen:
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはJEFコード、出力データの文字コードは、JISコードとして変換を行います。それ以外の
文字コードは変換エラーとします。
MDCOJESJ()
[名 前]
MDCOJESJ − JEFコードからシフトJISコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJESJ(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJEFコードからシフトJISコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはJEFコード、出力データの文字コードは、シフトJISコードとして変換を行います。それ
以外の文字コードは変換エラーとします。
MDCOJIEU()
[名 前]
MDCOJIEU − JISコードからEUCコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJIEU(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJISコードからEUCコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードJISコード、出力データの文字コードは、EUCコードとして変換を行います。それ以外の
文字コードは変換エラーとします。
MDCOJIJE()
[名 前]
MDCOJIJE − JISコードからJEFコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJIJE(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJISコードからJEFコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはJISコード、出力データの文字コードは、JEFコードとして変換を行います。それ以外の
文字コードは変換エラーとします。
MDCOJISJ()
[名 前]
MDCOJISJ − JISコードからシフトJISコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOJISJ(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをJISコードからシフトJISコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはJISコード、出力データの文字コードは、シフトJISコードとして変換を行います。それ
以外の文字コードは変換エラーとします。
MDCOSJEU()
[名 前]
MDCOSJEU − シフトJISコードからEUCコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOSJEU(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをシフトJISコードからEUCコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはシフトJISコード、出力データの文字コードは、EUCコードとして変換を行います。そ
れ以外の文字コードは変換エラーとします。
MDCOSJJE()
[名 前]
MDCOSJJE − シフトJISコードからJEFコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOSJJE(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをシフトJISコードからJEFコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはシフトJISコード、出力データの文字コードは、JEFコードとして変換を行います。それ
以外の文字コードは変換エラーとします。
MDCOSJJI()
[名 前]
MDCOSJJI − シフトJISコードからJISコードに変換します。
[形 式]
#include MDPcomm.h
int MDCOSJJI(struct MDCOPARA *codpara, char *indata, char *outdata);
[機能説明]
本関数は、indataで指定された入力データをシフトJISコードからJISコードに変換し、outdataに設定します。
MDCOPARA構造体宣言とその設定内容は以下の通りです。
struct MDCOPARA {
int
int
char
short
short
char
char
char
} ;
int
rtncod;
/* 復帰値
rlen;
/* 変換結果長
int inlen;
/* 入力データ長
alt1[1];
/* 1バイト系代替文字
filler1[32]; /* 空き領域
int outlen; /* 出力データ長
alt2[2];
filler2[1];
opt;
/* 2バイト系代替文字
/* 空き領域
/* 変換オプション
*/
*/
*/
*/
*/
*/
*/
*/
*/
rtncodには本関数の復帰詳細コードが返されます。設定される内容は以下のとおりです。
0x00 正常(コード変換成功)
0x08 条件付正常(出力データ長>変換後データ長)
0x09 条件付正常(入力データに変換対象外の値があります)
0x10 異常(入力データ長<1)
0x11 異常(出力データ長<変換後データ長)
0x12 異常(入力データ長>最大入力データ長または出力データ長>最大出力データ長)
0x18 異常(その他の異常:システムエラー等)
rlenには、変換後のデータ長が返されます。
inlenは、入力データ長を設定します。
outlenは、出力データ長を設定します。
alt1は、入力データに変換不能な文字が含まれる場合に、代替する1バイト系の文字を変換先のコード体系で指定
します。
alt2は、入力データに変換不能な文字が含まれる場合に、代替する2バイト系の文字を変換先のコード体系で指定
します。
optは、以下の値を設定することにより、変換仕様の切り替えを行います。
MDCOOPT_N
入力および出力データはCOBOLの日本語項目に指定されるデータ(2バイト/1文字)として変
換を行い、シフトコードは含まないものとします。
MDCOOPT_M
入力および出力データはCOBOLの英数字日本語混在項目として変換を行い、必要であればシフト
コードが含まれるものとします。
その他
MDCOOPT_Mと同意です。
[復帰値]
正常終了時(条件付き正常終了含む)は0を、異常終了時は-1を返します。
[変換仕様]
入力データの文字コードはシフトJISコード、出力データの文字コードは、JISコードとして変換を行います。それ
以外の文字コードは変換エラーとします。
レコード変換機能
レコード変換機能は、以下の二つの機能に分類されます。
− mdportgコマンド
mdportgコマンドは、レコード変換機能が、変換処理を行う際に使用するデータ定義文解析ファイルを生成し
ます。データ定義文解析ファイルとは、データ定義文を解析して作成される中間ファイルです。
レコード変換機能を使用してデータ変換を行う場合は、あらかじめmdportgコマンドによりデータ定義文解析
ファイルを生成しておく必要があります。
− レコード変換関数
レコード変換関数には、ダイナミックリンクライブラリ(DLL)として提供され、ユーザアプリケーションと
動的にリンクすることにより、各種コードへのコード変換を行います。
mdportgコマンドとレコード変換関数の詳細については レコード変換機能 mdportg を参照して下さい。
[機能説明]
レコード変換機能は、以下の関数をユーザアプリケーションに組込み、レコード単位にコード変換、レコード形
式変換を行います。
レコード変換機能で提供される関数は以下のとおりです。
№
関数名
1 MDP_init()
機能
変換パスの宣言、データ定義文解析ファイルの指定、変換に使用する領域の動的確保等、コー
ド変換の初期処理を行います。
2 MDP_conv() MDP_init()指示された内容に従ってコード変換、またはレコード形式変換を行います。
3 MDP_fin()
MDP_init()で確保した領域の解放等、コード変換の終了処理を行います。
4 MDP_stat()
MDP_conv(), MDP_fin()で発生したエラーの詳細情報を取得します。
[動作環境]
レコード変換部品のシステムフローを図1に示します。
図1 レコード変換部品のシステムフロー
[使用方法]
レコード変換機能によるコード変換手順を図2に示します。
手順1 : mdportgコマンド(データ定義文解析ファイル生成処理)を使用して、データ定義文ファイルと変
換形式の指示をもとにデータ定義文解析ファイルを生成します。ただし、テキスト変換の場合、手
順1は必要ありません。
手順2 : ユーザアプリケーションで使用する変換パス毎に、コード変換/ レコード変換機能(ライブラリ)初期
化処理(MDP_init)により必要情報(変換パス、データ定義文解析ファイル名等)を宣言します。
手順3 : コード変換/ レコード変換機能(ライブラリ)変換処理(MDP_conv)によりコード変換、データ形式
変換処理を行います。
手順4 : コード変換/ レコード変換機能(ライブラリ)終了処理(MDP_fin)で、終了処理を行います。
例 : 1つのアプリケーションで複数の変換パスを使用(データ定義文が異なる等)する場合
図2 レコード変換機能によるコード変換手順
[実行環境]
レコード変換機能では、関数の変換仕様に関わる環境変数を指定することができます。表1にレコード変換機能で
指定可能な環境変数を示します。その他の環境変数は、 実行環境 を参照して下さい。
表1 レコード変換機能によるコード変換手順
環境変数
MDPORT_JIS
設定できる値
(下線は省略時)
jiskana
jiskana8
jiskana7
MDPORT_JIS
- 変換元または変換後のコードがJISの時に有効で、半角・英数カナのモードを指定します。
jiskana
JISローマ字とJISカタカナの切り替えをエスケープシーケンスで行います。
jiskana8 1バイトコード(半角・英数カナ)を、8ビットコードで扱います。
jiskana7 JISローマ字とJISカタカナの切り替えをSI/SOで行います。
[使用例]
C言語プログラムからレコード変換機能の関数を使用する場合の記述例を示します。
#include "MDPcomm.h"
:
struct MDPcvinf cvinf[2];
char *mdpinf[2];
char indata[256];
char outdata[256];
int
int
inlen;
outlen;
:
/**************************************
* テキスト(JEF)→テキスト(EUC)
の初期処理
**************************************/
strcpy(cvinf[0].icode, "jef");
/* 入力コード : JEF
cvinf[0].itype = TYPE_T;
/* 入力形式 : テキス
*/
ト
strcpy(cvinf[0].ocode, "euc");
cvinf[0].otype = TYPE_T;
cvinf[0].irecdlm = DLM_NO;
cvinf[0].orecdlm = DLM_LF;
cvinf[0].iso = ISO;
cvinf[0].okana = KANA_E;
cvinf[0].irecfm = RECFM_F;
cvinf[0].amend1 = 0x2f;
cvinf[0].amend2 = 0xa1a9;
cvinf[0].msgmax = 100;
/* 出力コード : EUC */
/* 出力形式 : テキス
*/
ト
/* 入力区分文字なし
*/
/* ISOモード変換
*/
/* 出力区分文字 (LF)
/* EUC CS2
/* 入力固定長レコード
/* 1BYTE 代替文字 ?
/* 2BYTE 代替文字 ?
cvinf[0].usrfname = "C:¥¥USRTBL.
cnv";
/* レコード変換初期化関数呼出し */
mdpinf[0] = MDP_init( &cvinf
[0] );
:
/
***************************************
* データ(SJIS)→CSV形式(EUC)の
初期処理
**************************************/
*/
*/
*/
*/
*/
/* WARNING 最大件数 */
cvinf[0].msgcont = MSGCONT_ON; /* 処理続行
cvinf[0].msgfname = "C:¥¥tmp¥
¥MDP01.msg";
*/
*/
/* MSG 出力ファイル
*/
/* 利用者定義テーブル
*/
strcpy(cvinf[1].icode, "sjis");
/* 入力コード : SJIS */
cvinf[1].itype = TYPE_D;
/* 入力形式 :データ
*/
/* 出力区切文字(LF)
*/
strcpy(cvinf[1].ocode, "euc");
cvinf[1].otype = TYPE_R;
cvinf[1].orecdlm = DLM_LF;
cvinf[1].okana = KANA_E;
cvinf[1].irecfm = RECFM_F;
cvinf[1].amend1 = 0x2f;
cvinf[1].amend2 = 0xa1a9;
cvinf[1].delimita = ',';
cvinf[1].msgmax = 100;
/* 出力コード : EUC */
/* 出力形式 :CSV形式 */
/* EUC CS2
/* 入力固定長レコード */
/* 1BYTE 代替文字 ?
*/
/* 区切り文字 ,
*/
/* 2BYTE 代替文字 ?
*/
/* WARNING 最大件数 */
cvinf[1].msgcont = MSGCONT_ON; /* 処理続行
cvinf[1].msgfname = "C:¥¥tmp¥
¥MDP02.msg";
*/
/* MSG 出力ファイル
*/
*/
/* レコード変換初期化関数呼出し */
mdpinf[1] = MDP_init( &cvinf
[1] );
:
/**************************************
* テキスト(JEF)→テキスト(EUC)
の変換処理
**************************************/
rtncod = MDP_conv( mdpinf[0], indata, inlen, outdata,
&outlen );
:
/**************************************
* データ(SJIS)→CSV形式(EUC)の
変換処理
***************************************/
rtncod =MDP_conv( mdpinf[1], indata, inlen, outdata,
&outlen );
:
/
**************************************
* レコード変換後処理
***************************************/
MDP_fin( mdpinf[0] );
MDP_fin( mdpinf[1] );
:
return(0);
[コンパイル方法]
レコード変換機能は、ダイナミックリンクライブラリ(DLL)として提供されます。コンパイル時にF5AVPREC.
libをリンクして下さい。
[注 意]
− 本機能は、マルチスレッドアプリケーションには対応していません。
− 本機能は、CharsetMGRがインストールされている場合、コード変換規則はCharsetMGRに従います。
CharsetMGRが使用できない場合には、内部の変換テーブルを使用します。
− 本ライブラリは、32ビット以外のアプリケーションとリンクして使用することはできません。
mdportg
[名 前]
mdportg − データ定義文解析ファイル生成コマンド
[形 式]
mdportg -if infile [-of outfile]
-itype { data ¦ rdb } -otype { text ¦ data ¦ rdb } [-oracle ¦ -informix ¦ -rdb2 ]
[機能説明]
mdportgは、指定されたデータ定義文と変換対象のファイル/レコードの形式を解析し、レコード変換機能(関数
群)で使用可能なデータ定義文解析ファイルを生成します。
以下にmdportgのオプションと意味を説明します。
表1 MDPORTGのオプション説明
-if infile
解析の対象となるデータ定義文ファイル名を指定します。データ定義文の入力形式に
ついては データ定義文の入力形式 を参照して下さい。
-of outfile
データ定義文解析ファイル名を指定します。データ定義文解析ファイルは-ifで指定さ
れたデータ定義文ファイルを解析して作成されます。このオプションを省略した場合
は、 infile.mdg に出力されます。既にファイルが存在している場合は上書きされま
す。
-itype { data ¦ rdb }
入力対象となるレコードまたはファイルの形式を指定します。形式については表2を
参照して下さい。
rdbをcsvと指定することも可能です。
出力対象となるレコードまたはファイルの形式を指定します。形式については表2を
-otype { text ¦ data ¦ rdb } 参照して下さい。
rdbをcsvと指定することも可能です。
CSV形式ファイル/レコードを扱う場合に、各RDBでサポートされるローダ形式を指
-oracle ¦ -informix ¦ -rdb2 定します。-itypeまたは-otypeにrdbを指定したときのみ有効です。ローダ形式につい
ては、表3を参照して下さい。
表2 ファイル形式の意味
テキストファイル
文字キャラクタのみで構成されたファイルを示します。コード体系によりレコード
の単位が異なり、ASCII系コードでは改行コードをレコードの区切りとします。
data
データファイル
バイナリのデータファイルを示します。汎用機上の順ファイルを、ファイル転送や
外部媒体経由で移入したファイルが、この形式に該当します。レコードフォーマッ
トは、データ定義文により識別されます。
rdb
(csv)
データ項目間に区切り文字を挿入した、CSV形式のテキストファイルを示します。
CSV形式ファイル CSVの形式は各RDBのローダ形式に従います。EUCまたはシフトJISコードの文字
キャラクタのみで構成され、改行コードをレコードの区切りとします。
text 表3 ローダ形式
-rdb2
-oracle
-informix
SymfoWAREのローダ形式
文字型データは引用符( )でくくられます。データ中の引用符1文字( )を表す場合、引用符を2
つ並べます。ヌル文字列は引用符でくくりません。
ORACLEのローダ形式
文字型データは引用符( )でくくられます。データ中の引用符1文字( )を表す場合、引用符を2
つ並べます。ヌル文字列も引用符でくくります。
INFORMIXのローダ形式
文字型データは引用符( )でくくられません。
[注意]
mdportgで指定できる変換パスは以下のとおりです。
出力形式
text
rdb
data
text
−
−
−
rdb
−
−
○
data
○
○
○
入力形式
※text変換の場合(text → text)はデータ定義文解析ファイルは不要です。
MDP_init()
[名 前]
MDP_init − レコード変換関数の初期化を行います。
[形 式]
#include MDPcomm.h
char *MDP_init(struct MDPcvinf *inf);
[機能説明]
本関数は、infが指すコード変換指示に従って、コード変換テーブルの展開/レイアウト情報の展開を行い、コード
変換情報として、その先頭アドレスを復帰値として返します。MDPcvinf構造体宣言とその設定内容は以下の通り
です。
struct MDPcvinf { /* コード変換/ レ
コード変換機能(ライブラリ) 変換指示構造体 */
char
icode[8];
int
itype;
char
int
int
int
int
int
int
int
int
int
int
int
int
char
char
char
/* 入力文字コード
ocode[8];
/* 出力文字コード
*/
otype;
/* 出力ファイル形式
*/
irecdlm;
orecdlm;
isomode;
ikana;
okana;
irecfm;
orecfm;
shift;
/* 入力ファイル形式
*/
/* 入力レコード改行コード */
/* 出力レコード改行コード */
/* ISO/エミュレータモード */
/* 入力半角カナモード
*/
/* 入力レコード属性
*/
/* 出力半角カナモード
/* 出力レコード属性
*/
*/
/* シフトコード除去モード */
cs3mode;
/* コードセット3モード
*/
amend2;
/* 2バイト系代替文字
*/
amend1;
delimita;
noblc;
filler[2];
/* 1バイト系代替文字
/* CSV区切り文字
*/
*/
/* 後続空白削除抑止フラグ */
/* 未使用
/* メッセージ出力MAX 件数
int
msgmax;
int
msgcont;
char
*msgfname;
char
*usrfname; /* 利用者定義ファイル名
char
*layfname;
} ;
*/
*/
*/
/* MSG 上限到達処理続行 */
/* メッセージ出力先ファイ
*/
ル名
*/
/* データ定義文解析ファイ
*/
ル
icode、ocodeはそれぞれ入力文字コード、出力文字コードのキーワードを指定します。
sjis
ASCIIおよびシフトJISコード
euc
ASCIIおよびEUCコード
jef
EBCDICおよびJEFコード
jefall
EBCDICおよびJEFコード(相手側のコード体系がUnicodeの時のみ指定可能)
Unicode
UCS2形式、UTF8形式およびCOBOLのUnicode形式
他社コー
ド
EBCDICおよび他社日本語コード
Unicodeには、以下の指定を行うことができます。
ucs2b
UCS2形式(ビックエンディアン)
ucs2l
UCS2形式(リトルエンディアン)
utf8
UTF8形式
cobub
COBOLファイルのUnicode形式、日本語項目は、UCS2(ビックエンディア
ン)、英数字項目または英数字日本語混在項目は、UTF8として扱います
cobul
COBOLファイルのUnicode形式、日本語項目は、UCS2(リトルエンディア
ン)、英数字項目または英数字日本語混在項目は、UTF8として扱います
他社コードには、以下の指定を行うことができます。
ibm
keis
jipse
jipsj
EBCDICおよびIBM漢字コード
EBCDICおよび日立KEISコード
EBCDICおよび日本電気JIPS(E)コード
EBCDICおよび日本電気JIPS(J)コード
表1 データファイル変換で指定できる変換パス
data
otype ocode
text
sjis euc jef jefall Unicode
他
sjis euc ucs2b ucs2l utf8 sjis euc ucs2b ucs2l utf8
社
sjis
○
○
○
−
−
○ ○
○
−
−
−
○
○
−
−
−
euc
○
○
○
−
−
○ ○
○
−
−
−
○
○
−
−
−
jef
○
○
−
−
○
− ○
○
○
○
○
○
○
○
○
○
jefall
−
−
−
−
○
− −
−
○
○
○
−
−
○
○
○
itype icode
data
rdb
rdb
Unicode
−
−
○
○
−
− −
−
−
−
−
−
−
−
−
−
他社
○
○
−
−
−
− ○
○
−
−
−
○
○
−
−
−
sjis
○
○
○
−
−
○ −
−
−
−
−
−
−
−
−
−
euc
○
○
○
−
−
○ −
−
−
−
−
−
−
−
−
−
ucs2b
−
−
○
○
−
− −
−
−
−
−
−
−
−
−
−
ucs2l
−
−
○
○
−
− −
−
−
−
−
−
−
−
−
−
utf8
−
−
○
○
−
− −
−
−
−
−
−
−
−
−
−
○ : 指定可 − : 指定不可
備考. 表1に載っていない指定はできない
表中のUnicodeは、ucs2b, ucs2l, utf8, cobub, cobulのコードを示す
表2 テキストモード変換で指定できる変換パス
otype ocode
sjis
euc
jef
jefall
ucs2b
ucs2l
utf8
他社
sjis
○
○
○
-
-
-
-
○
euc
○
○
○
-
-
-
-
○
jef
○
○
-
-
○
○
○
-
jefall
-
-
-
-
○
○
○
-
ucs2b
-
-
○
○
-
-
-
-
ucs2l
-
-
○
○
-
-
-
-
utf8
-
-
○
○
-
-
-
-
他社
○
○
-
-
-
-
-
-
jef
○
○
-
-
-
-
-
-
他社
○
○
-
-
-
-
-
-
itype icode
text
COBOLソース
text
○ : 指定可 − : 指定不可
備考. 表2に載っていない指定はできない
itype、otypeはそれぞれ入力レコード形式、出力レコード形式を以下の値の中から指定します。
TYPE_T テキスト
TYPE_D データ
TYPE_S COBOL固定長ソース
TYPE_O CSV形式(oracle)
TYPE_R CSV形式(RDB2,SymfoWARE)
TYPE_I
CSV形式(INFORMIX)
irecdlm、orecdlmはそれぞれ入力レコード区切文字、出力レコード区切文字を以下の値の中から指定します。
DLM_CRLF 復帰改行(CRLF)
DLM_LF
改行(LF)
DLM_NO
コードによる区切りなし
isomodeはEBCDIC系のコード変換において、以下の値の中から指定します。なお、EBCDIC系以外のコード変換で
は無視されます。
ISO
ISOモード変換
EMU エミュレータモード変換
icodeまたはocodeに、EBCDIC系コード(jef,他社コード)を指定していない場合は意味を持ちません。
ISOを指定した場合は、富士通のISOコード変換仕様に基づいた変換が行われます。EMU指定との相違点を表3に示
します。
表3 EMUとISOオペランドの相違点
変換パス
変換前
変換後
EMU指定
ISO指定
!
!
]
|
]
!
!
!
|
]
|
!
(英小文字)
(英大文字)
(変換エラー)
EBCDIC→ASCII
ASCII→EBCDIC
ikanaは入力の半角カナモードを以下の値の中から指定します。
(入力がEUCコードの時のみ指定が有効になります。)
KANA_E EUCコード体系のコードセット2(2バイト/1文字)
KANA_J JIS8コード(1バイト/1文字)
okanaは出力の半角カナモードを以下の値の中から指定します。
(出力がEUCコードの時のみ指定が有効になります。)
KANA_E EUCコード体系のコードセット2で出力(2バイト/1文字)
KANA_J JIS8コードで出力(1バイト/1文字)
KANA_G EUCコード体系のコードセット1(全角カナ)で出力
irecfmは入力ファイルのレコード属性を指定します。入力ファイル形式がデータファイル、EBCDIC系コードのテ
キストファイルの場合に有効となります。それ以外のASCII系コードのテキストファイルや、RDB型ローダファイ
ルでは、改行コードをレコードの区切りとするため無効となります。省略した場合は固定長レコードとして扱われ
ます。
RECFM_F 固定長レコード
orecfmは出力ファイルのレコード属性を指定します。出力ファイルがEBCDIC系コードのテキストファイル、デー
タファイルの場合に有効となります。ASCII系コードのテキストファイルやRDB型ローダファイルの出力では、改
行コードをレコードの区切りとするため無効となります。省略した場合は固定長レコードとして扱われます。
RECFM_F
固定長レコード
shiftはEBCDIC系コードからのデータ変換において、入力レコード上の制御コードの扱いを以下の値の中から指定
します。
SHIFT_L シフトコード除去後 左詰め
SHIFT_B シフトコードを空白(0x20)へ置換
cs3modeは変換後または変換元のEUCコードとして、コードセット3(3バイト/1文字表現)の使用する/しない
を指定します。
入力EUCデータにコードセット3の文字が存在すれば、変換エラーとなり2バイト系代替文字コードで出力され、
変換結果EUCデータにコードセット3の文字が存在すれば、2バイト系代替文字コードで出力されます。ただし、
利用者定義変換テーブルにEUCコードセット3を定義した場合は、定義内容が有効となり代替文字コードで出力さ
れません。
NOCS3_BLK コードセット3を使用しません。
NOCS3_EUC コードセット3を使用します。
amend1は1バイト系コードの変換において、変換不可能な文字が発生した場合、代替文字として出力する文字の
文字コードを指定します。省略した場合、 _ (アンダーバー)を代替文字とします。
amend2は2バイト系コードの変換において、変換不可能な文字が発生した場合、代替文字として出力する文字の
文字コードを指定します。省略した場合、 ■ (塗りつぶした四角)を代替文字とします。
delimitaはCSV形式の項目間の区切り文字を指定します。以下の値の中から指定して下さい。なお、指定する文字
は1バイトの1文字でなければなりません。
省略(NULL)
文字
, (カンマ)を区切り文字として使用します。
指定文字を区切り文字として使用します。
noblcは変換後の文字項目データについて、後続空白を削除する/しないを指定します。なお出力レコード形式が
データの場合、出力領域長に満たない部分は、出力属性に応じた空白文字を埋めますのでこの指定は意味をもちま
せん。
BLC_ON
後続空白を削除して出力します。
BLC_OFF 後続空白は削除せずに出力します。
msgmaxはコード変換時に発生した警告メッセージの出力件数の上限値を以下の値の中から指定します。
MSG_NO 警告メッセージを出力しません。
0
警告メッセージを無制限に出力します。
1∼9999 指定された値を警告メッセージの出力の上限値とします。
msgcontはコード変換時に発生した警告メッセージの件数がmsgmaxで指定した値に達した時、その後の変換処理
を続行するか否かを指定します。省略した場合、MSGCONT_ONとして扱います。
MSGCONT_ON
処理を続行します。
MSGCONT_OFF 処理を中断します。
msgfnameはコード変換時に発生した警告メッセージの出力先ファイル名を指定します。NULLが指定された場
合、警告メッセージは出力されません。指定されたファイル名が存在しない場合は新規に作成し、既に存在する場
合は上書きします。
usrfnameは利用者定義変換テーブルファイル名を指定してください。利用者定義ファイルを使用しない場合は
NULLを指定してください。指定されたファイル名が存在しない場合は異常終了します。
利用者定義テーブルに関する詳細はTF-MDPORTオンラインマニュアルの"MDPORT変換指示 利用者定義変換テー
ブル"を参照して下さい。
layfnameはmdportgコマンドにより出力されたデータ定義文解析ファイル名を指定してください。データファイル
変換以外の場合は無視されます。指定されたファイル名が存在しない場合は異常終了します。
[復帰値]
正常終了の場合確保されたコード変換情報のアドレスが返されます。異常終了の場合はNULLが返されます。
[注 意]
MDP_init()関数で初期化を行わずに、他のレコード変換関数を呼び出さないで下さい。動作は保証されません。
MDP_init()関数での初期化は1度だけ行ってください。重複して初期化を行う必要はありません。
mdportgコマンドとMDP_init()関数で指定する入出力ファイル形式は同じにして下さい。異なる場合、動作は保証
されません。
MDP_conv()
[名 前]
MDP_conv − 文字コードの変換/レコード形式の変換を行います。
[形 式]
#include MDPcomm.h
int MDP_conv(char *inf,char *irec,int ireclen,char *orec,int *oreclen);
[機能説明]
本関数は、MDP_init()の復帰値として返されたコード変換情報infに従い、入力レコードirecをireclenバイトだけ読
み込み、変換結果、変換後バイト長をそれぞれorec、oreclenに返します。なお、orecの領域はireclen、文字コー
ド、ファイルタイプなどを考慮したうえで呼び出し元で十分な領域を確保し、そのバイト長をoreclenに設定して
下さい。
[復帰値]
正常終了時はMDPORT_OKを、異常終了時はMDPORT_NGを返します。
[注 意]
− 入出力レコードが行区切り文字ありの場合、それぞれのレコード長は、行区切文字長を含むものとします。
− 入出力レコード長に指定できる最大レコード長は、32767バイトまでです。
− 入出力レコードが可変長レコードの場合、RDW(Record Descriptor Word)は含まないものとします。
MDP_fin()
[名 前]
MDP_fin − レコード変換関数の終了処理を行います。
[形 式]
#include MDPcomm.h
int MDP_fin(char *inf);
[機能説明]
本関数は、MDP_init()の復帰値として返されたコード変換情報infの領域を解放し、レコード変換の後処理を行いま
す。
[復帰値]
正常終了時はMDPORT_OKを、異常終了時はMDPORT_NGを返します。
MDP_stat()
[名 前]
MDP_stat − 詳細情報を取得します。
[形 式]
#include MDPcomm.h
int MDP_stat(int para, char *inf);
[機能説明]
本関数は、MDP_init()の復帰値として返されたコード変換情報infからparaに従った情報を取得します。paraに以下
の値を指定することができます。
MDP_WARNUM ワーニング発生件数を取得します。
MDP_ERROR
本関数を呼び出す直前のMDP_conv()または、MDP_fin()で発生したエラー詳細コードを取得し
ます。
[復帰値]
paraに指定された値により以下の値が返されます。
MDP_WARNUM 0 : ワーニングは発生していません。
正の整
: ワーニング発生件数
数
MDP_ERROR
0 : 正常終了しました。
MDPERR_PARA : 引数に誤りがあります。
MDPERR_CONV : コード変換エラー(ワーニング)が発生しました。
MDPERR_ENV : 環境に誤りがあります。
その他の数値 : システムのerrnoです。
[注 意]
− 本関数では、MDP_init()の詳細情報は取得できません。MDP_init()の詳細情報はメッセージの出力先ファイル
または、標準エラー出力を参照して下さい。
− 本関数によって返されるエラー詳細情報は、直前に呼び出されたレコード変換関数についてのみの情報です。
対象とするレコード変換関数から復帰後、本関数を呼び出す前に、他のシステムコールや関数を呼び出すとエラー
詳細情報は無効になります。
データ定義文の入力形式
レコード変換機能でデータファイル変換を行う際必要となる、レコードフォーマットを定義するデータ定義文の入力形式について
説明します。
データ定義文で指定するレコードフォーマットは、入力または出力となるデータファイル(およびCOBOLファイル)に対して定義
します。例えば、入力CSV形式ファイルで、出力がデータファイルの場合は、出力するデータファイルのレイアウトに対して定義
します。CSV形式ファイルの場合、項目ごとの領域長は可変のため、データ定義文で定義した項目長は意味を持ちません。
データ定義文はCOBOL言語のデータ記述項のイメージで記述します。
[テキスト構成]
データ定義文を記述するソースは、可変長のテキストファイルに定義し、1行の長さは251バイト以下です。図1にデータ定義文の
正書法を示します。
データ定義文中のタブは、1つの空白としてみなされます。そのため、見かけ上のカラム位置と解析上のカラム位置とは異なりま
す。
各々の領域の意味は以下のとおりです。
一連番号領域(1∼6カラム)
行番号を記述します。ただし、コード変換/ レコード変換機能(ライブラリ)では意味を持たないため、空白でも構いません。
この領域に ###### の記述があると、その行はフォーマット指示制御文とみなします。フォーマット指示制御文について
は、 フォーマット指示制御文によるマルチフォーマット定義 を参照してください。
特殊指示(7カラム)
特殊指示のある文のデータフィールド定義について、特殊なフォーマット編集指示を行うことができます。表1に指定可能な特殊
指示を示します。
表1 指定可能な特殊指示
指定文字
意 味
ブランク 特殊な意味はもたない。
*
注記行であることを示す。
I
指定行のデータフィールド文は、出力側レコードに空白文字の項目を追加することを示す。
D
指定行のデータフィールド文は、出力側レコードに出力しないことを示す。
U
L
U 指定行のデータフィールド文の領域長を、後続の特殊指示 L で指定された領域長に変更して出力することを示す。
N
指定行のデータフィールド文は、一切のコード変換を行わないことを示す。
S
出力側がCSV形式ファイルの場合、入力フィールドのデータが全て空白なら、1バイトの空白を出力することを示す。
データフィールド定義(8カラム以降)
データ定義文のフィールド定義を、COBOL文法のデータ記述項に従って記述します。後述のCOBOL文法規約に反する記述がされて
いる場合の動作は、保障できません。
図1 データ定義文の正書法
[記述形式]
レベル番号 {FILLER ¦ データ名−1} [{PICTURE ¦ PIC} 文字列]
[[USAGE IS] {BINARY ¦ COMPUTATIONAL ¦ COMP ¦ COMPUTATIONAL-3 ¦ COMP-3 ¦ DISPLAY ¦ PACKEDDECIMAL }]
[OCCURS 整数−1 TIMES].
備考
下線のある語は、必要語を示します。その機能を用いるときは必ず記述が必要です。下線のない語は補助語であり省略しても構い
ません。日本語の語は、利用者の与える語、定数等を示します。
{ }で囲まれている部分は、その括弧中の一つを明に指定しなければなりません。
[ ]で囲まれている部分は、省略することができます。 [構文規則・一般規則] − コード変換/ レコード変換機能(ライブラリ)では、厳密な構文規則の検査を行っていないため、記述形式に反する記述をされた
場合の動作は保証できない場合があります。
− 記述形式にないCOBOL言語のキーワードがあると、コード変換/ レコード変換機能(ライブラリ)では構文検査により異常終了し
ます。
− 可変長レコードの場合のRDWは、このレコード定義上に含めてはいけません。
− 可変長レコードを定義する場合は、最大レコード長分のデータフィールド定義を行う必要があります。
− 先頭のデータフィールド定義文のレベル番号は、01で集団項目属性でなければなりません。その後に続く文は、それに従属さ
れるデータフィールド定義でなくてはなりません。01レベルのデータフィールド定義は先頭の一文でしか記述できません。
− データフィールドに対する、データ項目名またはFILLER句は省略できません。
− USAGE句で指定される数値項目の表現形式は、領域長の大きさとコード変換仕様に影響されます。
− OCCURS句の整数-1に指定できる値は1∼32767の範囲で、OCCURS句の入れ子は7階層まで記述できます。
− 各種データフィールド文の指定における内部表現仕様等は、 データファイル変換での変換仕様 を参照してください。
− PICTURE句で指定できる文字列の種類を表2に示します。英字、英数字編集、数字編集、日本語編集、ブールのデータ種類は指
定できません。なお、文字列 M については規格外の拡張仕様です。
− PICTURE句で英数字項目を指定した場合、PICTURE文字列 X で表現されるけた数はバイト数と一致します。EUCコードでの
コードセット2の1バイト系JISカタカナは、MDPcvinf構造体の指定(ikanaまたはokana)により、内部表現をJIS8コード(1
バイト/文字)またはEUCコード(2バイト/文字)として扱うことができます。Unicodeの場合、UCS2コード(2バイト/文
字)、UTF8コード(1バイト/文字)として扱います。
− PICTURE句で日本語項目を指定した場合、内部表現は1文字あたり2バイトとなります。JEF,IBM,KEISコードでの日本語切
替制御コード(シフトイン/シフトアウト)は、項目内に存在してはいけません。Unicodeの場合、UCS2コード(2バイト/文
字)、UTF8コード(3バイト/文字)になります。
− PICTURE句で英数字日本語混在項目を指定した場合、PICTURE文字列 M で表現されるけた数はバイト数と一致します。
EBCDIC系コード(JEF、他社)およびJISコードでは、混在項目内に日本語切替制御コードが存在していないと、日本語文字と
して識別されません。また、EUCコードではコマンドオペランドの指定と関係なく、半角カナは2バイト/文字となります。
− EUCコードでのコードセット3の文字(JEF拡張、利用者定義文字)は、日本語項目ではcobolEUC(注)表現(2バイト/文
字)となり、英数字日本語混在項目では3バイト/文字となります。
(注) cobolEUCは、COBOL独自の日本語内部表現形式16ビットワイドキャラクタを示します。
表2 PICTURE句で指定可能な文字列
文字列
意 味
備 考
X
英数字項目
1バイト系コードのみの項目(半角カナ含む)
日本語文字は認識されない
N
日本語項目
日本語文字のみの項目(2バイト系コード)
M
英数字日本語混在項目 1/2バイト系コードが混在している項目
9
数字項目
数字編集項目は指定できない
S
符号
数字項目にて符号の有無を指定
V
小数点
数字項目にて小数点の位置を指定
[特殊指示における構文規則・一般規則]
7カラム目に指定できる特殊指示において、以下の規則に従っていなければなりません。また、データ定義文の記述例を図2に示し
ます。
●項目追加指示(Ⅰ)
− 本指定がされている項目は、入力レコード上にはなく、出力レコードへの編集の際に新たに領域を追加することを示します。
追加領域には空白文字が埋められます。
− 集団項目に対して、本指定はできません。
− PICTURE文字列は X で定義されていなければなりません。
− 出力がCSV形式ファイルの場合は、領域長を指定しても後続ブランクが削除されるため、ヌル文字列として出力されます。
●項目削除指示(D)
− 本指定がされている項目は、入力レコード上から出力レコードへの編集の際に、出力しないことを示します。
− 集団項目に対して、本指定はできません。
− 入力がCSV形式ファイルの場合は、入力項目が固定の領域長を持っていないため、データ定義文のけた数は意味を持ちません。
削除対象となる項目名全体が有効になります。
●領域長変更指示(U,L)
− U 指定の行には変更されるデータフィールド定義を行い、直後の L 指定の行にはデータフィールド定義欄に変更後の領域長の
みを指定します。
− U 指定の行には、集団項目は定義できません。
− U 指定の行のPICTURE文字列は、 X , M または N で定義されていなければなりません。
− U 指定行の直後に、 L 指定行がなくてはなりません。
− L 指定の行には、変更後領域バイト長を0∼32767の範囲で、外部10進数で記述します。
− U 指定を最終行に記述し、 L 指定を行なっていない場合は U は無視されます。
− 入力がCSV形式ファイルの場合は、 U 指定行の領域長は意味がなく、 L 指定行の領域長で出力されます。出力がCSV形式ファ
イルの場合は、 L 指定行の領域長は意味がなく、 U 指定行の領域の変換結果がCSV形式に編集されて出力されます。
●無変換指示(N)
− 本指定がされている領域は、一切の変換処理を行わずに、入力項目の領域をそのまま出力することを示します。ただし、出力
がCSV形式又はテキストファイルの場合は空白で出力されます。
− 集団項目に対しての N 指定は無視されます。
− 入力がCSV形式ファイルの場合は、一切の変換処理を行わずに、入力項目の内容をそのまま出力しますが、出力長に満たない場
合には空白が埋められます。
●ヌル抑制指示(S)
− 本指定は、入力ファイル形式がデータファイル(-itype data)かつ出力ファイル形式がCSV形式ファイル(-otype rdb)の場合
に有効となります。それ以外では本指定があっても意味を持ちません。また、-informix指定の場合も意味を持ちません。
− 本指定がされている入力領域が全て空白文字の場合、出力データは1バイトの空白を引用符( )でくくって出力します。この
機能は、対象項目の出力をヌルとしたくない場合に有効です。
− 集団項目および数値項目に対しての S 指定は無視されます。
図2 データ定義文の使用列
フォーマット指示制御文によるマルチフォーマット定義
データファイル変換において、1ファイル上のレコードフォーマットが、レコードによって変わる(複数のレコードフォーマットが
存在する)ものを、本書ではマルチフォーマットと呼びます。ここでは、フォーマット指示制御文を使用したマルチフォーマットの
対応方法について説明します。
フォーマット指示制御文では、定義したレコードフォーマットが、どのような条件のレコードについて適用するかを指示します。な
お、この機能を応用することにより、入力ファイルに対するレコード抽出も行うことができます。
フォーマット指示制御文は、データ定義文上に記述して定義します。フォーマット指示制御文は、1つのデータ定義文ファイル上の
フォーマットの区切りとなります。
フォーマット指示制御文によるマルチフォーマット定義の例を、図2に示します。
[テキスト構成]
図1 フォーマット指示制御文の書式
制御文識別領域
データ定義文のデータフィールド定義行と区別するため、この領域には ###### を指定し、フォーマット指
示制御文であることを定義します。
フォーマット指示文 フォーマット指示を記述します。
[記述形式]
{ SELECT フィールド位置, フィールド長, { EQ ¦ NOT }, 最小比較値[,最大比較値] OTHER }
[構文規則・一般規則]
− フォーマット指示制御文で定義するフォーマットは、次のフォーマット指示制御文の出現、またはデータ定義文の末尾まで有効
となります。
− フォーマット指示制御文を使用する場合、データ定義文の1行目は、フォーマット指示制御文である必要があります。また、
フォーマット指示制御文の次の行は、01レベルのデータフィールド定義でなければなりません。
− SELECT文では、フォーマットを適用させるレコードの条件を定義します。OTHER文では、SELECT文に該当しないレコードに対
してのフォーマットを定義します。
− 1つのデータ定義文に対して、SELECT文を複数定義することにより、フォーマットは最大99まで定義できます。OTHER文の
フォーマット定義は複数定義できません。
− 複数のSELECT文がある場合、SELECT文の記述順でフォーマット判定が行われます。最初に条件に合致したSELECT文でフォー
マットで処理され、それ以降のSELECT文条件判定は行われません。
− どのSELECT文にも合致しない場合、OTHER文のフォーマットで処理されます。OTHER文が定義されていないと、そのレコード
は変換処理の対象とならず、出力もされません。(この機能により、レコード抽出が可能です)
− レコード長が固定長の場合、レコードフォーマットで定義されている全てのレコード長は、同じでなければなりません。
− SELECT文では、レコード中の固定の領域について内容判定を行います。SELECT文で記述する内容は以下のとおりです。
フィールド位置 条件判定を行う領域の開始位置を、先頭を1としたレコード内相対バイト数で指定します。
フィールド長
条件判定を行う領域の長さを、バイト数で指定します。
EQまたはNOT
EQでは、領域の内容が次の比較値に合致すれば真とします。NOTでは、比較値に合致しなければ真とします。
最小比較値
領域の内容に対する最小比較値を指定します。指定方法は、文字列をニ重引用符( )で囲む方法と、16進数によ
る直定数指定があります。指定した内容は、フィールド長と合致しなければなりません。
最大比較値
領域の内容に対する最大比較値を指定します。指定方法は、最小比較値と同じです。最大比較値を省略した場合、
最小比較値と同じ値で条件判定されます。
− フォーマット指示制御文では、レコード相対番号による条件指定はできません。(1件目と2件目以降でフォーマットが異なる場
合、等)
図2 フォーマット指示制御文によるマルチフォーマット定義の例
実行環境
コード変換/レコード変換機能(ライブラリ)を実行するにあたっての環境について、説明します。
参照される環境変数
コード変換/ レコード変換機能(ライブラリ)では表1に示す環境変数により、動作や変換仕様等を制御することが
できます。
表1 コード変換/ レコード変換機能(ライブラリ)で参照される環境変数
環境変数
TMPDIR
省略時の値
意味
環境変数TEMPまたはWindows
ディレクトリ
作業用ディレクトリを設定します。
メッセージ出力先ファイルの最大サイズをキロバイ
ト単位で指定します。
(1∼2000までの範囲で指定します。)
MDPORT_MFSZ(注) 1000
注)コード変換/レコード変換機能(ライブラリ)を使用する場合に指定します。
変換仕様に係わる環境変数
コード変換/ レコード変換機能(ライブラリ)の他社コード以外のコード変換で、CharsetMGRが正常にインストー
ルされている場合、本機能のコード変換規則はCharsetMGRに従います。表2に示す環境変数を設定することによ
り、入出力で定義したコード体系が変換(iconv_open関数)のどのキーワードに該当させるかを指定します。
各キーワードの意味やコード変換の詳細は、CharsetMGRに添付されている「ICONV.TXT」ファイルやヘルプファ
イルを参照して下さい。
表2 CharsetMGRに関連する環境変数
コード系
設定できる値
(下線は省略時)
環境変数
JEF
MDPORT_ICONV_JEF
Jefkana
Jefcorekana
Jefaugkana
EUC
MDPORT_ICONV_EUC
U90
S90
シフトJIS MDPORT_ICONV_SJIS
sjis
sjisdos
sjisms
JIS
jiskana
jiskana7
jiskana8
MDPORT_ICONV_JIS
JISコードの場合の、JISローマ字とJISカタカナの切り替えの方法が、環境変数MDPORT_ICONV_JISの値により、
以下のように変わります。
jiskana
JISローマ字とJISカタカナの切り替えをエスケープシーケンスで行います。
jiskana8 1バイトコード(半角・英数カナ)を、8ビットコードで扱います。
jiskana7 JISローマ字とJISカタカナの切り替えをSI/SOで行います。
1バイト系コードの変換仕様
EBCDIC(カナ)コードとEUC/シフトJISコード間での変換では、一部の記号文字において代替文字への変換が発生
します。表1に1バイト系コード変換による代替文字を示します。また、EUCからEBCDICの変換では、英小文字は
英大文字に代替変換します(MDPcvinf構造体のisomodがEMUの場合)。
シフトJISコードとEUCコード間での変換では、規則的な変換を行うため、代替文字は発生しません。ただし、
コード定義の違いにより ¥ は \ となります。
表1 EBCDIC(カナ)-EUCコード変換による代替文字
EBCDIC(カナ)
EUC
¦ (4F)
£(4A)
! (5A)
¬(5F)
EMU
](5D)
[(5B)
!(21)
^(5E)
ISO
!(21)
[(5B)
](5D)
^(5E)
EUCコードのカナ文字は、MDPcvinf構造体のikana、okanaによりコードセット2またはJIS8コードとして扱われ
ます。
文字として定義されていない1バイト系コードが変換時に発見された場合は、変換不能文字としMDPcvinf構造体
のamend1に指定されたコードで出力されます。
レコード変換機能では、EBCDIC(カナ)コードのみを扱うため、シフトJISとJEF(または他社コード)間の変換
では、以下の変換仕様となります。
EBCDIC(カナ)→ASCII
英大→英大、カナ→カナ
ASCII→EBCDIC(カナ)
英大→英大、英小→英大、カナ→カナ
2バイト系コードの変換仕様
コード変換/ レコード変換機能(ライブラリ)での各種2バイト系コード(日本語コード)の変換仕様を以下に示し
ます。変換仕様で、規則的な変換とされているものは、JISコードに準拠されたコードの並びで対応させた変換の
ことを示します。
EUCコード
U90またはS90コードを前提としています。
U90コード独自の拡張文字やJEF拡張漢字の表示・印刷には、U90提供のフォントを使用する必要があります。そ
のため、一般的なPC上のtelnet等では、U90フォントは表示することができません。
JEFコード
コード変換/ レコード変換機能(ライブラリ)でのJEFコードは、84JEFを対象としています。
CharsetMGR機能にもとづく字体重視変換/領域重視変換の切替えは、環境変数の指定により行うことができま
す。字体重視変換(環境変数省略時)では、EUCへ変換すると83JISコード体系と不規則な対応の文字
( 塚 , 靴 , 槙 ,等の旧字体)はコードセット3(3バイト/文字)へ変換されます。
JEF拡張漢字/JEF拡張非漢字の変換では、対応するEUCコードは1文字につき2バイトあるいは3バイト(コード
セット3)になります。ただし、MDPcvinf構造体のcs3modeにNOCS3_EUCを指定した場合は、コードセット3の
文字は変換不能になり、2バイト系代替文字コード(MDPcvinf構造体のamend2に指定されたコード)で出力さ
れます。
一部のJEF拡張非漢字(ローマ数字, (株) , (有) , Tel ,等のOASYS拡張文字)の変換では、U90コードの
コードセット1(2バイト/文字)の94区に対応づけされます。
シフトJISコード
83年JIS準拠のシフトJISを対象にしています。
JISコード
90年版のJISコードを対象にしています。
IBM日本語コード
IBM日本語コードは、83JIS対応版を対象としています。変換対象文字はJIS規格の範囲です。
ただし、以下のJIS範囲外の文字については、EUCへ変換するとU90コードセット1の拡張文字との変換を行いま
す。
| (株) No. Tel 【ローマ数字】 i ∼ x
I∼X
日立KEISコード
日立KEISコードでは、83JISに準拠した規則的な変換を行います。83JISコード体系の範囲外については変換でき
ません。
日本電気JIPSコード
JIPS(E),JIPS(J)コードでは、83JISに準拠した規則的な変換を行います。83JISコード体系の範囲外については変
換できません。 各コード体系における日本語コードの検出は、以下のように行われます。
シフトコードによる検出(入力コードがJEF,他社コードの場合)
テキストモード変換およびデータファイル変換の混在項目では、日本語コードへの切替制御コード(シフトコー
ド)が出現した場合に日本語コードであることを検出します。データファイル変換の日本語項目では、無条件に
日本語コードとして扱われます。
コードの値による検出(入力コードがEUC、シフトJISコードの場合)
文字コードの先頭バイトにより1バイト系または2バイト系コードかの判断をし、日本語コードであることを検
出します。
シフトJISコードの場合は、0x81∼0x9F,0xE0∼0xFCで始まるコードを日本語コードとし、EUCコードの場合は
0xA1以上で始まるコードを日本語コードとします。また、EUCコードの場合、0x8Fで始まるコードはコードセッ
ト3の日本語コードとみなします。
テキストモードの変換
テキストモードでの変換では、入出力のコード体系によって変換仕様が異なります。
EBCDIC系からASCII系への変換
ASCII系からASCII系への変換
入力レコードの後続ブランクは削られて出力されます。
図1にASCII系コードへのテキストモード変換(出力レコード区切文字に改行コードを指定)を示します。
ASCII系からEBCDIC系への変換
MDP_conv()関数の*oreclenに指定されたレコード長で出力されます。レコード長を超える部分は削られ、満たない部分
には空白が埋められます。
図1 ASCII系コードへのテキストモード変換
COBOLソース型の変換
COBOL仕様において固定ソース形式の73∼80カラムがプログラム識別領域のため、EUCコードの可変ソース形式
やSJISコードへ出力する際にプログラム識別領域を取り除きます。図1にCOBOLソース型の変換を示します。
図1 COBOLソース型の変換
データファイル変換での変換仕様
データファイル変換を行う場合、データ定義文を元にコード変換を行います。各データ項目属性ごとの変換仕様に
ついて説明します。
数値項目における変換仕様
EBCDICコード系とASCIIコード系との数値項目では、外部10進(USAGE DISPLAY指定)の数値データ属性におい
て内部表現が異なります。表1に外部10進におけるEBCDIC/ASCIIコード系の相違を示します。
表1 外部10進におけるEBCDIC/ASCIIコード系の相違
外部10進での相違点
内部表現(16進)
EBCDICコード
ASCIIコード
ゾーンビット (4ビッ
ト)
F
3
正の符号ビット (4ビット)
C
4
負の符号ビット (4ビット)
D
5
英数字項目における変換仕様
データ定義文にてPICTURE句を X で定義した英数字項目では、内容が全て1バイト系文字(半角カナ含む)とし
てみなされ、1バイト系コード変換が行われます。
EBCDIC系またはシフトJISからEUCコードへ変換する場合、1バイト系JISカタカナが存在すると、1文字あたりの
バイト長が異なるため、変換後データ長が変動し出力領域を溢れる場合があります。溢れを防ぐ方法としては、
MDPcvinf構造体のokanaにKANA_Jを指定するか、データ定義文特殊指示 U , L により出力領域長を増やす方法
があります。
JISコードの場合、半角カタカナが存在すると切り替え制御コードがあるため、変換後データ長が変動し出力領域
を溢れる場合があります。溢れを防ぐ方法としては、データ定義文特殊指示 U , L により出力領域長を増やすか、
環境変数MDPORT_ICONV_JISに"jiskana8"を指定する方法があります。
日本語項目における変換仕様
データ定義文にてPICTURE句を N で"定義した日本語項目では、内容が全て日本語文字としてみなされ、2バイト
系コード変換が行われます。
JISとJEFおよび他社コードでは、本領域中に日本語切替制御コードが存在してはいけません。EUCコードのコード
セット3の文字は、cobolEUC(2バイト/文字)で表現されます。
英数字日本語混在項目における変換仕様
データ定義文にてPICTURE句を M で定義した英数字日本語混在項目では、不定に英数字/日本語文字が混在してい
るとみなされ、各コード系の変換が行われます。
JIS/ASCIIとJEFおよび他社コードでは、日本語切替制御コードが存在しないと、日本語文字の開始/終了の認識が
できません。
JIS/EBCDICの場合、混在項目は扱えません。英数字項目とみなし処理します。
EUCコードでは、コードセット3の文字は、3バイト/文字で表現され、1バイト系JISカタカナはMDPcvinf構造体
のikana、okanaの指定に関係なく、2バイト/文字で表現されます。
文字項目での領域長変動による文字の切捨て・埋め込み
データファイル変換で英数字項目、日本語項目、混在項目のコード変換を行うと、1項目の入力データ長と出力
データ長が異なる場合があります。領域長が変動される要因は以下のとおりです。
− EBCDIC/JIS8コードのカナ(1バイト/文字)とEUCコードのカナ(2バイト/文字)間での変換
− JIS/JEF/他社コードとEUC/シフトJISコードとの変換では、日本語切替制御コードの分、相違がある
− JEFコードの拡張漢字/拡張非漢字(2バイト/文字)とEUCコードのコードセット3(3バイト/文字)間での
変換
− JEFコードとUnicode間での変換
− 利用者定義変換テーブルにて、相手側コード2バイトに対し、EUCコードのコードセット3(3バイト)の変
換を指定
− 利用者定義変換テーブルにて、Unicode2バイトに対し、JEFコード(1バイト)の変換を指定
− データ定義文特殊指示の領域長変更(7カラム目に U , L 指示)
また、入力ファイル形式がCSV形式の場合は、区切り文字で区切られた範囲の文字列を入力長とするため、入力項
目の長さは可変となります。出力ファイル形式がCSV形式の場合は、出力領域長が可変となります。
これらの要素が発生し、変換後データ長と出力領域長が一致しない場合、領域長の調整を行います。変換後データ
フィールド長が出力フィールド領域に満たない場合は空白(日本語項目では2バイト系の空白文字、それ以外では
1バイト系の空白文字)が埋め込まれ、超える場合は文字単位に切り捨てられて、警告エラーが出力されます。表
1に領域長変動の例を示します。
表1 領域長変動の例
EBCDICカナ(1バイト/文字)
アイウエオ : 5バイト
⇒
EUCコードセット2カナ(2バイト/文字)
アイウエオ : 10バイト
EBCDIC + JEF混在(シフトコードあり)
AB#あいうえお#DE : 16バイト
(#は日本語切替制御コードを意味する)
⇒
EUC 1バイト/日本語混在
ABあいうえおDE : 14バイト
JEF 拡張漢字(2バイト/文字)
■■ : 4バイト
⇒
EUC コードセット3 JEF拡張(3バイト/文字)
■■ : 6バイト
- Unicode変換での文字の切捨て・埋め込み
データ定義文においてX項目の領域長に奇数を指定した場合、UCS2(Big,Little)に変換すると1バイト分満たない、
または溢れます。その1バイト分の領域には、それぞれ半角空白の1バイト目(Big:00 20、Little:20 00)を埋めま
す。
また、N項目をUTF8に変換すると、出力の領域長により1バイト分満たない、または溢れる場合があります。そ
の1バイト分の領域には、全角空白の1バイト目(E3 80 80)を埋めます。また指定した領域長によっては2バイト
満たない、または溢れます。その場合は全角空白の先頭2バイト(E3 80 80)を埋めます。
CSV形式ファイルの変換
CSV形式ファイルでは、全てのデータ属性をキャラクタで表現します。CSV形式ファイルとデータファイルとの変
換仕様について説明します。
データファイルからCSV形式ファイルへの変換
データ定義文の各データ項目属性にしたがい、項目ごとに以下の変換が行われます。
文字属性
データ定義文の英数字・日本語・混在項目が対象となります。
コード変換後、項目単位で後続のブランクが削除され、-rdb2または-oracleオペランドや指定の場合、項目の前後
に引用符( )が付加されます。項目の内容が全て空白の場合はヌルデータとなり、-rdb2では引用符付加されず、oracleでは引用符が二つ並ぶことになります。
出力としてヌルを抑制したい場合には、データ定義文特殊指示のヌル抑制(7カラム目に S 指示)を行うことによ
り、入力内容が全て空白の場合、1文字の空白を出力することができます。
例: -rdb2,-oracleオペランド指定
数値属性
数値属性からキャラクタへの変換後、整数部十の位以上の先行ゼロおよび小数部の後続ゼロは削除されます。小
数部のあるデータは小数点が付加されます。符号つきの項目は、 + または - の符号文字を、データの先頭に付加
します。
例:
編集された個々のデータ項目間には、MDPcvinf構造体宣言のdelimitaで指定された区切り文字が挿入され、レ
コードの末尾には改行コードが付加されて出力されます。図1に例を示します。
なお、EUC形式のCSV形式ファイルへ変換した結果、RDBで対応していないコードセット3の文字や、ローダ制御
記号が、出力データ上に出現する場合がありますので、RDBへのロード時には注意が必要です。
図1 CSV形式ファイルへの変換例
CSV形式ファイルからデータファイルへの変換
1行を1レコードとみなし、MDPcvinf構造体宣言のdelimitaで指定された区切り文字が項目間の区切りとして分離
します。データ定義文の各データ項目属性にしたがい、項目ごとに以下の変換が行われます。
文字属性
CSV形式からデータファイル変換の場合は、コード変換後データ長が出力領域長に満たないと項目属性にあわせた
空白文字が充填され、超える場合は文字単位で切り捨てられて警告エラーが出力されます。
-rdb2または-oracle指定で、項目の先頭に引用符( )がある場合、文字列のくくり記号とみなされ、次の引用符の
出現までを1つの文字項目として扱います。
数値属性
CSV形式からデータファイル変換の場合は、キャラクタから数値属性への変換を行いますが、入力項目がヌル文字
列の場合はゼロとして扱われ、符号つきの項目で入力文字列の前後に + または - の符号文字が付加されていない
場合は正数として扱います。また、変換処理は小数点を基準に行われますが、整数部または小数部のけた溢れが
発生する場合は、溢れ分を削除し警告エラーを出力します。
データ定義文の項目数に対し、入力データの項目数が多い場合、はみ出し分は削除され警告エラーが出力されま
す。入力データの項目数がデータ定義文の項目数に満たない場合、不足分の項目は各データ属性にしたがい、空
白文字または値ゼロが充填されます。
データファイルからテキスト型への変換
データファイルからテキスト型への変換仕様は、基本的にはデータファイルからCSV形式への変換仕様と同じで
す。以下の点で異なります。
− 文字・数値属性ともにキャラクタへの変換後、後続ブランク・先行ゼロ削除の処理は行われません。
− 出力側テキストファイルの項目開始位置は、各項目で固定です。よって、フォーマットが固定になり、C言語
等のアプリケーションで扱いやすくなります。
各項目の出力領域長は、データ定義文のPICTURE句で指定したけた数で、以下のように決定され、原則として各
フィールドの開始カラムは全レコード共通となります。
英数字項目・混在項目
PICTURE句 X または M のけた数が、そのまま出力領域のバイト長となります。
日本語項目
PICTURE句 N のけた数を2倍したものが、出力領域のバイト数となります。
数値項目
USAGE句の属性に関係なく、PICTURE句 9 のけた数が、出力領域のバイト長となります。小数点( V )または符
号( S )の指定があれば、出力領域はさらにそれぞれ1バイト加算されます。
特殊指示 U , L 指定の場合
項目属性に関係なく、データ定義文で特殊指示 U , L 指定の項目では、 L 指定の出力領域長となります。
使用例 −コマンド機能[ mdportc ]
ここでは、適用パターンをあげてMDPORT コマンド機能の使用例を説明します。MDPORTは一切の通信機能を
持っていないため、汎用機やUNIX機上の入力ファイルについて、利用者がファイル転送等を利用してWindows上
に持ち込んできたと仮定して説明しています。
− 汎用機上の一般ソースからのテキスト変換
− データファイルからWindows上のCOBOLファイルへ変換
− データファイルからSymfowareローダ型ファイルへの変換(Unicode形式)
− Windows上のCOBOL順ファイルからXMLデータへの変換
− Windows上のRDBローダ型ファイルからデータファイルへの変換
− IBM漢字コードを使用する汎用機上のデータファイルからRDBローダ型ファイルへの変換
汎用機上の一般ソースからのテキスト変換
【要件】
EBCDICおよびJEFコードで記述されている固定長80バイトの一般ソースを、Windows上の
テキストファイルへ変換する。
【フロー図】
【コマンド呼び出し形式】
mdportc -fn SRC -it text -ic jef -il 80 -or v -od crlf
【コマンド形式 −補足】
省略しない呼び出し形式
mdportc -fn SRC -it text -ot text -ic jef -oc sjis -ir f -il 80 -or v -od crlf
−使用する各ファイルの名前を任意に指定したい場合は、-fnの代わりに-i, -oオペランドを使用してくだ
さい。
データファイルからWindows上のCOBOLファイルへ変換
【要件】
EBCDICおよびJEFコードで構成される順編成ファイルを、そのままWindows上COBOLレコード
順ファイルへ変換する。
【フロー図】
【コマンド呼び出し形式】
mdportc -fn AMASTER -it data -ot cblfile -ic jef -il -ol
【コマンド形式 −補足】
省略しない呼び出し形式
mdportc -fn AMASTER -it data -ot cblfile -ob seq -ic jef -oc sjis -ir f -or f -il 69 -ol 69
−使用する各ファイルの名前を任意に指定したい場合は、-fnの代わりに-i, -o, -lオペランドを使用してくださ
い。
−順ファイル以外のCOBOLファイルへ出力する場合は、-obオペランドにより指定してください。
−入力データが富士通機以外の汎用機では、-icに入力データのコード体系を指定してください。
【レイアウト定義例】
COBOL登録集雛型
01 AMASTER-REC.
03 FILLER PIC X(20).
03 FILLER PIC 9(05).
03 FILLER PIC S9(07) PACKED-DECIMAL.
03 AAA-G OCCURS 3.
05 FILLER PIC X(08).
05 FILLER PIC S9(04) BINARY.
03 FILLER PIC X(10).
データファイルからSymfowareローダ型ファイルへの変換(Unicode形式)
【要件】
EBCDICおよびJEFコードで構成される固定長の順編成ファイルを、Windows上のSymfoWARE向
けのローダ型ファイル(UCS2形式)へ変換する。
【フロー図】
【コマンド呼び出し形式】
mdportc -fn AMASTER -it data -ot csv -ic jef -oc unicode -ns -or v -il -od crlf
【コマンド形式 −補足】
省略しない呼び出し形式
mdportc -fn AMASTER -it data -ot csv -p rdb2 -ic jef -oc unicode -u ucs2,little -ns -ir f -or v -il 69 -od crlf
−使用する各ファイルの名前を任意に指定したい場合は、-fnの代わりに-i, -o, -lオペランドを使用してくださ
い。
−UCS2(リトルエンディアン)以外のコードで出力する場合は、-uオペランドにより指定してください。
−Symfoware型ローダ形式以外のCSV形式で出力する場合は、-pオペランド、または、-s, -qオペランドで引用
符、区切文字を指定してください。
【レイアウト定義例】
COBOL登録集雛型
01 AMASTER-REC.
03 FILLER PIC X(20).
03 FILLER PIC 9(05).
03 FILLER PIC S9(07) PACKED-DECIMAL.
03 AAA-G OCCURS 3.
05 FILLER PIC X(08).
05 FILLER PIC S9(04) BINARY.
03 FILLER PIC X(10).
Windows上のCOBOL順ファイルからXMLデータへの変換
【要件】
Windows上のCOBOL順編成ファイルから、UTF8形式のXMLデータへ変換する。
※1ファイル/レコード 単位にXMLファイルを出力します。
【フロー図】
【コマンド呼び出し形式】
mdportc -i AMASTER -o *.xml -l AMASTER.lay -it data -ot xml -ic sjis -oc unicode -u utf8 -ns -or v il -od crlf -dv -xt
【コマンド形式 −補足】
省略しない呼び出し形式
mdportc -i AMASTER -o *.xml -l AMASTER.lay -it data -ot xml -ic sjis -oc unicode -u utf8 -ns -ir f or v -il 69 -od crlf -dv -xt
−入力ファイルを複数ファイルに分割して出力する場合は、-dvオペランドを指定して、-oオペラ
ンドにワイルドカード指定[*.xmlのように]を行ってください。
−UTF8以外のコードで出力する場合は、-oc -uオペランドを指定してください。XML出力はsjis,
euc, jis, utf8をサポートしています。
−ユーザ作成によるXMLテンプレートを先頭に付加したい場合は、-xtオペランドにファイルを指
定してください。指定しない場合はMDPORT標準のテンプレートを付加します。
【レイアウト定義例】
COBOL登録集雛型
01 AMASTER-REC.
03 FILLER PIC X(20).
03 FILLER PIC 9(05).
03 FILLER PIC S9(07) PACKED-DECIMAL.
03 AAA-G OCCURS 3.
05 FILLER PIC X(08).
05 FILLER PIC S9(04) BINARY.
03 FILLER PIC X(10).
Windows上のRDBローダ型ファイルからデータファイルへの変換
【要件】
Windows上のRDBローダ型ファイル(SJIS)から、EBCDICおよびJEFコードで構成される
固定長のデータファイルへ変換する。
【フロー図】
【コマンド呼び出し形式】
mdportc -fn AMASTER -it csv -ot data -oc jef -ir v -id crlf -ol
【コマンド形式 −補足】
省略しない呼び出し形式
mdportc -fn AMASTER -it csv -ot data -p rdb2 -ic sjis -oc jef -ir v -or f -id crlf -ol 69
−使用する各ファイルの名前を任意に指定したい場合は、-fnの代わりに-i, -o, -lオペランドを使用し
てください。
−Symfoware型ローダ形式以外のCSV形式で入力にする場合は、-pオペランド、または、-s, -qオペ
ランドで引用符、区切文字を指定してください。
【レイアウト定義例】
COBOL登録集雛型
01 AMASTER-REC.
03 FILLER PIC X(20).
03 FILLER PIC 9(05).
03 FILLER PIC S9(07) PACKED-DECIMAL.
03 AAA-G OCCURS 3.
05 FILLER PIC X(08).
05 FILLER PIC S9(04) BINARY.
03 FILLER PIC X(10).
IBM漢字コードを使用する汎用機上のデータファイルからRDBローダ型ファイルへの変換
【要件】
他社汎用機上のデータファイルから Microsoft(R) Excel が標準サポートするCSV形式へ変換します。
変換結果をイベントログに出力します。
【フロー図】
【コマンド呼び出し形式】
mdportc -fn IMASTER -it data -ot csv -p excel -ic IBM -or v -il -od crlf -ev
【コマンド形式 −補足】
省略しない呼び出し形式
mdportc -fn IMASTER -it data -ot csv -p excel -ic IBM -oc sjis -ir f -or v -il 69 -od crlf -ev
−使用する各ファイルの名前を任意に指定したい場合は、-fnの代わりに-i, -o, -lオペランドを使用してください。
−-iオペランドでファイル名を指定しない場合は標準入力となり、-oオペランドでファイル名を指定しない場合は標準
出力となります。
−IBM以外の他社コードを入力とする場合は、KEIS[EBCDICおよび日立KEISコード]、JIPE[EBCDICおよび日本電気JIPS
(E)コード]、 JIPJ[EBCDICおよび日本電気JIPS(J)コード] または、AVX[EBCDICおよび日本電気AVX日本語コード]のい
ずれかの指定が可能です。
−-evオペランド指定がない場合は、イベントログへ出力しません。 -lgオペランドでログファイル名を指定してくだ
さい。
【レイアウト定義例】
COBOL登録集雛型
01 AMASTER-REC.
03 FILLER PIC X(20).
03 FILLER PIC 9(05).
03 FILLER PIC S9(07) PACKED-DECIMAL.
03 AAA-G OCCURS 3.
05 FILLER PIC X(08).
05 FILLER PIC S9(04) BINARY.
03 FILLER PIC X(10).
【イベントログ出力例】
付録 コード変換/レコード変換機能
ここでは、コード変換/レコード変換機能に関する関数、及び、エラーメッセージの説明をします。
関数形式
コード/レコード変換機能で利用可能な関数の形式について説明しま
す。
− コード変換機能
− レコード変換機能
出力メッセージ形式
コード/レコード変換機能が出力するメッセージについて説明します。
− メッセージ形式
− 警告メッセージ
【コード変換/レコード変換機能の関数形式】
[名 前]
関数名とその機能の概要を以下の形式で示します。
関数名 − 機能の概要
[形 式]
C言語での記述形式を示します。通常の字体は、示されているとおりに記述することを示しています。斜体の字体
の引数は、置き換えて記述することを示しています。
[機能説明]
関数の機能などについて説明します。
[復帰値]
関数の復帰値について説明します。
[変換仕様]
コード変換時の仕様について説明します。
[注 意]
関数を使用するにあたっての注意事項を記述します。
【コード変換/レコード変換機能の出力メッセージ形式】
コード/レコード変換機能は msgfilenameで指定した出力先に警告メッセージを出力します。
コード変換機能
コード変換機能は、各種コード変換を行う関数群を提供します。
コード変換機能の各関数仕様について説明します。
MDCOINIT
使用するコード変換関数を宣言し、コード変換の初期処理を行います。
MDCOFREE
コード変換の終了処理を行います。
MDCOSTAT
詳細エラー情報を取得します。
MDCOEBEU
EBCDICコードからEUC(半角・英数カナ)コードに変換します。
MDCOEBJ7
EBCDICコードからJIS7コードに変換します。
MDCOEBJ8
EBCDICコードからJIS8コードに変換します。
MDCOEUEB
EUC(半角・英数カナ)からEBCDICコードに変換します。
MDCOEUJ7
EUC(半角・英数カナ)コードからJIS7コードに変換します。
MDCOEUJ8
EUC(半角・英数カナ)コードからJIS8コードに変換します。
MDCOEUJE
EUCコードからJEFコードに変換します。
MDCOEUJI
EUCコードからJISコードに変換します。
MDCOEUSJ
EUCコードからシフトJISコードに変換します。
MDCOJ7EB
JIS7コードからEBCDICコードに変換します。
MDCOJ7EU
JIS7コードからEUC(半角・英数カナ)コードに変換します。
MDCOJ7J8
JIS7コードからJIS8コードに変換します。
MDCOJ8EB
JIS8コードからEBCDICコードに変換します。
MDCOJ8EU
JIS8コードからEUCコードに変換します。
MDCOJ8J7
JIS8コードからJIS7コードに変換します。
MDCOJEEU
JEFコードからEUCコードに変換します。
MDCOJEJI
JEFコードからJISコードに変換します。
MDCOJESJ
JEFコードからシフトJISコードに変換します。
MDCOJIEU
JISコードからEUCコードに変換します。
MDCOJIJE
JISコードからJEFコードに変換します。
MDCOJISJ
JISコードからシフトJISコードに変換します。
MDCOSJEU
シフトJISコードからEUCコードに変換します。
MDCOSJJE
シフトJISコードからJEFコードに変換します。
MDCOSJJI
シフトJISコードからJISコードに変換します。
レコード変換機能
レコード変換機能は、レコード単位にコード変換、レコード変換を行う関数群を提供します。
レコード変換機能の各関数仕様およびデータ定義文解析ファイル生成コマンドについて説明します。
mdportg
データ定義文解析ファイル生成コマンド
MDP_init
レコード変換関数の初期化を行います。
MDP_conv
文字コードの変換/レコード形式の変換を行います。
MDP_fin
レコード変換関数の終了処理を行います。
MDP_stat
詳細情報を取得します。
データ定義文解析ファイル生成コマンド[mdportg]のエラーメッセージ
ここでは、コード変換/レコード変換機能で利用するmdportg関数のエラーについて説明します。以下にメッセー
ジ形式を示します。
MDPORT メッセージレベル:メッセージ本文
メッセージレベル
以下に、出力されるメッセージレベルを示します。
(なし)
実行に関して、利用者に通知する確認メッセージです。
error
エラーが発生しだい処理を中断し、コマンドは異常終了します。
warning
軽度のエラーが存在しますが、適当な仮定に従って処理を続行しま
す。
メッセージ本文
メッセージの内容を示します。メッセージによっては2行にわたって出力され、2行めには、メッセージの示す箇
所や詳細情報が示されます。
例 :
MDPORT ERROR : データ定義文に文法上の誤りがあります。
line:5 detail 不当な文字列が存在
このメッセージ例では、データ定義文の5行目に、指定可能キーワード以外の文字列を検出したことを意味して
います。
エラー等が発生した場合は、メッセージ本文中の発生理由をもとに、正しい指定を行う等して再度コマンドを実行
してください。以下に、メッセージ本文の2行めに出力される詳細情報の意味を示します。
line
データ定義文等の入力となるファイルの行番号を示します。
obj
エラーが発生したMDPORTのプログラム名を示します。
file
エラーが発生した時にアクセスを試みたファイル名を示します。
sys
エラーが発生した関数名・システムコール名を示します。
errno
システムコールより通知されたエラーコードを示します。
警告メッセージ
ここでは、警告メッセージの出力形式や意味を説明します。
警告メッセージは、処理続行可能な軽度のエラーが発生した場合に出力されます。警告メッセージの出力先は、以
下のように決定されます。
MDP_init関数内のmsgfnameでコード変換時に発生した警告メッセージの出力先ファイル名を指定しま
− す。NULLが指定された場合、警告メッセージは出力されません。指定されたファイル名が存在しない場合は
新規に作成し、既に存在する場合は上書きします。
警告メッセージは以下の形式で出力されます。
nnnn : 入力ファイルに対する1から始まるレ
nnnn-mmm : 警告メッセージ内容
コード番号
mmmm : 入力レコードに対する1から始まる発
生カラム位置
表1に、出力される警告メッセージ内容とその意味を示します。
表1 警告メッセージ内容と意味
警告メッセージ内容
意味
char:XX
変換不能文字の発生(XXは変換不能なコード)
num error
数値項目における数値例外または符号例外
RDW error
可変長レコードRDW情報に誤り
multi-c error
2バイト系コード値の異常
length over
変換結果が出力長を超えた
item over
入力データの項目数がデータ定義文より多い
警告メッセージは出力時に、1行80バイト以内におさまるように編集されます。以下に、出力の例
を示します。
例:1-10:char:01 1-25:char:09 1-305:num error 1-400:multi-c error
2-404:item over 5-10:char:06 28-404:item over 100-1:char:FF
コマンド機能における制限・注意事項
コマンド機能における制限・注意事項を以下に示します。
- データファイル変換では当コマンドはUNIX版と異なり、COPYライブラリを直接指定しての変換(COPY句の解
析を同時に行うこと)はできません。
あらかじめレイアウト定義機能(F5AVPLAY.EXEまたはMDPORTLC.EXE)で、レイアウト定義ファイルを作成し
て下さい。
- 変換指示ファイルを指定した変換において、指定された変換指示ファイルがCharsetMGRを使用して変換する
よう定義されている場合、-jオペランドを指定しなくてもCharsetMGR変換となります。
- コマンド機能の変換仕様はTF-MDPORTオンラインマニュアルに記載されている変換仕様に従います。コード
/レコード変換機能の変換仕様とは異なる部分があります。
- MDPORTを複数起動した場合の動作は保証していません。
- 4GBを超えるログファイルへのログ出力を行うことはできません。また、入力ファイルにワイルドカードを指
定し、出力ファイルが単一で追加書きとなる場合も同様に、4GBを超える出力ファイルに追加書きすることは
できません。
コード変換/レコード変換機能における制限・注意事項
コード変換/レコード変換機能における制限・注意事項を以下に示します。
- CharsetMGRがインストールされている場合は、CharsetMGRを利用したコード変換を行います。
同一コードでの変換やCharsetMGRで対応していないコード変換パスでは利用しません。
CharsetMGRの動作環境の設定に関する詳細は"実行環境"を参照して下さい。
- 変換不能文字がある場合、MDPcvinf構造体宣言のmsgfnameに指定したファイルに変換元コードが16進形式
で出力されます。
Unicodeの場合は種別(UCS2/UTF8)やエンディアンにかかわらず、UCS2ビッグエンディアンで出力されます。
- 利用者変換定義テーブルでUnicodeを指定する場合は、コード系名にUCS2を指定し文字コードは、UCS2ビッ
グエンディアン4桁で指定します。
UnicodeからJEFへの変換の場合、利用者変換定義テーブルの指定によって、X項目にJEF2バイト文字やN項目
にJEF1バイト文字が設定される場合があります。 この場合変換エラーの扱いになります。
利用者変換定義テーブルに関する詳細はTF-MDPORTオンラインマニュアルの"MDPORT変換指示 利用者定義
変換テーブル"を参照して下さい。
- レコード変換機能ではUnicodeファイルのSignatureを認識しません。ユーザアプリケーションで認識し、レ
コードデータのみをレコード変換機能に渡して下さい。 またUnicode変換後のSignatureの付与についてもユー
ザアプリケーションで必要に応じて行なって下さい。
- UCS2(ビックエンディアン)の入力レコード長を奇数バイトにした場合、半端な最後の1バイトは変換エラーと
しますが、 UCS2(リトルエンディアン)の場合は端数バイトを無視しエラーとしていません。
- MDPcomm.hの定義文において、当マニュアルに説明がない項目については、本バージョンでは意味を持ちま
せん。
変換仕様 文字コードの変換
コード変換と形式変換パス
MDPORTでは以下のコード体系の変換パスに対応しています。その他については他社コードの変換を参照してください。
各ファイル形式によってサポートするコード体系は異なるので注意してください。
入力/出力 シフトJIS EUC JEF JEF英小 JIS Unicode その他
シフトJIS
○
◎
◎
◎
▲
◎
△
EUC
◎
○
◎
◎
▲
▲
×
JEF
◎
◎
○
×
▲
◎
×
JEF英小
◎
◎
×
○
▲
▲
×
JIS
▲
▲
▲
▲
×
×
×
Unicode
◎
▲
◎
▲
×
×
×
その他
△
×
×
×
×
×
×
○ : 変換可能
◎ : CharsetMGRによる変換も可能
▲ : CharsetMGRが必要
△ : 他社コード変換機能
× : 未サポート
MDPORTでは以下のファイル形式の変換パスに対応しています。
入力/出力
一般ファイル COBOLファイル CSVファイル XMLファイル テキストファイル
一般ファイル
○
○
○
○
×
COBOLファイル
○
○
○
○
×
CSVファイル
○
○
×
○
×
XMLファイル
○
○
○
○
×
テキストファイル
×
×
×
×
○
○ : 変換可能
× : 未サポート
MDPORTでは各ファイル形式に対して以下のコード体系をサポートしています。
形式/コード
シフトJIS EUC JIS JEF JEF英小 UCS2 UTF8 その他
一般ファイル
○
○
○
○
○
○
○
○
COBOLファイル
○
○
○
○
×
▲
▲
×
CSVファイル
○
○
△
×
×
○
○
×
XMLファイル
○
○
○
×
×
×
○
×
テキストファイル
○
○
○
○
○
○
○
○
○ : 変換可能
△ : 出力のみサポート
▲ : X項目(UTF8形式)、N項目(UCS2形式)で格納
× : 未サポート
1バイト系コード変換
MDPORTで対応している1バイト系コードとして、ASCIIコード系(シフトJIS、EUC等)とEBCDICコード系(JEF)があります。
EBCDIC(ASCII)には対応していません。
MDPORTでは同一コード系であっても、文字以外のコードはエラーとなります。ただし、ASCIIコード系どうしでのタブ文字
(0x09)や、日本語シフト制御コード(SI/SO)はエラーとしません。
EBCDICコード系とASCIIコード系の文字変換において、特に一般のコード変換仕様と異なる点を以下に示します。
EBCDIC-ASCIIコード変換による代替文字
EBCDIC
|(4F)
£(4A)
!(5A)
¬(5F)
ASCII
](5D)
[(5B)
!(21)
^(5E)
※一般のコード変換ではASCIIの"["と"!"が入れ替わっています。
英文字/カナの変換
EBCDIC(カナ)→ASCII
英大→英大、カナ→カナ
ASCII→EBCDIC(カナ)
英大→英大、英小→英大、カナ→カナ
EBCDIC(英小文字)→ASCII
英大→英大、英小→英小
ASCII→EBCDIC(英小文字)
英大→英大、英小→英小、カナ→変換エラー
2バイト系コード変換
MDPORTでの2バイト系コードの変換は、以下のいづれかの方法で行われます。
標準変換
MDPORT内部で算術式によりコード変換を行います。算術式では各コード体系がJISコード準拠とみなして1∼94区のコー
ド配置を変えるだけで、95区以降のコード変換はエラーとなり拡張文字や利用者定義文字は変換できません。また、JEF
コードは 78JIS準拠のため、一部の文字( 83JISでの改定文字)について同一の文字へ変換されません。正しい文字の変換を
行うなら、JEFコードを扱う場合はCharsetMGR変換を行うようにしてください。
MDPORTインストールフォルダの「sample」フォルダ配下の「JEF_SJIS.cnv」(利用者定義テーブル)を活用することに
よって、JEF(78JIS準拠)からシフトJISコードへ正しく変換することが可能です。
Unicodeの変換において、シフトJIS←→Unicode間の変換のみCharsetMGRを使用せずに変換が可能です。
この場合、Win32 APIを使用した変換が行われます。
CharsetMGR変換
CharsetMGRを使用してiconv変換を行います。この変換では、厳密な文字の対応付けを実現し、 . →CharsetMGR
CharsetMGRによる外字連携を行うことができます。CharsetMGRを使用するには、変換指示
→変換指示ウィザード
ウィザードにて指定し、CharsetMGR環境設定にてiconvキーワードを指定します。
→CharsetMGR環境設定
なお、1バイト系コードの変換ではCharsetMGRは使用されません。
日本語コードの検出について
シフトJISコード
-
EUCコード
-
JEFコード
-
文字コードの先頭バイトにより1バイト系または2バイト系コードかの判断
をし、日本語コードであることを検出します。0x81∼0x9F,0xE0∼0xFCで
始まるコードを日本語コードとします。
文字コードの先頭バイトにより1バイト系または2バイト系コードかの判断
をし、日本語コードであることを検出します。0xA1以上で始まるコードを日
本語コードとします。また、EUCコードの場合、0x8Fで始まるコードはコー
ドセット3の日本語コードとみなします。
テキストモード変換およびデータファイル変換の混在項目(M項目)では、日
本語コードへの切替制御コード(シフトコード0x28,0x38)が出現した場合
に日本語コードであることを検出します(シフトコード0x29で1バイトコード
に切り替わります)。データファイル変換の日本語項目では、無条件に日本語
コードとして扱われます。
用語集
CharsetMGR
富士通標準コード変換を提供しているWindows上のソフトウェアです。
CharsetMGRのバージョンレベルはV2.1以降(32ビット)でなければなりません。
なお、Unicodeを使用する場合はV2.1L30以降が必要です。
COBOLファイル
Windows上のCOBOLアプリケーションプログラムでアクセスするファイルの形式。ファイル編成として、レ
コード順ファイル、行順ファイル、相対ファイル、索引ファイルがあります。
なお、汎用機上のCOBOLプログラムで作成されたファイルは、コード変換/レコード変換機能(ライブラリ)で
は一般ファイルとして扱います。
COPYライブラリ
COBOL言語で記述された、レコード記述項のCOPY原始文ソースを指しています。
CSV形式
項目間をカンマ(デリミタ文字)で区切った形式のテキストファイルを指します。コード変換/レコード変換機
能(ライブラリ)では区切り文字がカンマ以外でもCSV形式と呼びます。一般的に可変長レコードです。これに
対し、レコード上の相対バイト位置で項目を区切るデータファイルを、データファイル形式と呼びます。
CSV形式であれば、表計算ソフトや各種RDBローダファイル、awk等のユーティリティへと応用することがで
きます。
XML形式
コマンド機能(mdportc)でXMLデータを作成する場合に指定する形式です。レイアウト定義の項目名をタグ、
属性としてXMLデータを作成できます。
Signature
Unicodeファイルが、UCS2(リトルエンディアン)・UCS2(ビッグエンディアン)・UTF8のどれなのかを識別す
るためのコードです。ファイルの先頭に付加されます。
データ定義文ファイル
レコード変換機能(ライブラリ)で、入力または出力のファイル形式がデータファイルの場合に使用します。
データファイルのレコードフォーマットを、COBOL文法のデータレコード記述を使用して記述したテキスト
ファイルで定義します。COBOL文法は、コード変換/レコード変換機能(ライブラリ)でサポートしている
ANSI'85規定範囲内で記述します。
データ定義文解析ファイル
データ定義文解析ファイル生成コマンドにより作成されるファイルです。レコード変換機能(ライブラリ)によ
るデータ変換では必須となります。
変換指示ファイル
コマンド機能(mdportc)の変換指示により指定された情報を格納するファイルで、拡張子は「.mdp」です。変
換指示ファイルはMDPORT本体機能で作成します。
利用者定義変換テーブル
利用者定義文字(外字)や拡張漢字/非漢字を任意の文字へ変換するための、コードの対応づけを行うテーブル
ファイルです。
レイアウト定義ファイル
レイアウト定義機能により作成されるファイルで、拡張子は「.lay」です。データファイル変換では必須とな
ります。
バッチモードでの変換 ログ出力
ログファイル出力
. ログファイルはバッチモードで実行した場合に作成されるテキストファイルです。ログファイルの格納先およびファイル . →環境設定
名は環境設定により指定します。
ログファイルへの出力は、既存のログファイルがあれば追加書きとなり、存在しなければ自動作成されます。
バッチモードでは、正常終了した場合でも常にログファイルへの出力が行われます。
ログファイル出力例 (Mdport.log)
2003/07/28 17:39:51[data1.mdp] 変換処理を開始します。
2003/07/28 17:39:52[data1.mdp] 変換処理が正常に終了しました。入力レコード件数:14 出力レコード件数:14 エラー発生件数:2
2003/07/29 22:06:30[xdata1.mdp] 変換処理を開始します。
2003/07/29 22:06:30[xdata1.mdp] ファイルがみつかりません。File: Data2.dat Call:CreateFile,Error:2
イベントログ出力
. イベントログはバッチモードでオペランドに[/v]、コマンド実行時にオペランドに[-ev]を指定して実行した場合、イベントログに実行
時の日付、時間、コマンドのオペランドが出力されます。
オペランドに誤りがあった場合、イベントログは出力されません。
オペランドにカンマ","がある場合は、空白に置き換えられます。
イベントログ出力
例
2003/07/31 18:10:23[] /b data1.mdp /i input.dat /o output.dat /f /v
使用方法 利用者定義変換テーブル
利用者定義変換テーブルにより、利用者定義文字(外字)や拡張文字の変換仕様を任意に指 . →変換指示ウィザード
定することができます。
→他社コード変換機能
利用者定義文字(外字)や拡張漢字・非漢字を任意の文字コードに変換するには、以下の方
法があります。
- CharsetMGRの文字コード変換表に対応させるコードを定義する。(推奨)
変換指示ウィザードにて[CharsetMGRを使用する]をチェックします。他社コード変
換機能を利用する場合は指定できません。
- MDPORTの利用者定義変換テーブルを使用する。
利用者定義変換テーブルの書式
利用者定義変換テーブルはテキストファイルとしてメモ帳等を使用して作成します。
利用者定義変換テーブルは、コード系定義文とそれに従属する1つ以上のコード対応定義
データで構成されています。それぞれは、行の1カラム目の内容( # または空白)で識別さ
れます。1カラム目が * の場合は注釈行とみなされます。
[コード系定義文] # コード系名1 コード系名2
- 1カラム目には # を指定します。
- コード系名は4文字以内の文字列で、以下のように指定します。
文字コード体系
コード系名
シフトJISコード
SJIS
EUCコード
EUC
JEFコード
JEF(カナ)、JEFA(英小文字)
JISコード
JIS
Unicode
UCS2
その他
コードID
- コード系名1とコード系名2に同じコードを指定することもできます。その場合、
以降のコード対応定義データは、変換元:変換先の順序で記述します。
[コード対応定義データ] 文字コード1:文字コード2
- 1カラム目には空白を指定し、文字コード1と文字コード2の間にコロン( : )を指定
します。途中に空白があってはいけません。
- 文字コードは16進で2桁または4桁で指定します。EUCコードの場合、G3文字
は 8F を付けて6桁で指定し、G2(カナ)文字は 8E を付けずに2桁で指定します。
Unicodeの場合、UCS2ビッグエンディアンで4桁で指定します。
- 文字コードに NO を指定すると、対応するコードがないとみなされます。
- 同一の変換元コードに対して変換規則が複数存在する場合は、最後に記述されて
いる指定が有効となります。
利用者定義変換テーブル定義例
* JEF-シフトJIS間での変換
# JEF SJIS
47C9:92CB
00:5F
5B:NO
* シフトJIS-EUC間での変換
# SJIS EUC
EB40:F7A1
EB41:8FA1A1
【雛型利用者定義テーブル】
MDPORTの[sample]ディレクトリ配下に以下のファイルが格納されています。
ファイル名:JEF_SJIS.cnv
JEF→SJIS変換で、字体重視変換+縮退変換が行なえます。
詳細はファイル内のコメント文を参照してください。
【参考情報 −利用者定義文字の領域】
文字コード
JEF
EUC(U90)
EUC(S90)
R90(sjisdos)
シフトJIS(sjisms)
Unicode
80∼A0
上位バイト
DD∼FD
F5∼FE
F0∼F9
F0∼F9
E0∼F8
(コード範囲)
A1∼FE
A1∼FE
A1∼FE
40∼FC
40∼FC
00∼FF
下位バイト
文字数
3102
3102
940
1880
1880
6400
EUC(U90)の利用者定義領域はG3領域です。したがって上位バイトに0x8Fが付きます。
Unicode-JEFフォントを利用する場合、0xF001~0xFFFFはJEF拡張文字の領域に割り当てています。
変換仕様 他社コードの変換
他社コードテーブル変換
他社コード変換機能を使用する場合は、外付けのコードテーブルを参照し、以下の富 . →他社コード変換機
士通以外の他社漢字コードとシフトJISコード間のコード変換を行います。インス
能
トール時に他社コードテーブルを選択していない場合は利用できません。
変換方法は、SIMPLIA/TF-MDPORTの変換指示ウィザードの入出力ファイル情報
(3・4/5)にて、以下の指定を行います。
コード名
コード体系
コードID
IBM漢字コード
その他
IBM
日立KEISコード
その他
KEIS
日本電気JIPS(E/J)コード
その他
日本電気AVX日本語コード
その他
JIPE
JIPJ
AVX
なお、対する相手側のコード体系はシフトJISでなければなりません。
IBM漢字コード
-
IBM日本語コードは、83JIS対応版を対象としています。変換対象文
字はJIS規格の範囲です。
日立KEISコード
-
日立KEISコードでは、83JISに準拠した規則的な変換を行います。
83JISコード体系の範囲外については変換できません。
日本電気JIPS(E/J)コード
-
JIPS(E),JIPS(J)コードでは、83JISに準拠した規則的な変換を行いま
す。83JISコード体系の範囲外については変換できません。 日本電気AVX日本語コード
-
日本電気AVX日本語コードでは、83JISに準拠した規則的な変換を行いま
す。83JISコード体系の範囲外については変換できません。
用語集
*項目名
ポインタ型の項目の場合、項目名の先頭に'*'が付加されます。
レイアウト定義が生成される際、無変換が指定されます。
また、データ形式がデータファイル形式からCSV形式に変更された際にはこの項目の属性は"なし(-)"に変更さ
れます。
@DUMMY
アライメントWORD_ALIGNMENTによる項目間の隙間に対応させた項目です。
レイアウト定義が生成される際、無変換が指定されます。
また、データ形式がデータファイル形式からCSV形式に変更された際にはこの項目の属性は"なし(-)"に変更さ
れます。
CharsetMGR
富士通標準コード変換を提供しているWindows上のソフトウェアです。
CharsetMGRのバージョンレベルはV2.1以降(32ビット)でなければなりません。
なお、Unicodeを使用する場合はV2.1L30以降が必要です。
COBOLファイル
Windows上のCOBOLアプリケーションプログラムでアクセスするファイルの形式。ファイル編成として、レ
コード順ファイル、行順ファイル、相対ファイル、索引ファイルがあります。
なお、汎用機上のCOBOLプログラムで作成されたファイルは、MDPORTでは一般ファイルとして扱います。
COPYライブラリ
COBOL言語で記述された、レコード記述項のCOPY原始文ソースを指しています。
CSV形式
項目間をカンマ(デリミタ文字)で区切った形式のテキストファイルを指します。MDPORTでは区切り文字がカ
ンマ以外でもCSV形式と呼びます。一般的に可変長レコードです。これに対し、レコード上の相対バイト位置
で項目を区切るデータファイルを、データファイル形式と呼びます。
CSV形式であれば、表計算ソフトや各種RDBローダファイル、awk等のユーティリティへと応用することがで
きます。
DTD文
XML文書の要素やデータ構造を定義したもの。DTD( Document Type Definition:文書型定義 )
DDL
RDBMS(リレーショナルデータベース)のテーブルを制御する言語。DDL (Data Definition Languege)
Oracle
Oracle社が開発したリレーショナルデータベース管理システム(RDBMS)。
PowerGEM Plus
クライアント/サーバ環境で資産管理およびツール間との連携を行う、Windows上のソフトウェアです。
RDBMS
リレーショナルデータベースを管理するソフトウェア。1件のデータを複数の項目の集合体として表現し、
データの集合をテーブルと呼ばれる表で表し、ID番号や名前などキーとなる情報を元にデータの結合・抽
出・削除を行う事が出来る。
Relational DataBase Management Systemの略。
signature
Unicodeファイルが、UCS2(リトルエンディアン)・UCS2(ビッグエンディアン)・UTF8のどれなのかを識別す
るためのコードです。ファイルの先頭に付加されます。
SQLServer
マイクロソフト社が開発したリレーショナルデータベース管理システム(RDBMS)。
SymfoWARE
富士通が開発したリレーショナルデータベース管理システム(RDBMS)。
XML形式
MDPORTでXMLデータを作成する場合に指定する形式です。レイアウト定義の項目名をタグ、属性として
XMLデータを作成できます。
一般ファイル
Windows上のCOBOLファイル以外を、MDPORTでは一般ファイルと呼びます。一般ファイルとしては以下の
ものが挙げられます。
- 汎用機やUNIX機上から移入されたバイナリファイル
- 汎用機やUNIX機上へ移出するバイナリファイル
- Windows(DOS)やUNIXで扱うテキストファイル
エンディアン
バイナリ数値の内部形式には以下の2種類があり、マシンやOS、プログラム言語によって形式が異なります。
ビッグエンディアン 低アドレスのバイト位置が上位桁を表す形式です。SPARC等のUNIXマシンではビッ
グエンディアンです。
リトルエンディアン 低アドレスのバイト位置が下位桁を表す形式です。Windows上のプログラムはリトル
エンディアンです。
他社コード変換機能
提供されているコード変換テーブルを使用すると、富士通以外の他社コード体系も扱うことができます。詳
細は「変換仕様:他社コードの変換」を参照して下さい。
項目拡張情報
レイアウト定義の[拡張表示]メニューにより表示される項目情報を示します。
詳細は「レイアウト定義機能:項目情報」を参照して下さい。
マスクデータ
個人情報が含まれているデータを、別の情報に置き換えたデータ。
データファイル形式
レコード上の相対バイト位置で項目を区切るデータファイルの形式を指します。COBOLプログラムで作成さ
れたファイルはこの形式です。これに対し、不定位置で項目間をカンマ(デリミタ文字)で区切った形式をCSV
形式と呼びます。
データファイル変換
複数の項目で構成されたレイアウトを意識した変換モード。一般的にアプリケーションでの処理対象となる
データファイルを変換する場合に指定します。CSV形式ファイルを対象とする場合もデータファイル変換モー
ドを使用します。
テキスト変換
ソース等のテキストファイルを変換するモード。
ヌル表示域
各項目の先頭に付加される2バイトの領域です。この領域の内容が0xFFFF(16進)の場合、その項目はヌルであ
ることを示し、0x0000(16進)の場合はヌルでないことを示します。
変換エラーファイル
変換エラーが発生した場合にエラー情報が格納されるファイルで、拡張子は「.err」です。テキストファイル
の形式で、メモ帳等で内容を参照できます。
変換指示ファイル
MDPORT変換指示により指定された情報を格納するファイルで、拡張子は「.mdp」です。保存した変換指示
ファイルを開くことにより、同じ指定を復元させることができます。
マスタデータファイル
項目名をカンマ区切りで並べたデータファイルのこと。ファイル名は「項目名.csv」。
マスク出力ファイル
マスク処理が施された個人情報が含まれていないデータのこと。
利用者定義変換テーブル
利用者定義文字(外字)や拡張漢字/非漢字を任意の文字へ変換するための、コードの対応づけを行うテーブル
ファイルです。
レイアウト定義ファイル
レイアウト定義機能により作成されるファイルで、拡張子は「.lay」です。データファイル変換では必須とな
ります。
C言語連携機能
C言語連携機能を使用すると、インクルードファイル中の構造体のレイアウトも取り込むことができます。
インクルードファイル
C言語で記述された、構造体定義のヘッダファイルを指しています。
アライメントサイズ
データ領域を割り当てる際、そのコンピュータやアプリケーションが最適に動けるよう、ある値の整数倍の
アドレスに変数や構造体メンバが割り当てられます。そのときのある値というのがアライメントサイズで、
アプリケーションのコンパイル時に指定します。通常1byte、2byte、4byte、8byte、16byteのうちのいずれ
かです。デフォルトは8byteです。
アライメント
プログラムをコンパイルする際、コンパイラはそのコンピュータやアプリケーションが最適に動けるような
位置に構造体のメンバを配置します。そのときは次のような規則が成り立ちます。
次に配置するメンバのデータ型のサイズと指定されたアライメントサイズのうち、小さい方の値の整数倍の
位置に配置する。
また、構造体のサイズ(sizeof()関数で求められる)を決定する際にも、次のような規則が成り立ちます。
構造体のメンバのうち最も大きいデータ型のサイズと、指定されたアライメントサイズのうち、小さい方の
値の整数倍の値が構造体のサイズとなる。
MDPORTではアライメントにより項目(メンバ)間に隙間が発生する場合、@DUMMYという項目を追加して対
応しています。
解析エラーファイル
既存C言語資産の解析エラーが発生した場合にエラー情報が格納されるファイルで、インクルードファイル名
の末尾に「.txt」が付加されたファイル名で作られます。テキストファイルの形式で、メモ帳等で内容を参照
できます。
MDPORT変換指示ウィザード 5/5 (変換仕様・エラー情報)
コード変換仕様の設定
項目
説明
CharsetMGRを使用する CharsetMGRを使用してコード変換する場合にチェックします。
CharsetMGRが正常にインストールされていない場合や、同一コード
での変換、CharsetMGRで対応していないコード変換パスではチェッ
クできません。CharsetMGRに関する動作環境は、[詳細]ボタンで設定
します。
→CharsetMGR
→[CharsetMGR
環境設定]
CharsetMGRの外字連携機能を利用することにより、利用者定義文字
や拡張文字を任意の外字区画等に割り当てたコード変換を行うことが
できます。
入力定義や出力定義の内容を変更すると、チェックは解除されるので
注意してください。
※ Unicodeのコード変換で、この項目がチェックされていない場合は
Win32APIを使用したコード変換が行われます。
(シフトJIS ←→ Unicode 間の変換時のみ。)
同一コードの場合、
変換しない
入力コードと出力コードに同一のコードを指定した場合にのみ、
変換処理を行わないようにします。
異なるコードの場合に指定する事は出来ません。
利用者定義変換テーブル コード変換の際に参照される利用者定義変換テーブルのファイル名を
入力します。利用者定義変換テーブルの形式については、「利用者定
義変換テーブル」を参照してください。
→[同一コード
無変換出力
注意事項・制
限]
→利用者定義変
換テーブル
CharsetMGR機能を利用したコード変換を実施する場合は、当機能を
使用せずCharsetMGRの外字連携機能を使用することを推奨します。
変換エラーに関する情報の設定
項目
説明
変換エラーファイル名
変換エラーファイルのファイル名をフルパス名で指定します。カレン
トフォルダを設定している場合は相対パスでの指定も有効です。
→変換エラー
ファイル
デフォルトでは入力ファイル名の拡張子を「.err」にしたファイル名
となります。
変換エラー出力可能件数 変換エラーファイルへ詳細情報を出力する最大件数を指定します。指
定できる値は1から9999で、デフォルトは100件です。
エラー出力可能件数を
超えても続行
続行方法
チェックボックスがオフの場合、変換処理中に変換エラー出力可能件 →バッチモード
数を超えると、処理を中断するかどうかの問い合わせが発生します。
オンの場合は、「継続方法」の指定に従って処理を続行します。
(バッチモードで起動した場合は、問い合わせは発生せず処理を中断し
ます。)
エラーの出力件数が超えた後でそのまま処理を変換続行する場合の、
変換エラーの出力方法を選択します。
エラー出力可能件数を
継続方法
超えても続行
オン
処理方法
エラー情
報を出力
しなが
エラー情報を出力しながら続行 ら、変換
処理を続
行しま
す。
エラー情報を出力せずに続行
オフ
1カラム系代替コード
2カラム系代替コード
−
エラー情
報を出力
せずに、
変換処理
を続行し
ます。
変換処理
を終了し
ます。
1カラム系文字コード(ANK文字)の変換にエラーが発生した場合に、出
力データとして何の文字へ置き換えるかを16進コードで、Unicode以
外は2桁、Unicodeの時は4桁で指定します。指定は出力側コード体系
でのコードを入力します。Unicodeの時はUCS2ビッグエンディアンで
指定します。
省略されている場合は、出力側コード体系の _ (アンダースコア)とし
ます。
2カラム系文字コード(日本語文字)の変換にエラーが発生した場合に、
出力データとして何の文字へ置き換えるかを16進コード4桁で指定し
ます。指定は出力側コード体系でのコードを入力します。Unicodeの
時はUCS2ビッグエンディアンで指定します。
省略されている場合は、出力側コード体系の ■ (黒い四角文字)としま
す。
MDPORT変換指示ウィザード [CharsetMGR環境設定]ダイアログボックス
CharsetMGRを使用した変換を行う場合、MDPORTのコード変換規則はCharsetMGR(iconv)に従 . →CharsetMGR
います。このダイアログボックスでは、入出力で定義したコード体系がiconv変換(iconv_open関
数)のどのキーワードに該当させるかを指定します。
各キーワードの意味やコード変換の詳細は、CharsetMGRに添付されている「ICONV.TXT」ファ
イルやヘルプファイルを参照してください
画面説明 - MDPORT変換指示 - 環境設定
基本情報
項目
説明
作業用フォルダ
作業用フォルダを指定します。
省略した場合、システムの作業用フォルダ(環境変数TEMPまたはWindowsディレ
クトリ)が使用されます。
バッチ実行時のログファイル バッチモードで実行した時に出力されるログファイルをフルパス名で指定しま
す。
省略した場合、作業用フォルダに Mdport.log のファイル名で作成されます。
変換エラーを表示するビューアプログラム
変換エラーを表示する外部ビューアプログラムをフルパス名で指定します。ワー
ドパッドや各種テキストエディタ等を指定できます。
省略した場合、メモ帳が起動されます。
COBOL
項目
説明
1GB以上のCOBOLファイルを扱う
1GBを超えるサイズのCOBOLファイル(順・行順ファイル)を扱う場合に指定し
ます。
BYTE単位の領域長を扱う
2進項目においてBYTE単位の領域長を扱う場合に指定します。
一般ファイルをCOBOLの仕様で扱う
コード体系がUnicode かつ ファイル形式を一般ファイルと指定した場合、COBOL
の仕様で扱うかどうかを指定します。
- チェックした場合
:COBOLの仕様で扱います。
- チェックを外した場合 :コード体系に依存した形で扱います。
COBOLの仕様では、一部の属性について以下の様なコード体系で表されていま
す。
英数字項目(X-英数字)
混在項目(M-混在)
UTF8
日本語項目(日本語(2バイト系)キャラクタのみの格納形式) UCS2
※チェックボックスがオンの場合、V60L10以前のバージョンとの互換性のある
データを出力します。
(初期値はオンの状態です。)
MDPORT変換指示ウィザード 3・4/5 (入出力ファイル情報)
項目
説明
コード体系
ファイルのコード体系を選択します。「その他」を選択した場合は、コードIDの入力が必要です。
→文字コード
の変換仕様
コードID
他社コード変換機能を使用する場合に指定します。
→他社コード
変換機能
ファイル名
入力または出力ファイル名をフルパスで指定します。カレントフォルダを設定している場合は相対パスで
の指定も有効です。
ファイル形式
キー情報指定
CSV形式の詳細
XML形式の詳細
Unicodeの詳細
(データファイル変換の場合)
一般ファイルまたはCOBOLファイルかを指定します。Windows上のCOBOLファイル以外は一般ファイル
を指定してください。
→一般ファイル
→COBOLファイル
(CSV形式ファイルの場合)
CSV形式に関する情報を指定します。
→CSV形式の詳細
(コード体系がUnicodeの場合)
Unicodeに関する情報を指定します。
→エンディアン
→Signature
(COBOL索引ファイル出力の場合)
索引キーに関する情報を設定します。
→キー情報指定
(XML形式ファイルの場合)
XML形式に関する情報を指定します。
→XML形式の詳細
○:指定可 ×:指定不可 −:未表示
入力
項目
種別
エンディアン
設定値
UCS2
UTF8
Big
Little
シグネチャを省略する
出力
テ
キ
ス
ト
一
般
※1
一
般
※2
順
編
成
行
順
※3
相
対
索
引
C
S
V
○
×
○
×
×
×
×
○
○
○
○
○
×
○
○
○
−
−
−
−
−
−
−
−
X
M
L
※5
テ
キ
ス
ト
一
般
※1
一
般
※2
順
編
成
行
順
※4
相
対
索
引
C
S
V
○
×
○
×
○
×
×
○
×
○
○
○
○
×
○
○
○
×
−
○
×
×
×
×
×
×
○
○
×
○
X
M
L
※6
×
○
※1 COBOL仕様として取り扱う仕様です(*)
※2 選択したコード体系に依存する仕様です(*)
※3 入力が行順ファイルの時は、Signatureに従います。
※4 出力が行順ファイルの時は、エンディアンは指定できず、リトルエンディアンのみになります。
(COBOLの仕様)
※5 入力がXMLの時は、エンコーディング形式が優先されます。(XMLの仕様)
※6 出力がXMLの時は、UTF8形式のみの出力になります。
(*)詳細は、環境設定の「一般ファイルをCOBOLの仕様で扱う」を参照。
シグネチャを省略する Signatureの出力を省略するかを指定します。
チェックしない場合、Unicodeの詳細で指定した形式のSignatureをファイルの先頭に付加します。
(入力ファイルまたはコード体系がUnicode以外の場合は、選択できません。)
レコード属性の指定
レコード属性の指定レコードに関する情報を指定します。一般的には以下のように指定します。
種類
属性
レコードの区切り
データファイル形式
固定長
なし (レイアウト定義と同じレコード長)
Windows(DOS)CSV形式
可変長
改行コード(CR+LF)
Windows(DOS)テキスト
可変長
改行コード(CR+LF)
UNIXテキスト(CSV含む)
可変長
改行コード(LF)
汎用機ソース
固定長
なし (レコード長: 80が多い)
XML形式
可変長
改行コード(CR+LF)
→Signature
ワイルドカードによる指定
入力ファイルにワイルドカードを指定した場合は、出力ファイル名の項目に入力された文字列を拡張子と見なし、入力ファイル名の拡張子
と置き換えたファイル名を出力ファイル名とします。(XML形式の場合、一部を除く)
【例】
入力ファイル名項目 : *.dat
出力ファイル名項目 : .out
↓
検索されたファイル名 : aaa.dat、bbb.dat …
出力ファイル名
: aaa.out、bbb.out …
エラーファイルについて
- 入力ファイルにワイルドカードを指定した場合は、デフォルトのエラーファイル名として "Mdport.err" が設定されます。
- エラーファイルには検索されたすべての入力ファイルのエラーが追加モードで出力されます。
※ エラーファイルが既に存在する場合は、既存のファイルは削除され新たにファイルが作成されます。
- レイアウト定義ファイルは、同じものが利用されます。
- 出力ファイルが既に存在している場合、上書きして良いかどうかを確認するメッセージボックスが表示されます。
※ バッチモードでは、出力ファイルが既に存在している場合、処理は終了されます。
※ /fオプションが指定された場合は、強制的に上書きします。
XML形式のワイルドカード指定について
入力側がXML形式の場合
入力ファイル名項目 : *.xml
出力ファイル名項目 : aaa.dat
↓
検索されたファイル名 : aaa.xml、bbb.xml …
出力ファイル名
: aaa.dat
出力側がXML形式の場合
入力ファイル名項目 : aaa.dat
出力ファイル名項目 : *.xml
↓
入力ファイル名
出力ファイル名
: aaa.dat
: aaa00000.xml、aaa00001.xml、aaa00002.xml …
→XML形式変換における制限・注意事項
同一コード無変換出力機能における制限・注意事項
同一コード無変換出力機能の制限・注意事項を以下に示します。
- 入力領域長>出力領域長の場合、入力データは出力領域長のサイズに切り捨てられます。その際、溢れエラー
は出力されません。
- 入力領域長<出力領域長の場合、余った領域にはNULLが挿入されます。
- 可変長文字項目について
- 入力の場合、有効データ長は入力領域長となります。
- 出力の時、有効データ長は、
・入力形式がDATA形式の時は、入力領域長
・入力形式がCSV形式の時は、NULLの位置までのデータ長
(但し、入力領域長>(出力領域長-2)の場合、入力データは(出力領域長-2)の
サイズに切り捨てられます。その際、溢れエラーは出力されません。
入力領域長<(出力領域長-2)の場合、余った領域にはNULLが挿入されます。)
がそれぞれ指定されます。
- 数値項目に関しては、通常通りの変換を行います。
- XML形式の入出力については、未サポート。
バッチモードでの変換 バッチモードについて
MDPORTでは、変換処理をバッチモードで実行することができます。
バッチモードとは、一切のユーザ介入なしで変換処理を実行することを示します。ま
た、指定によりウィンドウを表示せずにバックグラウンド上で処理を実行させること
もできます。実行結果については、コマンドの復帰値およびログファイル・イベント
ログの内容により確認できます。
なお、バッチモードでの変換には、事前に変換指示ファイルを作成しておく必要があ
ります。
→変換指示ファイル
- 起動方法
- ログ出力の内容
変換中に発生したエラーは、変換エラーファイルへ出力されます。
※バッチモードでMDPORTを複数起動した場合の動作は保証していません。
→変換エラーファイル
→環境設定
MDPORT変換指示ウィザード [索引キー情報設定]ダイアログボックス
COBOL索引ファイルへ出力する場合に、索引キーに関する情報を設定します。
項目
説明
主キー / 副キー1∼4 主キーの位置と長さをセミコロン(;)で区切って指定します。キーが連続した領域でない場
合、同様に並べて指定します。主キーは省略できません。
位置
1から始まるレコード上の相対バイト位置。
キー重複
各キーについて重複ありの場合、チェックします。
長さ
バイト長。
【例】
主キーが1∼5バイト重複なし。副キー1が1から7バイト重複あり。副キー2が5∼7,11∼15バイト重複ありの
ファイルの場合。
キー項目
キー設定内容
重複
主キー:
副キー1:
副キー2:
1;5
1;7
5;3;11;5
なし
あり
あり
MDPORT変換指示ウィザード [CSV詳細設定]ダイアログボックス
CSV形式に関する情報を指定します。
項目
説明
参考設定
各RDBでサポートされる、デフォルトの形式を選択できます。
項目
SymfoWARE
Oracle
INFORMIX
SQL Server
Excel
引用符文字
"
"
なし
なし
"
区切り文字
,
,
,
,
,
引用符文字は2つ
Yes
Yes
No
No
Yes
ヌル文字列も括る
No
Yes
No
No
No
項目名ヘッダ出力
No
No
No
No
Yes
引用符文字 レイアウト定義で引用に Y が指定されている場合の、引用符文字を指定します。
引用符文字として指定可能な文字は「CSV形式で扱える引用符・区切り文字」を参照して下さい。
区切り文字 項目間を区切るための文字を指定します(通常、CSV形式はカンマ)。
区切り文字として指定可能な文字は「CSV形式で扱える引用符・区切り文字」を参照して下さい。
タブ
項目間を区切るための文字として、タブコード(0x09)を指定する場合は、当チェックボックス
をチェックしてください。
区切り文字として指定可能な文字は「CSV形式で扱える引用符・区切り文字」を参照して下さい。
引用符データは2つ並べて表現
データ中に引用符が存在する場合の扱いを指定します。
1つの引用符データは2つの引用符で表現し、文字列項目をくくっている引用符との識別を行う場合
にチェックします。レイアウト定義で引用に Y が指定されている場合のみ有効です。
ヌル文字列も引用符で括って出力(出力側の場合にのみ有効)
ヌルの項目文字列を表現する場合、2つの引用符で表す場合にチェックします。チェックしない場
合、ヌルの項目文字列には引用符は付加されません。
項目名ヘッダを先頭レコードに出力(出力側の場合にのみ有効)
CSV出力レコードの1件目に、項目名の見出しレコードを出力する場合にチェックします。出力され
たCSV形式ファイルを表計算ソフトで使用する場合に便利です。
MDPORT変換指示ウィザード [XML詳細設定]ダイアログボックス
XML形式に関する情報を指定します。
項目
説明
MDPORT標準テンプレートファイルを付加する
コード体系に応じて、MDPORT標準のDTDテンプレートを出力ファイルの先頭に付加する場合に
チェックします。
MDPORT標準のテンプレートファイルとして、出力コード毎に以下の4つを用意しています。
コード
テンプレートファイル名
シフトJIS
SJIS.xml
EUC
EUC.xml
JIS
JIS.xml
Unicode(UTF-8) UTF8.xml
テンプレートファイル名
参照
独自のテンプレートファイル名をフルパスで指定します。カレントフォルダを設定している場合は
相対パスでの指定も有効です。
テンプレートファイルをファイル一覧から選択するダイアログを開きます。
※ テンプレートを付加しない場合は、「MDPORT標準のテンプレートファイルを付加する」がチェックを外し、
テンプレートファイル名を空欄にして下さい。
XML形式変換における制限・注意事項
XML形式変換における制限・注意事項を以下に示します。
- XML形式から他形式への変換は評価用機能です。XMLファイルのサイズが大きい場合(複数レコード/ファイ
ルの構成)、読み込み時にエラーが発生したり、処理性能が劣化します。
- XML形式から他形式への変換において、扱えるコードはShiftJIS範囲内に限られます。ShiftJIS範囲外のコード
を変換する場合、代替文字「・(Midddle Dot)」に変換されます。変換エラーは出力されません。
- 基本的に、Valid XML(正当:DTDを必要とする)ファイルを対象としています。
- Well-formedness XML(適正:DTDを必要としない)ファイルでも構造が明確であるものは変換可能です。
- Fujitsu XML Libraryで読み込むことの出来ないXMLファイルは扱えません。
- レイアウト定義でValid XMLファイルの構造を表現できないXMLファイルの読み込みは出来ません。
バッチモードでの変換 起動方法
バッチモードでの変換実行は、以下のコマンドにて行います。オプションの指定に誤りがあった場合は、メッ
セージボックスにてエラーが表示されます。
コマンドライン形式([]は省略可)
Tfmdp32.exe
/x¦b 変換指示ファイル名(*.mdp)
[/c カレントフォルダ名]
[/i 入力ファイル名]
[/o 出力ファイル名]
[/e 変換エラー出力ファイル]
[/f]
[/v]
パラメータ説明
x 変換指示ファイル名を指定。(実行時に進捗状況インジケータを表示します。)
進行状況インジケータの[中断]ボタンによる、終了中断が可能です。
b 変換指示ファイル名を指定。(ウィンドウを一切表示しません。)
c カレントフォルダ名を指定。
i
入力ファイル名を指定。
o 出力ファイル名を指定。
e 変換エラー出力ファイル名を指定。
f 強制上書きモード。
v ログファイルに出力する内容をイベントログに出力する場合に指定。
注意
- x または b は、どちらか一方を必ず指定しなければなりません。
- x と b は、同時に指定することはできません。
- c,i,o,e が指定された場合、変換指示ファイル中の対応するファイル名に指定されたファイル名が無効になりま
す。
- c,i,o,e オペランドは、それぞれ省略可能で、省略した場合は変換指示ファイルの内容が使用されます。
- i,o オペランドは、ワイルドカードの指定が可能です。ただし、出力ファイル形式がXML形式以外で、o オペ
ランドでワイルドカードを指定した場合には変換結果は保証されません。
(注:空白を含むファイル名を指定する場合は、ファイル名をダブルクォーテーションで囲んで指定してくだ
さい)
- i オペランドにワイルドカードが指定された場合、o オペランドの指定文字列を拡張子と見なし、入力ファイ
ル名の拡張子と置き換えたファイル名を、出力ファイルとします。
- i,o オペランド以外にはワイルドカードは使えません。
- o オペランドで指定したファイルが既に存在している場合、処理を中断します。
- f オペランドが指定されている場合は出力ファイルが既に存在しても、強制的に上書きします。
→ f オペランドが指定されていない場合は、強制終了されます。
復帰値
実行コマンドは以下のいずれかの復帰値で終了します。(プロセスの強制終了や異常終了時の復帰値は保証でき
ません)
復帰値説明
0 正常終了(変換エラーなし)
1 正常終了(変換エラーあり)
2 ログファイルアクセスエラーによる異常終了
3 異常終了(ログファイルへエラー内容出力)
使用方法 変換エラーの表示
変換中に発生したエラーは、変換エラーファイルへ出力されます。変換エラー表示機能
は、出力された変換エラーファイルを環境設定で指定された外部ビューアプログラム(デ
フォルトはメモ帳)により表示する機能です。
→変換エラーファイル
→環境設定
【コード変換エラー】 コード変換エラーとなった文字コードの一覧です。Unicodeの
場合は種別(UCS2/UTF8)やエンディアンにかかわらず、UCS2
ビッグエンディアンで表示されます。
書式 文字コード16進2桁または4桁(出現数)
【エラー発生項目】
変換エラーの発生した項目の一覧です。(データファイル変換
の場合のみ)
書式 レイアウト定義の項目No:項目名:項目属性(エラー発生
数)
【エラー詳細】
変換エラーの詳細内容を発生順に列挙します。変換指示ウィ
ザードで指定する変換エラー出力可能件数の範囲までが出力対
象です。Unicodeの場合は、種別(UCS2/UTF8)やエンディアン
について入力コードのまま表示されます。
入力データ形式がCSV、XML形式の場合は、レコード上の相対
位置は、常に0となります。
書式 入力レコード番号-レコード上の相対位置 エラー内容
レイアウト定義の項目No:項目名:項目属性
変換エラーファイル出力例 (SAMPLE.ERR)
.
下記は、サンプル資産を実行した場合に、発生するエラーについて説明しています。
入力ファイル : DATA1.DAT
レイアウト定義ファイル : DATA1.LAY( SJIS[DATA形式]からSJIS[CSV]形式へ変換 )
*** SIMPLIA/TF-MDPORT 変換エラーファイル ***
カレントフォルダ: C:¥SIMPLIA¥TF-MDPORT Pro¥Sample
入力ファイル名: data1.dat
レイアウト定義ファイル名: data1.lay
変換エラー発生数: 2
【コード変換エラー】()内は出現数 (*)は100以上
0000( 1)
【エラー発生項目】項目No:項目名:属性(エラー発生数 *は100以上)
3:製品名:N( 1)
5:売上数量:Z( 1)
【エラー詳細】レコード番号-位置 エラー内容 項目No:項目名:属性
3-23 コード変換エラー(0x0000) 3:製品名:N
4-46 数値部エラー 5:売上数量:Z
使用方法 変換エラーの表示 代表的なエラーの紹介
ここでは、代表的な変換エラーの発生要因について説明します。
【領域溢れエラー】 ∼領域長変動の要因
.
データファイル変換で英数字、日本語、混在、可変長文字列、可変長日本語項目のコード変換を行うと、1項
目の入力データ長と出力データ長が異なる場合があります。
領域長変動要因
1 シフトJIS/JEF/他社コードの半角カナをEUCコードへ変換
→EUCコードでは、半角カナ(見た目上は1バイト)は2バイ
トのコードで表現されます。(他は1バイトのコードで表現)
対処方法
2 シフトJIS/EUC/JEF/他社コードの1バイトコード(ASCII,/
EBCDIC)をUnicode(UCS2形式)へ変換
→UCS2形式では、全ての文字が2バイトのコードで表現され
ます。
3 各種コード体系の2バイト文字をUnicode[UTF8形式]へ変換
→UTF8形式では、日本語文字や特殊記号文字が2∼3バイトの
コードで表現されます。
4 シフトJIS/EUCコードの混在項目をJIS/JEF/他社コードへ変換
→JIS/JEF/他社コードには、日本語制御切替コードが存在しま レイアウト定義にて、出力側の各項目の領
域長を拡大してください。
す。(JEFコードの0x28,0x29等)
5 JEFコードの拡張漢字/拡張非漢字(2バイトコード)をEUC
コード(U90形式)へ変換
→EUCコード(U90)では、拡張文字コード領域としてコード
セット3(3バイトコード)で表現されます。
6 CSV/XML形式のデータをデータ形式へ変換
→CSV/XML形式では、各項目の入力項目の長さは可変です。
従って、変換後のデータ長と出力領域長が一致しない場合が
あります。変換後のデータ長が出力領域長に満たない場合
は、空白文字を埋め込み(項目属性により、1バイトまたは2
バイトの空白を埋め込みます)、超える場合は、文字単位に
切り捨てエラーを出力します。
【コード変換エラー】 ∼コード変換エラー/正しく変換されない
コード変換エラー要因
1 JEFの㈱や㈲をSJISに変換するとコード変換エラーが発生す
る。
→MDPORTは83JISに準拠し、第1/第2水準漢字、非漢字
(JEFでは基本非漢字)を規則的に変換するため、JEFの拡張
領域の漢字をMDPORTの標準変換では正しく変換することが
できません。
対処方法
1.2)JEF拡張漢字/拡張非漢字の変換を行う
ためには、
MDPORTのCharsetMGR変換機能を利用する
か、利用者定義ファイルでの定義の2通り
の方法があります。
−㈱や㈲のようにWindows(R)固有に存在
し、かつ、JEF拡張領域に存在する文字につ
いては、CharsetMGRの字体重視変換を行う
ことで変換が可能です。
(jefaugkana→sjisms)
−利用者定義ファイルで対応表を作成する
2 JEF固有の拡張漢字や外字をSJISに変換するとコード変換エ
ことでも変換が可能です。
ラーが発生する。
※Sampleフォルダ内のJEF_SJIS.cnvファイ
→変換エラーの理由は1と同じです。他社コードからの変換に ル内に対応表を作成していますので、必要
おいても同様に変換エラーとなります。
に応じて利用可能です。
※他社コードについては独自に作成する必
要があります。
※JEF固有の拡張漢字や外字を変換する場合
は、シフトJISのユーザ定義領域にコードを
割りあてて対応関係を作成する必要があり
ます。
3 JEFの基本漢字内の一部の文字をSJISに変換すると正しく変換
されない。
→MDPORTの標準変換機能はJIS83準拠による変換であるた
め、JEFコードは 78JIS準拠のため、一部の文字( 83JISでの改
定文字)について同一の文字へ変換されません。
3)CharsetMGR変換機能を利用することで、
83JIS改定文字を考慮した変換を行うことが
可能です。JEF_SJIS.cnv内のファイルにも対
応表は準備されてますので、必要に応じて
利用してください。
4 LOW-VALUE(0x00)やHIGH-VALUE(0xFF)を変換すると変換
エラーが発生する。
→MDPORTはLOW-VALUEやHIGH-VALUE、JEFのデバイス制
御コードについては文字と認識しないため、変換エラーとな
り代替文字に置き換わります。
利用者定義ファイルで対応表を作成してく
ださい。
例)
-----------# jef sjis
00:00
FF:FF
0000:0000
------------
【数値部エラー】 ∼数値部エラーの要因
数値部エラー要因
- 外部10進/内部10進内のデータに数値以外のデータが存在する。
属性
符号
COPY句
内部表現(16進)
値
エラー
外部10進 なし
9(4)
31323334
1234
なし
外部10進 あり
S9(4)
31323344
+123
4
なし
外部10進 なし
9(4)
3132333A
0
あり
内部10進 なし 9(4) COMP3
01234F
1234
なし
内部10進 あり S9(4) COMP3
01234D
−123
4
なし
内部10進 なし 9(4) COMP3
012B4F
0
あり
- CSV/XML形式のデータ(数値)内に数値以外の文字や記号が存在する
属性
符号 COPY句
値
エラー
外部10進 なし
9(4)
ABCD
あり
外部10進 あり
S9(4)
$1234
あり
【符号部エラー】 ∼符号部エラーの要因
データファイル変換で、外部10進、内部10進項目の変換を行う際に、符号部のチェックを厳密に行います。
符号部チェックを行う場合は、レイアウト定義の項目定義で、「入力チェックを行う」を設定する必要があり
ます。
属性
符号
COPY句
内部表現
値
外部10進 なし
9(4)
31323334
外部10進 あり
S9(4)
31323354 −1234
外部10進 あり
S9(4)
31323344 +1234
エラー
1234 3以外はエラー
内部10進 なし 9(4) COMP3
01234F
内部10進 あり S9(4) COMP3
01234C
+1234
内部10進 あり S9(4) COMP3
01234D
−1234
4,5以外はエラー
1234 F以外はエラー
C,D以外はエラー
注)外部10進の例はASCIIコード系の例です。以下にEBCDIC系コードの演算符号を記載します。
F : ゾーンビット
C : 正の演算符号
D : 負の演算符号
【マスタデータのコード変換エラー】 ∼マスタデータのコード変換エラーの要因
コード変換エラー要因
1 マスタデータのコード変換中にエラーが発生する
→表示されているマスタデータファイルにコード変換できないデータが
入っているため、マスク機能の準備処理でエラーとなります。
対処方法
表示されているマスタデータ
ファイルの該当する項目のデー
タを、正常にコード変換できる
データに変更する必要がありま
す。
【MDPORT変換時のエラー】 ∼継続不可能なエラー要因
コード変換エラー要因
1 継続不可能なエラーが発生し、変換処理が中断する
→マスタデータファイルを利用してマスクするデータ(値)を指定
した場合、マスク指定した項目名に対応したマスタデータファイル
が見つからなかった場合エラーとなります。
対処方法
→マスタデータファイルを利用してマスクするデータ(値)を指定
した場合、読み込みマスタデータファイルの1行目に、マスク指定 MDPORTのインストールフォル
ダに、マスク指定した項目名に対応
した項目名が見つからなかった場合、エラーとなります。
したマスタデータ(項目名+.csv)が
存在すること、また読み込んだマス
タデータにマスク指定した項目名が
存在すること確認をする必要があり
ます。
CSV形式で扱える引用符・区切り文字
CSV形式で扱える引用符・区切り文字を、以下のASCIIコード表に示します。
ASCIIコード表
\
0
1
2
3
4
5
6
7
0
SP
0
@
P
`
p
1
!
1
A
Q
a
q
2
"
2
B
R
b
r
3
#
3
C
S
c
s
4
$
4
D
T
d
t
5
%
5
E
U
e
u
6
&
6
F
V
f
v
7
'
7
G
W
g
w
8
(
8
H
X
h
x
9
)
9
I
Y
i
y
A
*
:
J
Z
j
z
B
+
;
K
[
k
{
C
,
<
L
¥
l
|
D
-
=
M
]
m
}
E
.
>
N
^
n
~
F
/
?
O
_
o
■:使用可
■:使用不可
注1) 引用符文字と区切り文字を同一コードで指定した場合、変換結果は保証されません。
注2) 引用符文字を使用しない文字項目及び数値項目に、区切り文字と同一の文字が存在する場合、変換結果は保
証されません。
注3) 0x09の指定方法に関しては、「MDPORT変換指示ウィザード[CSV詳細設定ダイアログボックス]」 を
参照してください。
注4) コード体系でunicodeコード(UCS2)を指定した場合は、上記ASCIIコードをunicodeコード(UCS2)に変換され
た文字になります。
例)カンマ( , :0x2E)の場合、UCS2は(Big:00 2E、Little:2E 00)となる
Fly UP