はじめに
DataMagic は、色々な機能を備えています。
機能・概要一覧
| 機能 | 概要 |
|---|---|
| マッチング | 入力ファイルのレコードと、共通する項目名をキーにした複数のマッチングファイルのレコードを結合し、一つのデータセットとして出力する |
| マージ | 入力ファイルとマージファイルを連結して、入力マージデータとして取り扱えます。入力マージデータに対しては、データ加工前に重複行の削除やソートする |
| 出力先振り分け | 抽出条件に沿って、出力ファイルを振り分ける |
| 数値項目演算 | 出力項目が数値タイプの場合、入力項目同士や任意の値との演算式を指定し、その演算結果を出力項目の値として出力する |
| データ抽出 | 入力データから、指定した条件に合致したデータのみを抽出する |
| 項目入替 | 入力データの項目を入れ替えて、別のフォーマットで出力する |
| 項目結合 | 複数の項目を結合して、1つの項目として出力する |
| 項目分割 | 単一項目を分割して、複数の項目として出力する |
| 全角半角 | 「カナ」「英数字」および「記号」を、半角から全角、全角から半角へ変換する |
| 出力フォーマット指定 | 日付型、数字文字列型の入力項目を出力する際に、フォーマットを指定する |
| 入力ソート | 入力ファイルの形式がCSV、フォーマット、Excelの場合は、データ加工の前にソートする |
| 属性変換 | 入力データを出力データに変換する際に、数値タイプを任意の数値タイプへ変換する |
| 日付項目演算 | 日付データに対して、演算や西暦⇔和暦の変換を指定し、その結果を出力項目の値として出力する |
| 関数 | 入力項目の値を関数で処理し、その処理結果を出力項目の値として出力する |
| マッピング | 入力ファイルから出力ファイルへのデータの流れや加工、変換ルールを定義し、異なるデータ形式間での項目の対応関係を設定する |
| 動的指定 | データ加工の実行時にコマンドの引数に指定した数値や文字列を、条件や出力情報に使用できる |
| ユーザ出口変換 | データを加工するときに、項目単位で独自の変換を設定するために、ユーザ出口プログラムを独自に作成できる |
| データ挿入 | レコード内の任意の項目にユーザ指定の任意の値を挿入できる |
| 仕様書出力 | データ加工の処理と設定内容を仕様書としてExcelファイルに出力できる |
| チュートリアル | データ加工の設定を対話的に実行して、DataMagicの基本的な操作方法を習得できる |
| カスタムエラー | カスタムエラー条件を使用すると、データの形式は問題ないが、意図しないデータ(例 別の事業所のデータ)を検出したときにデータ加工をエラーにできる |
| ステップ実行 | プログラムのデバッガの処理のように、経過を確認しながら実行し、意図するように変換できなかった場合の解析、またはデータ加工の処理経過の確認に使用できます。 |
| コード変換 | 1バイトコード間、または2バイトコード間で、文字コードを変換する |
その機能を大きく分けると、〝データ(の)加工〟と〝(文字)コード(の)変換〟に分類できまして。
今までは〝データ加工〟ついて色々紹介してきましたが、今回は〝コード変換〟を取り上げてみることにしました。
文字コード ってなんだ
〝コード変換〟とは〝文字コードを変換する〟ってことなんですが、
じゃあ〝文字コード〟って ナニ
って話になる訳で。
小難しい説明は、他の方が懇切丁寧に説明されているので、自分に合った取っ付き易い説明をしているサイトを見つけて学んでいただくとして。
ここでは、「ふ~ん、そうなんだぁ」程度の説明を。
まず文字コードは、WindowsOS であれば、IMEパッド で文字コードを確認できたりします。
※「IMEパッドが何か」等は、各自お好きな検索エンジンで調べてください。
ひらがなの〝あ〟
まず、IMEパッドを開くと、文字一覧がカテゴリ(種類)別に〝Unicode〟〝シフトJIS〟〝JIS〟で、フォルダ分けされています。
では〝あ〟と言う文字を、このIMEパッドの文字一覧の中から探してみます。
シフトJIS の〝あ〟
ここで一番探し当て易いのは〝シフトJIS〟。
〝シフトJIS〟のフォルダをクリックして展開すると、更に複数のフォルダが表示されますので、その中の〝ひらがな〟フォルダをクリックすると、0x82A0 の座標に〝あ〟があります。
つまり、シフトJIS で〝あ〟を表すコードは、16進数で表現すると 0x82A0 と言うことになります。
ここで、文字の上にカーソルを持って行くと、ガイドに〝あ〟を表す文字コードが複数表示されます。
つまり、この1文字を表す文字コードが、複数存在すると言うことです。
Unicode の〝あ〟
上の図から Unicode で表す場合は U+3042 らしいので、該当する座標を探すと、表現する文字は〝あ〟
このコードで〝あ〟のガイドを表示すると、シフトJISと同じ内容が表示されるので、同じ〝あ〟を表現していることが分かります。
JIS の〝あ〟
更に、もう一つの〝あ〟
JISコードは、ガイドに JIS213 のコードが出ているので、JIS X 213 のカテゴリの中を探してみると、1-4-2 に〝あ〟を発見!
この〝あ〟のガイドも同じ内容なので、〝あ〟を表す文字コードが複数存在することが分かります。
以上の例から、文字のカテゴリ(種類)は複数あって、同じ文字〝あ〟でも、使うカテゴリごとにコードが違うことが分かります。
文字コードの変換
DataMagic では、世にはびこる文字コードの中から、以下の文字コード間でコードを変換することが出来ます(ファイル形式に因っては制限があります)。
1バイトコード
ASCII
EBCDIC カナ
EBCDIC 英小文字
EBCDIC ASCII
EBCDIC ASPEN
IBMカナ文字拡張
IBM英小文字
IBM英小文字拡張
NECカナ文字
ユーザ独自のユーザテーブル
2バイト/マルチバイト コード
UTF-8
UTF-16
JEF
KEIS
IBM漢字
NEC漢字
EUC
SHIFT-JIS
JIS
コード変換については、機能説明のマニュアルで紹介 しているので、よろしければ。
DataMagic で文字コードを変換するには
DataMagic でコード変換する場合は、入力設定で変換前の文字コード / 出力設定で変換後の文字コードを〝漢字コード種〟に設定するだけ。
ただし、コード変換はファイル単位で同じ文字コードであることを前提におこないます。
複数の文字コード(例えば、SHIFT-JIS と UTF-16)が混在するファイルを加工する場合は、チョット工夫が必要・・・かも。
DataMagic で文字コードを変換してみた
DataMagic で、「#行目の出力文字コード=@@」の1行を、出力側の漢字コード種を@@の文字コードに設定して、出力ファイルに追加書きしてみました。
以下の表は、処理結果の9行を、出力設定の漢字コードを変えながら、プレビューで表示した結果です。
まったく表示されない行が有ったり、何が何だか分からない行、違う文字コードのはずが読める行など、色々ありますが、「行目の出力文字コード=」は、すべての行で同じ文字。
とりあえず、適材適所!
処理で扱う文字コードと実データ内の文字コードが違うと、全然訳分らんって話です。
| 行目 | 出力設定 漢字コード種 |
出力結果 |
|---|---|---|
| 1 | SHIFT-JIS | ![]() |
| 2 | JEF | ![]() |
| 3 | EUC | ![]() |
| 4 | IBM漢字 | ![]() |
| 5 | KEIS | ![]() |
| 6 | NEC漢字 | ![]() |
| 7 | UTF-8 | ![]() |
| 8 | JIS | ![]() |
| 9 | UTF-16 | ![]() |
以上です













