JP3245873B2 - ファイル処理装置 - Google Patents
ファイル処理装置Info
- Publication number
- JP3245873B2 JP3245873B2 JP02373491A JP2373491A JP3245873B2 JP 3245873 B2 JP3245873 B2 JP 3245873B2 JP 02373491 A JP02373491 A JP 02373491A JP 2373491 A JP2373491 A JP 2373491A JP 3245873 B2 JP3245873 B2 JP 3245873B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- record
- data
- field
- merged
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、オフィスコンピュー
タ等において、複数のファイルをマージするファイル処
理装置に関する。 【0002】 【従来の技術】従来、オフィスコンピュータ等におい
て、複数のファイルをマージ対象ファイルとして指定す
ると、指定された複数のファイルは1つのファイルにマ
ージされるが、この併合ファイルのレコード構造は、マ
ージ対象ファイルのレコード同士を単に合併したものと
なる。つまり、複数のファイルにおいて、それらのレコ
ードを構成する各データフィールドを単に羅列したレコ
ード構造と成る。 【0003】 【発明が解決しようとする課題】ところで、マージ対象
として指定される複数のファイルは同種のファイルであ
り、それらのレコード中には定義内容(項目名)を同一
とするデータフィールドも多数含まれているが、従来に
おいてはマージ対象ファイルのレコード同士を単に合併
してマージする為、マージ対象ファイルとして指定され
たファイル数が多くなればなるほど併合ファイルのレコ
ード長は極めて長くなる。その結果、併合ファイルを処
理する際にその処理効率が悪くなると共に、併合ファイ
ルを格納するメモリ容量も膨大なものと成り、更には併
合ファイルを出力した際にその出力形態も煩雑化し、そ
の視読性を妨げるという欠点があった。そこで、複数の
ファイルをマージする際に、各ファイルに共通する定義
内容を持ったデータフィールドを重複して併合すること
を効果的に防止できれば、併合ファイルのレコード長を
大幅に短かくすることが可能となると共に、併合ファイ
ルを処理する際の処理効率も大幅に向上させることが可
能となる等、極めて有益なファイル処理装置を提供でき
るようになることは明らかである。この発明の課題は、
複数のファイルをマージする際に各ファイルに共通する
定義内容を持ったデータフィールドを重複して併合する
ことを防止できるようにすることである。 【0004】 【課題を解決するための手段】この発明の手段は次の通
りである。ファイル指定手段1(図1の機能ブロック図
を参照、以下同じ)は、同一のキーフィールドを有する
同種の複数のファイルを併合対象ファイルとして指定す
る。フィールド検索手段2は、ファイル指定手段1によ
って指定された各ファイルのレコードを構成するフィー
ルドから全てのファイルに含まれる項目名を示す共通デ
ータフィールドと各ファイルに固有の項目名を示す固有
データフィルードとを検索する。レコード構造作成手段
3は、フィールド検索手段2によって検索された共通デ
ータフィルードと固有データフィールドをキーフィール
ドと組み合わせ成るレコード構造を作成する。ファイル
併合手段4は、前記ファイル指定手段によって指定され
た各ファイルをレコードのキーに従って前記レコード構
造作成手段によって作成されたレコード構造に基づいて
マージする。 【0005】 【作用】この発明の手段の作用は次の通りである。い
ま、ファイル指定手段1によって、同一のキーフィール
ドを有する同種の複数のファイル、例えば、ファイル
A、Bをマージ対象ファイルとして指定すると、フィー
ルド検索手段2はファイル指定手段1によって指定され
た各ファイルのレコードを構成するフィールドから全て
のファイルに含まれる項目名を示す共通データフィール
ドと各ファイルに固有の項目名を示すた固有データフィ
ルードとを検索する。例えば、ファイルA及びファイル
Bを構成するレコードのデ−タフィールドに「得意
先」、「商品名」が項目名としてそれぞれ定義されてい
る場合には、このデータフィールドがファイルA、Bに
共通する共通データフィールドとして検索される。また
ファイルAには存在するがファイルBには存在しないデ
ータフィルードあるいはそれとは逆にファイルBには存
在するがファイルAには存在しないデータフィールドが
あれば、そのデータフィールドが固有データフィールド
として検索される。このようにして共通データフィール
ドと固有データフィールドとが検索されると、レコード
構造作成手段3は検索された共通データフィールドと固
有データフィールドをキーフィールドと組み合わせ成る
レコード構造を作成する。すると、ファイル併合手段4
はファイル指定手段1によって指定された各ファイルを
レコードのキーに従ってレコード構造作成手段3によっ
て作成されたレコード構造に基づいてマージする。した
がって、複数のファイルをマージする際に、マージ対象
フィールドを指定することなく、マージ対象の各ファイ
ルを指定するだけで、各ファイルに共通する項目名を持
ったデータフィールドを重複して併合することを防止す
ることできる。 【0006】 【実施例】以下、図2〜図6を参照して一実施例を説明
する。図2はファイル処理装置のブロック構成図であ
る。CPU11は主記憶装置12内の各種プログラムに
したがってファイル更新処理やファイルマージ処理等を
制御するもので、キー入力部13から入力されたレコー
ドデータを表示部14から表示出力させたり、入力され
たレコードデータに基づいてディスク装置15内の指定
ファイルを更新する。なお、主記憶装置12はROM1
2−1、ワークRAM12−2を有する構成となってい
る。また、CPU11は複数の同種のファイルをマージ
する際、キー入力部13からマージ対象のファイル名を
指定すると、指定された各ファイルのファイル名をファ
イル名メモリ16に書き込むと共に、マージ対象ファイ
ルをマージすることによって得られる併合ファイル(な
お、本実施例においては併合ファイルをそのまま出力す
る為に以下、併合ファイルを出力ファイルと称する。)
のファイル名をキー入力部13から指定すると、出力フ
ァイルのファイル名をファイル名メモリ16に書き込
む。 【0007】ディスク装置15には予め入力作成された
各種のファイルが格納されており、CPU11はファイ
ル名メモリ16に記憶されているマージ対象ファイルの
ファイル名に基づいてディスク装置15内の該当する複
数のファイルをアクセスし、各ファイルに共通する定義
内容を持った共通データフィールドと各ファイル固有の
データフィールドを持った固有データフィールドとを検
索し、この共通データフィールドと固有データフィール
ドとを組み合せて成るレコード構造を作成して出力レコ
ードメモリ17上に設定する。 【0008】出力レコードメモリ17には上述のように
して設定された出力ファイルのレコード構造に対応して
そのキーフィールドエリアおよび各種のデータフィール
ドエリアが確保される。ここで、CPU11はマージ対
象ファイルとして指定された複数のファイルを出力ファ
イルのレコード構造に基づいて1レコードずつマージす
るが、その際CPU11は指定ファイルからレコードデ
ータを読み出して読出レコードメモリ18にセットする
と共に、この読出レコードメモリ18内のデータを出力
レコードメモリ17内の該当フィールドに書き込んだ
り、演算部19に集計演算を実行させ、読出レコードメ
モリ18内のデータを出力レコードメモリ17内の該当
フィールドに集計させる。なお、出力レコードメモリ1
7内のデータはディスク装置15の出力ファイルに格納
される。 【0009】図3はファイル名メモリ16の構成を示
し、このファイル名メモリ16にはマージ対象ファイル
名及び出力ファイル名を記憶する領域が設けられてい
る。なお、図3においてはマージ対象ファイル名として
ディスク装置15内に格納されているファイルA及びフ
ァイルBが指定され、また出力ファイル名としてファイ
ルZが指定された場合の具体例を示している。 【0010】次に、本実施例の動作を説明する。図4は
マージ対象ファイルとして指定されたファイルA、ファ
イルBのレコード構造を示すと共に、このファイルAお
よびファイルBをマージすることによって得られる出力
ファイルZのレコード構造を示している。ここで、ファ
イルAのレコード構造は、キーフィールドに続いて3種
類のデータフィールドを有し、キーフィールドの定義内
容は「KEY1」、それに続くデータフィールドの定義
内容は「出庫数1」、「集計出庫数」、「商品名称」で
あり、キーフィールド内のデータは文字列データ、「出
庫数1」および「集計出庫数」に対応するデータフィー
ルド内のデータは共に数値列データ、「商品名称」に対
応するデータフィールド内のデータは文字列データであ
る。また、このファイルAと同種のファイルBのレコー
ド構造も上記ファイルAと同様に、キーフィールドに続
いて3種類のデータフィールドを有し、キーフィールド
の定義内容は「KEY1」、それに続くデータフィール
ドの定義内容は「出庫数2」、「集計出庫数」、「商品
名称」であり、キーフィールド内のデータは文字列デー
タ、「出庫数2」および「集計出庫数」に対応するデー
タフィールド内のデータは共に数値列データ、「商品名
称」に対応するデータフィールド内のデータは文字列デ
ータである。更に、出力ファイルZのレコード構造はマ
ージ対象ファイルA、Bのレコード構造に基づいて作成
されたもので、そのレコード構造については後述する。 【0011】次に、図5及び図6に示すフローチャート
を参照して複数のファイルを1つのファイルにマージす
る際の動作を説明する。先ず、キー入力部13からマー
ジ対象ファイル名が指定され(ステップS1)、次で出
力ファイル名が指定されると(ステップS2)、CPU
11は指定されたファイル名を取り込んでファイル名メ
モリ16にセットする(ステップS3)。いま、図3に
示す如く、マージ対象ファイルとしてファイルA、Bが
指定され、また出力ファイル名としてファイルZが指定
されてそれらのファイル名がファイル名メモリ16にセ
ットされているものとする。ここで、CPU11はマー
ジ対象ファイルとして指定されたディスク装置15内の
複数のファイルA、Bをアクセスし、各ファイルのキー
フィールドの定義内容をチェックする(ステップS
4)。この結果、キーフィールドの定義内容が相違して
いれば(ステップS5でNO)、両ファイルA、Bは異
種のファイルであり、それらをマージ対象とすることが
できない為、ファイルマージ処理を無効とするが、キー
フィールドの定義内容が同じであれば(ステップS5で
YES)、両ファイルA、Bは同種のファイルである
為、以下、出力ファイルのレコード構造を作成する処理
に移る(ステップS6〜S10)。 【0012】このレコード構造作成処理が開始される
と、先ず、マージ対象ファイルのキーフィールドを出力
ファイルのキーフィールドとして出力レコードメモリ1
7に設定する(ステップS6)。この場合、各マージ対
象ファイルのうち先頭に指定したファイルのキーフィー
ルドを出力レコードメモリ17に設定する。次に、各マ
ージ対象ファイルにおける各データフィールドの定義内
容を読み出す(ステップS7)。そして、各マージ対象
ファイルに共通する定義内容のデータフィールドをサー
チする(ステップS8)。この場合、マージ対象ファイ
ルとして指定されたファイルAおよびファイルBに共通
する定義内容のデータフィールドとしては、「集計出庫
数」、「商品名称」によって定義されたデータフィール
ドが存在する為、この共通データフィールドを出力ファ
イルのデータフィールドとして出力レコードメモリ17
に設定する(ステップS9)。次に、各マージ対象ファ
イル毎に各ファイル固有の定義内容を持ったデータフィ
ールドを出力ファイルのデータフィールドとして出力レ
コードメモリ17に設定する(ステップS10)。この
場合、ファイルA固有のデータフィールドとしては「出
庫数1」のデータフィールド、またファイルB固有のデ
ータフィールドとしては「出庫数2」のデータフィール
ドが存在する為、これらのデータフィールドが出力ファ
イルのデータフィールドとなる。この結果、図3に示す
如く、出力ファイルZのレコード構造は、キーフィール
ドに続いて定義内容が「集計出庫数」、「商品名称」、
「出庫数1」、「出庫数2」のデータフィールドとな
り、このレコード構造にしたがったフィールドエリアが
出力レコードメモリ17上に設定される。このように各
マージ対象ファイルに共通する定義内容を持ったデータ
フィールドについては重複設定せずに夫々1エリアのみ
の設定となるが、各ファイル固有のデータフィールドに
ついては個々に設定されたレコード構造となる。 【0013】このようにして出力ファイルのレコード構
造を作成する処理が終ると、このレコード構造に基づい
てマージ対象ファイルA、Bをマージする処理に移る。
ここで、マージ処理の概要を簡単に説明しておく。マー
ジ対象ファイルとして指定された複数のファイルのうち
先に指定したファイルAから優先的に処理してファイル
Aのレコードデータを出力ファイルのレコード構造に基
づいてそのまま出力ファイルに格納する。そして、次の
ファイルBを処理する際に、ファイルBから読み出した
レコード中のデータが文字列データか数値列データかに
基づいて処理する。即ち、ファイルBのデータが文字列
データである場合、それと同一のファイルAのデータが
既に格納されていれば、ファイルBの当該データを格納
せず、ファイルAのデータが格納されている場合に限っ
てファイルBのデータを出力ファイルに格納する。ま
た、数値列データの場合には、既に格納されているファ
イルAのデータにファイルBのデータを集計する。この
際、ファイルAに存在しないデータであれば、ゼロ集計
となり、事実上ファイルBのデータが格納されることに
なる。 【0014】以下、マージ処理を詳述する。先ず、マー
ジ対象ファイルとして指定された複数のファイルのう
ち、最初に指定したファイルAを第1ファイルとして指
定する(ステップS11)。そして、この指定ファイル
からレコードデータを読み出して読出レコードメモリ1
8にセットする(ステップS12)。すると、この読出
レコードメモリ18内にセットされた読出レコードの中
からキーフィールド内のデータと各データフィールド内
のデータとを出力レコードメモリ17内の対応するフィ
ールドエリアに書き込む(ステップS13)。即ち、先
に指定したファイルAを優先処理する為にこのファイル
Aから読み出したレコードデータを出力レコードメモリ
17に書き込む。そして、この出力レコードメモリ17
内のレコードデータをディスク装置15内の出力ファイ
ルZに格納する(ステップS14)。このようにして1
レコード分の処理が終ったらステップS15に進み、指
定ファイルA内に他のレコードが存在するか否かを調
べ、存在すればステップS12に戻って当該レコードデ
ータを読み出し、以下、指定ファイルAの最終レコード
まで1レコードずつ上述の動作を繰り返す(ステップS
12〜S15)。 【0015】しかして、第1ファイルAに対する処理が
終了すると、ステップS16に進み、次のファイルが存
在するか否かを調べる。いま、ファイルBが存在する
為、そのファイルBを指定する(ステップS17)。そ
して、指定ファイルBからレコードデータを読み出し
(ステップS18)、このレコードのキーと同一のレコ
ードをディスク装置15内の出力ファイルZからサーチ
する(ステップS19)。この結果、ファイルAには存
在せずにファイルBのみに存在するレコードであれば、
ステップS20でそのことが検出されてステップS21
に進み、読出レコードメモリ18内のレコードからキー
フィールドのデータと各データフィールドのデータを出
力レコードメモリ17の対応するフィールドエリアに書
き込む。そして、出力レコードメモリ17内のレコード
データをディスク装置15内の出力ファイルZに格納す
る(ステップS22)。その後、指定ファイルBに他の
レコードが存在していれば、ステップS23でそのこと
が検出されてステップS18に戻り、指定ファイルBか
ら次のレコードデータを読み出す。 【0016】一方、読出レコードと同一キーのレコード
が出力ファイルZ内に有れば、図6のステップS24に
進み、出力ファイルZ内の同一キーレコードを出力レコ
ードメモリ17へロードする。そして、読出レコードメ
モリ18にセットされている読出レコードの第1データ
フィールドを指定し(ステップS25)、この指定フィ
ールド内のデータ形式が数値列データか文字列データか
を調べる(ステップS26)。いま、指定ファイルBか
ら読み出された読出レコードの第1データフィールドは
図3に示す如く「出庫数2」のデータフィールドで、そ
のフィールド内のデータは数値列データである為、ステ
ップS30に進み、出力レコードメモリ17の該当フィ
ールドのデータに読出レコードの指定フィールドのデー
タを集計する。なお、この場合、ファイルAには「出庫
数2」のデータフィールドは存在しない為、出力レコー
ドメモリ17の該当フィールドのデータは「0」、した
がってこの場合の集計処理は読出レコードの指定フィー
ルドのデータを出力レコードメモリ17内の該当フィー
ルドに書き込む処理と実質的には変らない。次にステッ
プS31に進み、指定フィールドは読出レコードの最終
フィールドか否かを調べ、最終フィールドでなければス
テップS32に進み、次のデータフィールドを指定した
のちステップS26に戻る。この場合、次のデータフィ
ールドは「集計出庫数」で、そのフィールド内のデータ
も数値列データであるから、ステップS30の集計処理
の実行に移る。 【0017】更に、次のデータフィールドは「商品名
称」で、そのフィールド内のデータは文字列データであ
るから、ステップS26でそのことが検出されてステッ
プS27に進み、出力レコードメモリ17の該当フィー
ルドを検索し、データ有無をチェックする。ここで、
「商品名称」のデータフィールドはファイルAにも存在
している為、ステップS28で該当フィールドにデータ
有りが検出されてステップS31に進むが、ファイルB
固有のデータフィールドであれば、ステップS28でデ
ータ無しが検出されてステップS29に進み、出力レコ
ードメモリ17の該当フィールドエリアに読出レコード
の該当フィールドのデータを書き込んだのち、ステップ
S31に進む。以下、指定フィールドが読出レコードの
最終フィールドになるまで読出レコードのデータフィー
ルドを1つずつ順次指定しながら上述の動作を繰り返
す。 【0018】しかして、読出レコードの最終フィールド
まで処理したら図5のステップS22に進み、出力レコ
ードメモリ17のレコードデータをディスク装置15内
の出力ファイルに格納する。そして、指定ファイルBに
他のレコードが有るか否かを調べ(ステップS23)、
指定ファイルBの全レコードに対する処理が終るまでス
テップS18に戻り、上述の動作を繰り返す。これによ
って、ファイルBに対する処理が終ったら、ステップS
16に戻り、マージ対象ファイルとして指定された次の
ファイルの存在有無を調べる。この場合、ファイル無し
が検出されるので、この時点でファイルマージ処理は終
了する。 【0019】なお、上記実施例はマージ対象ファイルと
して指定された複数のファイルをマージすることによっ
て得られた併合ファイルを出力ファイルとしたが、この
併合ファイルを更にマージ対象ファイルとして他のファ
イルとマージするようにしてもよい。 【0020】 【発明の効果】この発明によれば、複数のファイルをマ
ージする際に各ファイルに共通する定義内容を持ったデ
ータフィールドを重複して併合することを防止すること
ができるので、併合ファイルのレコード長を極めて短か
くすることが可能となる。その結果、併合ファイルを処
理する際にその処理効率を大幅に向上させることが可能
となると共に、併合ファイルを格納するメモリ容量も大
幅に削減でき、更には併合ファイルを出力した際にその
出力形態が簡素化される為、その視読性が極めて良くな
る。
タ等において、複数のファイルをマージするファイル処
理装置に関する。 【0002】 【従来の技術】従来、オフィスコンピュータ等におい
て、複数のファイルをマージ対象ファイルとして指定す
ると、指定された複数のファイルは1つのファイルにマ
ージされるが、この併合ファイルのレコード構造は、マ
ージ対象ファイルのレコード同士を単に合併したものと
なる。つまり、複数のファイルにおいて、それらのレコ
ードを構成する各データフィールドを単に羅列したレコ
ード構造と成る。 【0003】 【発明が解決しようとする課題】ところで、マージ対象
として指定される複数のファイルは同種のファイルであ
り、それらのレコード中には定義内容(項目名)を同一
とするデータフィールドも多数含まれているが、従来に
おいてはマージ対象ファイルのレコード同士を単に合併
してマージする為、マージ対象ファイルとして指定され
たファイル数が多くなればなるほど併合ファイルのレコ
ード長は極めて長くなる。その結果、併合ファイルを処
理する際にその処理効率が悪くなると共に、併合ファイ
ルを格納するメモリ容量も膨大なものと成り、更には併
合ファイルを出力した際にその出力形態も煩雑化し、そ
の視読性を妨げるという欠点があった。そこで、複数の
ファイルをマージする際に、各ファイルに共通する定義
内容を持ったデータフィールドを重複して併合すること
を効果的に防止できれば、併合ファイルのレコード長を
大幅に短かくすることが可能となると共に、併合ファイ
ルを処理する際の処理効率も大幅に向上させることが可
能となる等、極めて有益なファイル処理装置を提供でき
るようになることは明らかである。この発明の課題は、
複数のファイルをマージする際に各ファイルに共通する
定義内容を持ったデータフィールドを重複して併合する
ことを防止できるようにすることである。 【0004】 【課題を解決するための手段】この発明の手段は次の通
りである。ファイル指定手段1(図1の機能ブロック図
を参照、以下同じ)は、同一のキーフィールドを有する
同種の複数のファイルを併合対象ファイルとして指定す
る。フィールド検索手段2は、ファイル指定手段1によ
って指定された各ファイルのレコードを構成するフィー
ルドから全てのファイルに含まれる項目名を示す共通デ
ータフィールドと各ファイルに固有の項目名を示す固有
データフィルードとを検索する。レコード構造作成手段
3は、フィールド検索手段2によって検索された共通デ
ータフィルードと固有データフィールドをキーフィール
ドと組み合わせ成るレコード構造を作成する。ファイル
併合手段4は、前記ファイル指定手段によって指定され
た各ファイルをレコードのキーに従って前記レコード構
造作成手段によって作成されたレコード構造に基づいて
マージする。 【0005】 【作用】この発明の手段の作用は次の通りである。い
ま、ファイル指定手段1によって、同一のキーフィール
ドを有する同種の複数のファイル、例えば、ファイル
A、Bをマージ対象ファイルとして指定すると、フィー
ルド検索手段2はファイル指定手段1によって指定され
た各ファイルのレコードを構成するフィールドから全て
のファイルに含まれる項目名を示す共通データフィール
ドと各ファイルに固有の項目名を示すた固有データフィ
ルードとを検索する。例えば、ファイルA及びファイル
Bを構成するレコードのデ−タフィールドに「得意
先」、「商品名」が項目名としてそれぞれ定義されてい
る場合には、このデータフィールドがファイルA、Bに
共通する共通データフィールドとして検索される。また
ファイルAには存在するがファイルBには存在しないデ
ータフィルードあるいはそれとは逆にファイルBには存
在するがファイルAには存在しないデータフィールドが
あれば、そのデータフィールドが固有データフィールド
として検索される。このようにして共通データフィール
ドと固有データフィールドとが検索されると、レコード
構造作成手段3は検索された共通データフィールドと固
有データフィールドをキーフィールドと組み合わせ成る
レコード構造を作成する。すると、ファイル併合手段4
はファイル指定手段1によって指定された各ファイルを
レコードのキーに従ってレコード構造作成手段3によっ
て作成されたレコード構造に基づいてマージする。した
がって、複数のファイルをマージする際に、マージ対象
フィールドを指定することなく、マージ対象の各ファイ
ルを指定するだけで、各ファイルに共通する項目名を持
ったデータフィールドを重複して併合することを防止す
ることできる。 【0006】 【実施例】以下、図2〜図6を参照して一実施例を説明
する。図2はファイル処理装置のブロック構成図であ
る。CPU11は主記憶装置12内の各種プログラムに
したがってファイル更新処理やファイルマージ処理等を
制御するもので、キー入力部13から入力されたレコー
ドデータを表示部14から表示出力させたり、入力され
たレコードデータに基づいてディスク装置15内の指定
ファイルを更新する。なお、主記憶装置12はROM1
2−1、ワークRAM12−2を有する構成となってい
る。また、CPU11は複数の同種のファイルをマージ
する際、キー入力部13からマージ対象のファイル名を
指定すると、指定された各ファイルのファイル名をファ
イル名メモリ16に書き込むと共に、マージ対象ファイ
ルをマージすることによって得られる併合ファイル(な
お、本実施例においては併合ファイルをそのまま出力す
る為に以下、併合ファイルを出力ファイルと称する。)
のファイル名をキー入力部13から指定すると、出力フ
ァイルのファイル名をファイル名メモリ16に書き込
む。 【0007】ディスク装置15には予め入力作成された
各種のファイルが格納されており、CPU11はファイ
ル名メモリ16に記憶されているマージ対象ファイルの
ファイル名に基づいてディスク装置15内の該当する複
数のファイルをアクセスし、各ファイルに共通する定義
内容を持った共通データフィールドと各ファイル固有の
データフィールドを持った固有データフィールドとを検
索し、この共通データフィールドと固有データフィール
ドとを組み合せて成るレコード構造を作成して出力レコ
ードメモリ17上に設定する。 【0008】出力レコードメモリ17には上述のように
して設定された出力ファイルのレコード構造に対応して
そのキーフィールドエリアおよび各種のデータフィール
ドエリアが確保される。ここで、CPU11はマージ対
象ファイルとして指定された複数のファイルを出力ファ
イルのレコード構造に基づいて1レコードずつマージす
るが、その際CPU11は指定ファイルからレコードデ
ータを読み出して読出レコードメモリ18にセットする
と共に、この読出レコードメモリ18内のデータを出力
レコードメモリ17内の該当フィールドに書き込んだ
り、演算部19に集計演算を実行させ、読出レコードメ
モリ18内のデータを出力レコードメモリ17内の該当
フィールドに集計させる。なお、出力レコードメモリ1
7内のデータはディスク装置15の出力ファイルに格納
される。 【0009】図3はファイル名メモリ16の構成を示
し、このファイル名メモリ16にはマージ対象ファイル
名及び出力ファイル名を記憶する領域が設けられてい
る。なお、図3においてはマージ対象ファイル名として
ディスク装置15内に格納されているファイルA及びフ
ァイルBが指定され、また出力ファイル名としてファイ
ルZが指定された場合の具体例を示している。 【0010】次に、本実施例の動作を説明する。図4は
マージ対象ファイルとして指定されたファイルA、ファ
イルBのレコード構造を示すと共に、このファイルAお
よびファイルBをマージすることによって得られる出力
ファイルZのレコード構造を示している。ここで、ファ
イルAのレコード構造は、キーフィールドに続いて3種
類のデータフィールドを有し、キーフィールドの定義内
容は「KEY1」、それに続くデータフィールドの定義
内容は「出庫数1」、「集計出庫数」、「商品名称」で
あり、キーフィールド内のデータは文字列データ、「出
庫数1」および「集計出庫数」に対応するデータフィー
ルド内のデータは共に数値列データ、「商品名称」に対
応するデータフィールド内のデータは文字列データであ
る。また、このファイルAと同種のファイルBのレコー
ド構造も上記ファイルAと同様に、キーフィールドに続
いて3種類のデータフィールドを有し、キーフィールド
の定義内容は「KEY1」、それに続くデータフィール
ドの定義内容は「出庫数2」、「集計出庫数」、「商品
名称」であり、キーフィールド内のデータは文字列デー
タ、「出庫数2」および「集計出庫数」に対応するデー
タフィールド内のデータは共に数値列データ、「商品名
称」に対応するデータフィールド内のデータは文字列デ
ータである。更に、出力ファイルZのレコード構造はマ
ージ対象ファイルA、Bのレコード構造に基づいて作成
されたもので、そのレコード構造については後述する。 【0011】次に、図5及び図6に示すフローチャート
を参照して複数のファイルを1つのファイルにマージす
る際の動作を説明する。先ず、キー入力部13からマー
ジ対象ファイル名が指定され(ステップS1)、次で出
力ファイル名が指定されると(ステップS2)、CPU
11は指定されたファイル名を取り込んでファイル名メ
モリ16にセットする(ステップS3)。いま、図3に
示す如く、マージ対象ファイルとしてファイルA、Bが
指定され、また出力ファイル名としてファイルZが指定
されてそれらのファイル名がファイル名メモリ16にセ
ットされているものとする。ここで、CPU11はマー
ジ対象ファイルとして指定されたディスク装置15内の
複数のファイルA、Bをアクセスし、各ファイルのキー
フィールドの定義内容をチェックする(ステップS
4)。この結果、キーフィールドの定義内容が相違して
いれば(ステップS5でNO)、両ファイルA、Bは異
種のファイルであり、それらをマージ対象とすることが
できない為、ファイルマージ処理を無効とするが、キー
フィールドの定義内容が同じであれば(ステップS5で
YES)、両ファイルA、Bは同種のファイルである
為、以下、出力ファイルのレコード構造を作成する処理
に移る(ステップS6〜S10)。 【0012】このレコード構造作成処理が開始される
と、先ず、マージ対象ファイルのキーフィールドを出力
ファイルのキーフィールドとして出力レコードメモリ1
7に設定する(ステップS6)。この場合、各マージ対
象ファイルのうち先頭に指定したファイルのキーフィー
ルドを出力レコードメモリ17に設定する。次に、各マ
ージ対象ファイルにおける各データフィールドの定義内
容を読み出す(ステップS7)。そして、各マージ対象
ファイルに共通する定義内容のデータフィールドをサー
チする(ステップS8)。この場合、マージ対象ファイ
ルとして指定されたファイルAおよびファイルBに共通
する定義内容のデータフィールドとしては、「集計出庫
数」、「商品名称」によって定義されたデータフィール
ドが存在する為、この共通データフィールドを出力ファ
イルのデータフィールドとして出力レコードメモリ17
に設定する(ステップS9)。次に、各マージ対象ファ
イル毎に各ファイル固有の定義内容を持ったデータフィ
ールドを出力ファイルのデータフィールドとして出力レ
コードメモリ17に設定する(ステップS10)。この
場合、ファイルA固有のデータフィールドとしては「出
庫数1」のデータフィールド、またファイルB固有のデ
ータフィールドとしては「出庫数2」のデータフィール
ドが存在する為、これらのデータフィールドが出力ファ
イルのデータフィールドとなる。この結果、図3に示す
如く、出力ファイルZのレコード構造は、キーフィール
ドに続いて定義内容が「集計出庫数」、「商品名称」、
「出庫数1」、「出庫数2」のデータフィールドとな
り、このレコード構造にしたがったフィールドエリアが
出力レコードメモリ17上に設定される。このように各
マージ対象ファイルに共通する定義内容を持ったデータ
フィールドについては重複設定せずに夫々1エリアのみ
の設定となるが、各ファイル固有のデータフィールドに
ついては個々に設定されたレコード構造となる。 【0013】このようにして出力ファイルのレコード構
造を作成する処理が終ると、このレコード構造に基づい
てマージ対象ファイルA、Bをマージする処理に移る。
ここで、マージ処理の概要を簡単に説明しておく。マー
ジ対象ファイルとして指定された複数のファイルのうち
先に指定したファイルAから優先的に処理してファイル
Aのレコードデータを出力ファイルのレコード構造に基
づいてそのまま出力ファイルに格納する。そして、次の
ファイルBを処理する際に、ファイルBから読み出した
レコード中のデータが文字列データか数値列データかに
基づいて処理する。即ち、ファイルBのデータが文字列
データである場合、それと同一のファイルAのデータが
既に格納されていれば、ファイルBの当該データを格納
せず、ファイルAのデータが格納されている場合に限っ
てファイルBのデータを出力ファイルに格納する。ま
た、数値列データの場合には、既に格納されているファ
イルAのデータにファイルBのデータを集計する。この
際、ファイルAに存在しないデータであれば、ゼロ集計
となり、事実上ファイルBのデータが格納されることに
なる。 【0014】以下、マージ処理を詳述する。先ず、マー
ジ対象ファイルとして指定された複数のファイルのう
ち、最初に指定したファイルAを第1ファイルとして指
定する(ステップS11)。そして、この指定ファイル
からレコードデータを読み出して読出レコードメモリ1
8にセットする(ステップS12)。すると、この読出
レコードメモリ18内にセットされた読出レコードの中
からキーフィールド内のデータと各データフィールド内
のデータとを出力レコードメモリ17内の対応するフィ
ールドエリアに書き込む(ステップS13)。即ち、先
に指定したファイルAを優先処理する為にこのファイル
Aから読み出したレコードデータを出力レコードメモリ
17に書き込む。そして、この出力レコードメモリ17
内のレコードデータをディスク装置15内の出力ファイ
ルZに格納する(ステップS14)。このようにして1
レコード分の処理が終ったらステップS15に進み、指
定ファイルA内に他のレコードが存在するか否かを調
べ、存在すればステップS12に戻って当該レコードデ
ータを読み出し、以下、指定ファイルAの最終レコード
まで1レコードずつ上述の動作を繰り返す(ステップS
12〜S15)。 【0015】しかして、第1ファイルAに対する処理が
終了すると、ステップS16に進み、次のファイルが存
在するか否かを調べる。いま、ファイルBが存在する
為、そのファイルBを指定する(ステップS17)。そ
して、指定ファイルBからレコードデータを読み出し
(ステップS18)、このレコードのキーと同一のレコ
ードをディスク装置15内の出力ファイルZからサーチ
する(ステップS19)。この結果、ファイルAには存
在せずにファイルBのみに存在するレコードであれば、
ステップS20でそのことが検出されてステップS21
に進み、読出レコードメモリ18内のレコードからキー
フィールドのデータと各データフィールドのデータを出
力レコードメモリ17の対応するフィールドエリアに書
き込む。そして、出力レコードメモリ17内のレコード
データをディスク装置15内の出力ファイルZに格納す
る(ステップS22)。その後、指定ファイルBに他の
レコードが存在していれば、ステップS23でそのこと
が検出されてステップS18に戻り、指定ファイルBか
ら次のレコードデータを読み出す。 【0016】一方、読出レコードと同一キーのレコード
が出力ファイルZ内に有れば、図6のステップS24に
進み、出力ファイルZ内の同一キーレコードを出力レコ
ードメモリ17へロードする。そして、読出レコードメ
モリ18にセットされている読出レコードの第1データ
フィールドを指定し(ステップS25)、この指定フィ
ールド内のデータ形式が数値列データか文字列データか
を調べる(ステップS26)。いま、指定ファイルBか
ら読み出された読出レコードの第1データフィールドは
図3に示す如く「出庫数2」のデータフィールドで、そ
のフィールド内のデータは数値列データである為、ステ
ップS30に進み、出力レコードメモリ17の該当フィ
ールドのデータに読出レコードの指定フィールドのデー
タを集計する。なお、この場合、ファイルAには「出庫
数2」のデータフィールドは存在しない為、出力レコー
ドメモリ17の該当フィールドのデータは「0」、した
がってこの場合の集計処理は読出レコードの指定フィー
ルドのデータを出力レコードメモリ17内の該当フィー
ルドに書き込む処理と実質的には変らない。次にステッ
プS31に進み、指定フィールドは読出レコードの最終
フィールドか否かを調べ、最終フィールドでなければス
テップS32に進み、次のデータフィールドを指定した
のちステップS26に戻る。この場合、次のデータフィ
ールドは「集計出庫数」で、そのフィールド内のデータ
も数値列データであるから、ステップS30の集計処理
の実行に移る。 【0017】更に、次のデータフィールドは「商品名
称」で、そのフィールド内のデータは文字列データであ
るから、ステップS26でそのことが検出されてステッ
プS27に進み、出力レコードメモリ17の該当フィー
ルドを検索し、データ有無をチェックする。ここで、
「商品名称」のデータフィールドはファイルAにも存在
している為、ステップS28で該当フィールドにデータ
有りが検出されてステップS31に進むが、ファイルB
固有のデータフィールドであれば、ステップS28でデ
ータ無しが検出されてステップS29に進み、出力レコ
ードメモリ17の該当フィールドエリアに読出レコード
の該当フィールドのデータを書き込んだのち、ステップ
S31に進む。以下、指定フィールドが読出レコードの
最終フィールドになるまで読出レコードのデータフィー
ルドを1つずつ順次指定しながら上述の動作を繰り返
す。 【0018】しかして、読出レコードの最終フィールド
まで処理したら図5のステップS22に進み、出力レコ
ードメモリ17のレコードデータをディスク装置15内
の出力ファイルに格納する。そして、指定ファイルBに
他のレコードが有るか否かを調べ(ステップS23)、
指定ファイルBの全レコードに対する処理が終るまでス
テップS18に戻り、上述の動作を繰り返す。これによ
って、ファイルBに対する処理が終ったら、ステップS
16に戻り、マージ対象ファイルとして指定された次の
ファイルの存在有無を調べる。この場合、ファイル無し
が検出されるので、この時点でファイルマージ処理は終
了する。 【0019】なお、上記実施例はマージ対象ファイルと
して指定された複数のファイルをマージすることによっ
て得られた併合ファイルを出力ファイルとしたが、この
併合ファイルを更にマージ対象ファイルとして他のファ
イルとマージするようにしてもよい。 【0020】 【発明の効果】この発明によれば、複数のファイルをマ
ージする際に各ファイルに共通する定義内容を持ったデ
ータフィールドを重複して併合することを防止すること
ができるので、併合ファイルのレコード長を極めて短か
くすることが可能となる。その結果、併合ファイルを処
理する際にその処理効率を大幅に向上させることが可能
となると共に、併合ファイルを格納するメモリ容量も大
幅に削減でき、更には併合ファイルを出力した際にその
出力形態が簡素化される為、その視読性が極めて良くな
る。
【図面の簡単な説明】
【図1】この発明の機能ブロック図。
【図2】一実施例を示したファイル処理装置のブロック
構成図。 【図3】図2に示したファイル名メモリ16の構成図。 【図4】マージ対象ファイルの各レコード構造およびマ
ージ対象ファイルをマージすることによって得られる出
力ファイルのレコード構造の具体例を示した図。 【図5】上記実施例におけるファイルマージ処理の一部
を示したフローチャート。 【図6】図5に示したファイルマージ処理に続くフロー
チャート。 【符号の説明】 11 CPU 12 主記憶装置 12−1 ROM 13 キー入力部 16 ファイル名メモリ 17 出力レコードメモリ 18 読出レコードメモリ
構成図。 【図3】図2に示したファイル名メモリ16の構成図。 【図4】マージ対象ファイルの各レコード構造およびマ
ージ対象ファイルをマージすることによって得られる出
力ファイルのレコード構造の具体例を示した図。 【図5】上記実施例におけるファイルマージ処理の一部
を示したフローチャート。 【図6】図5に示したファイルマージ処理に続くフロー
チャート。 【符号の説明】 11 CPU 12 主記憶装置 12−1 ROM 13 キー入力部 16 ファイル名メモリ 17 出力レコードメモリ 18 読出レコードメモリ
Claims (1)
- (57)【特許請求の範囲】同一のキーフィールドを有する同種の複数の ファイルを
併合対象ファイルとして指定するファイル指定手段と、 このファイル指定手段によって指定された各ファイルの
レコードを構成するフィールドから全てのファイルに含
まれる項目名を示す共通データフィールドと各ファイル
固有の項目名を示す固有データフィルードとを検索する
フィールド検索手段と、 このフィールド検索手段によって検索された共通データ
フィルードと固有データフィールドをキーフィールドか
ら成るレコード構造を作成するレコード構造作成手段
と、 前記ファイル指定手段によって指定された各ファイルを
レコードのキーに従って前記レコード構造作成手段によ
って作成されたレコード構造に基づいてマージするファ
イル併合手段と、 を具備したことを特徴とするファイル処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02373491A JP3245873B2 (ja) | 1991-01-25 | 1991-01-25 | ファイル処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02373491A JP3245873B2 (ja) | 1991-01-25 | 1991-01-25 | ファイル処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04250526A JPH04250526A (ja) | 1992-09-07 |
JP3245873B2 true JP3245873B2 (ja) | 2002-01-15 |
Family
ID=12118541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02373491A Expired - Fee Related JP3245873B2 (ja) | 1991-01-25 | 1991-01-25 | ファイル処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3245873B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5018518B2 (ja) * | 2008-01-31 | 2012-09-05 | 富士通株式会社 | ライブラリ自動生成装置、ライブラリ自動生成方法およびライブラリ自動生成プログラム |
JP5430543B2 (ja) * | 2010-12-07 | 2014-03-05 | ヤフー株式会社 | ユーザ情報統合装置及び方法 |
-
1991
- 1991-01-25 JP JP02373491A patent/JP3245873B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH04250526A (ja) | 1992-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100402913B1 (ko) | 데이타베이스검색을위한병렬처리시스템 | |
JPH0765035A (ja) | 構造化文書検索装置 | |
JP3452531B2 (ja) | データ・マイニングする方法およびシステム | |
JP3245873B2 (ja) | ファイル処理装置 | |
JP3631676B2 (ja) | データベース管理システム、顧客管理システム、記録媒体 | |
JP2925042B2 (ja) | 情報リンク生成方法 | |
JP2800485B2 (ja) | 物流倉庫の出庫管理装置および方法 | |
JP3070093B2 (ja) | レコード処理装置 | |
JPH11306183A (ja) | データベース検索システム | |
JP2788849B2 (ja) | 連番記述によるグルーピング方法 | |
JP3145727B2 (ja) | データの検索装置 | |
JPH06214849A (ja) | データベースシステム | |
JP3052380B2 (ja) | 項目選択装置 | |
JPH04250568A (ja) | レコード検索装置 | |
JP3318754B2 (ja) | ファイル更新処理装置 | |
JPH04559A (ja) | データ検索方式 | |
JPH0675254B2 (ja) | 開係データベース演算システム | |
JP3424473B2 (ja) | データ処理システム | |
JP2785966B2 (ja) | 外部キー動的解決処理方法 | |
JPS60225938A (ja) | 情報検索方式 | |
JPH0327457A (ja) | マルチメディアデータ項目属性定義方式 | |
JPH06175897A (ja) | データベース | |
JPH0224778A (ja) | データ処理装置 | |
JPH04233664A (ja) | データベース管理システム | |
JP2003330957A (ja) | 集合属性検索システム、集合属性検索方法および集合属性検索プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071102 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081102 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091102 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101102 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |