サンプル: 文字列の解析 (固定長テキストから Excel へ)

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  マッピングのデザイン > 文字列の解析とシリアル化 >

サンプル: 文字列の解析 (固定長テキストから Excel へ)

このサンプルは、文字列データを解析するマッピングデザインの方法について説明します。このサンプルはにはサンプルファイルが存在します。このサンプルを開始する前に、サンプルファイルを確認するには、ファイルを以下のパスで検索することができます: <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ParseString.mfd

 

単一のデータベースフィールドに保管されているレガシーテキストデータがあると仮定します。テキストデータは従業員のリストであり、 RESOURCE 列内に保管されています。固定値としてフォーマットされたフィールドは、以下のとおりです:

ex_string_parse_07

 

単一のデータベースフィールドにテキストデータが保管されているため、個々の従業員の記録には簡単にアクセスすることができません。 これにより、従業員を追加、または、削除、および並べ替えすることが難しくなります。このサンプルの目的は、 RESOURCE データベースフィールドからテキストデータを抽出し、記録を簡単に処理できるように構造に分割することです。

 

この目的は、コンポーネントの "文字列の解析/シリアル化"を使用することにより達成することができます。最初に、コンポーネントの "文字列の解析/シリアル化" はテキストデータを入力として受け入れます。そして、データを解析し、構造に変換します。最後に、ターゲットフォーマットに構造が書き込まれます。このサンプルでは、 ターゲット フォーマットは Excel スプレッドシートです。かしながら、 全般的に、 MapForce によりサポートされる他の出力フォーマットに変換することができます。

 

このサンプルのマッピングを要約すると、RESOURCE データベースフィールドのコンテンツをテーブルに変換します。マッピングが実行された後、 各テーブル行は従業員に対応し、各列は固定長フィールドの1つに以下の順序で対応します: ID、Last Name、First Name, Extension、Job Title、Email。

ex_string_parse_06

文字列の解析後の期待される出力

目的を達成するには、以下のステップを行ってください:

 

1.マッピングエリアに ソースデータベースを追加します。データベースは、 スタンドアロン SQLite データベースファイル として、以下のパスから参照することができます: <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\\dbresources.db。 (データベースコンポーネントを追加するには、「挿入 | データベース メニューコマンドを使用します。 データベースへ接続する も参照)。
2.データベースオブジェクトの挿入を問われると、resources テーブルを選択します。

ex_string_parse_00

3.( 「挿入 | テキストファイル 」 メニューコマンドを使用して)マッピングエリアにテキストコンポーネントを追加します。ソースデータはフィールドカンマ区切りテキストであるため、 MapForce によりプロンプトされると、簡単な処理を選択します。
4.データベース内に保管されたソーステキストデータの構造をマップするために、テキストコンポーネントの構造を構成します。既に気が付いているかもしれませんが、このサンプルでは、ソーステキストは6つの固定長フィールドから以下のように構成されています:

 

文字サイズ

フィールド

6

ID

15

Surname

15

First Name

3

Extension

25

Job Title

25

Email

 

これを達成するには、テキストコンポーネントを固定長として宣言し、上記のポジションに適用することのできる6つのフィールドを追加します。(コンポーネント設定ダイアログボックスから開くには、コンポーネントを右クリックして、 コンテキストメニューから、 「プロパティ」を選択します)。

ex_string_parse_02

整数をデータ型として使用する Field4 フィールドに注意してください。 このサンプルのスコープのためには、 Field4 を数値型として宣言することは任意ですが、内線番号(Field4)が抽出するソーステキストが数値として検証されることを確認することができます。

5.btn_file_string をクリックし、「FLF に文字列を解析する」 を「コンテキスト」 メニューから選択します。これは、 このコンポーネントに文字列を 固定値フィールド (FLF) フォーマットに解析するように、MapForce に命令します。

ex_string_parse_02a

6.マッピングエリアにターゲット Excel 2007+ コンポーネントを挿入します。サンプルファイルを選択するようにプロンプトされると、 「スキップ」 をクリックします。(「挿入 | Excel 2007+」 メニューコマンドを使用して Excel コンポーネントを追加することができます。Excel  2007+ ファイルをマッピングコンポーネントとして追加する も参照)。
7. Row 1, n=dyn ノードの横の excel1-compicon ボタンをクリックし、 Excel コンポーネントが、最初の列から各テキストフィールドのために行を書き込むことを構成します。( Excel 2007+ コンポーネント型とその構成 に関する詳細は、 Excel 2007+ コンポーネントについて を参照してください)。

ex_string_parse_03

8.コンポーネントアイテム間の接続の描き方は以下の通りです。

ex_string_parse_04

マッピングの左側では、リソースデータベース列のコンテンツが文字列の値から MapForce 構造に変換(解析) されます。マッピングの右側では、解析(テキストファイル) コンポーネのアイテムが個別のExcel 列に接続され、この結果、ソース文字列を個別の並べ替えることのできるセルに分割します。

 

文字列データを解析し、構造を作成する MapForce デザインファイルが作成されました。 「出力」 タブをクリックすると、レガシーテキストデータが Excel スプレッドシートの個別の行と列に変換されます。


(C) 2019 Altova GmbH