(57)【特許請求の範囲】
【請求項１】
新規の可変長データが発生した場合、新規データ取込手段によって、発生した前記可変長データ及び該可変長データの発生時に所定の規則に従って自動的に作成される文字データで構成される区切りマーカーを取り込む新規データ取込ステップと、
識別子作成手段によって、取り込まれた前記区切りマーカーを構成する文字データの先頭から所定数の文字データで構成されるマーカー識別子を作成する識別子作成ステップと、
可変長データ格納手段によって、データ長を先頭に含む前記可変長データで構成される可変長項目を可変長データ格納装置のストアドデータファイルに隙間無く格納する可変長データ格納ステップと、
マーカー管理項目登録手段によって、前記区切りマーカー及び前記区切りマーカーに対応する前記可変長データの前記ストアドデータファイルにおける格納位置からなるマーカー管理項目を前記可変長データ格納装置のマーカー管理ファイルに登録するマーカー管理項目登録ステップと、
マーカー識別子管理項目登録手段によって、前記マーカー識別子及び前記区切りマーカーの前記マーカー管理ファイルにおける格納位置からなるマーカー識別子管理項目を前記可変長データ格納装置のマーカー管理用メモリ領域に登録するマーカー識別子管理項目登録ステップと、を有することを特徴とする可変長データ格納方法。
【請求項２】
前記区切りマーカーは、前記マーカー管理用メモリ領域及び前記マーカー管理ファイルを参照して、既に区切マーカーとして使用されていないことを確認して使用されることを特徴とする請求項１に記載の可変長データ格納方法。
【請求項３】
データ長を先頭に含む可変長データで構成される複数の可変長項目が隙間無く格納されるストアドデータファイルと、区切りマーカー及び前記区切りマーカーに対応する前記可変長データの前記ストアドデータファイルにおける格納位置からなる複数のマーカー管理項目が登録されるマーカー管理ファイルと、前記区切りマーカーを構成する前記文字データの先頭から所定数の文字データで構成されるマーカー識別子及び前記区切りマーカーの前記マーカー管理ファイルにおける格納位置からなる複数のマーカー識別子管理項目が登録されるマーカー管理用メモリ領域と、を備えるデータ格納装置から所望の可変長データを読み出す可変長データ読出方法であって、
入力された検索情報を構成する文字データに基づいて、前記マーカー識別子管理項目の前記マーカー識別子と比較するためのマーカー識別子を作成する識別子作成ステップと、
前記作成されたマーカー識別子が前記マーカー識別子管理項目の前記マーカー識別子と一致するか否かを判定する識別子判定ステップと、
前記識別子判定ステップにおいて、前記作成されたマーカー識別子が前記マーカー識別子管理項目の前記マーカー識別子と一致すると判定された場合、前記検索情報が前記マーカー管理項目の前記区切りマーカーと一致するか否かを判定する検索情報判定ステップと、
前記検索情報判定ステップにおいて、前記検索情報が前記マーカー管理項目の前記区切りマーカーと一致すると判定された場合、前記区切りマーカーに対応する前記格納位置に基づいて、前記ストアドデータファイルにアクセスし、所望の可変長データを読み出す可変長データ読出ステップと、を有することを特徴とする可変長データ読出方法。
【請求項４】
前記マーカー管理用メモリ領域に未処理のマーカー識別子管理項目がある場合に、
前記識別子判定ステップにおいて、前記作成されたマーカー識別子が前記マーカー管理識別子項目の前記マーカー識別子と一致しないと判定された場合、
前記検索情報判定ステップにおいて、前記検索情報が前記マーカー管理項目の前記区切りマーカーと一致しないと判定された場合、
前記検索情報判定ステップにおいて、前記検索情報が前記マーカー管理項目の前記区切りマーカーと一致すると判定され、かつ前記可変長データ読出ステップにおいて、前記所望の可変長データが読み出された場合のいずれの場合でも、前記マーカー管理用メモリ領域に未処理のマーカー識別子管理項目が無くなるまで、前記識別子判定ステップ、前記検索情報判定ステップ及び前記可変長データ読出ステップを繰り返すことを特徴とする請求項３に記載の可変長データ読出方法。
【請求項５】
前記検索情報を構成する文字データの文字数は、前記区切りマーカーを構成する文字データの文字数より少ない場合を含むことを特徴とする請求項３又は４に記載の可変長データ読出方法。
【請求項６】
請求項１又は２に記載の可変長データ格納方法の各ステップ及び請求項３〜５に記載の可変長データ読出方法の各ステップをコンピュータに実行させることを特徴とする可変長データ格納・読出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおけるファイル管理、特に、個々の内容や長さが不定である可変長データをファイル化して格納する格納装置、格納装置への格納方法、格納装置からの読出方法及びそのためのプログラムに関する。
【背景技術】
【０００２】
読み取った長尺原稿の画像データを複数のファイルに分割し、分割された画像データを予め設定された標準的な方式（ＪＰＥＧ）で圧縮し、画像データの内容を示すＪＰＥＧマーカーを付与して画像データを格納するデータ格納方法が提案されている（特許文献１参照）。この方法によれば、メモリ量に応じて圧縮処理を行う画像サイズを変更することで、長尺原稿の読み取り画像を他の印刷装置やパソコンなどでも扱える標準的な画像フォーマットで、標準管理サイズ以上の画像が取り扱えることができる。
【０００３】
また、可変長データを取り扱う方法として、可変長データの最大長を予測し、この予測した最大長を項目長とする固定長データ域をデータファイルに確保することで、擬似的に可変長データを扱えるようにする方法がある。各可変長データは、固定長データ域の先頭から記録され、余った部分には処理・操作対象データとしては通常使われない特殊なデータが詰められるという方法である。この方法によれば、可変長データをあたかも固定長データとして扱うことができるので、各可変長データのデータファイルにおける位置を簡単に割り出すことができるが、常に可変長データの予想される最大長の大きさの記憶域が確保されるため、格納装置の記憶域に無駄が生じるという問題点と、仮に、可変長データの予想される最大長を越える可変長データが発生した場合に対応が複雑になるという問題点がある。
【０００４】
また、可変長データを取り扱う方法として、可変長データを隙間無く順にデータファイルに格納すると共に、読み出しに際しては、データファイルの先頭から１個ずつ可変長ワードを読み出すことで、所望の可変長データを探し出す方法もある。この方法によれば、可変長データの最大長を予測し、この予測した最大長を項目長とする固定長データ域をデータファイルに確保しないので、格納装置の記憶域の有効利用ができるが、所望の可変長データを読み出すためには、データファイルの先頭から１個ずつ可変長データを読み出して、所望の可変長データであるかどうかを確認しなければならないため、処理に時間を要するという問題点がある。
【０００５】
従来技術のこのような問題点を解決する例として、特許文献２や特許文献３に示されるものがある。
【０００６】
特許文献２に記載されたものは、複数の可変長データを格納する少なくとも１つのデータファイル、データファイルと１対１の対応関係を持ち、各可変長データの中の各フィールドのデータファイルにおける格納位置を保持する少なくとも１つの索引情報ファイル、及び各検索情報の索引ファイル名及び各検索情報の索引ファイルにおける格納位置を保持する少なくとも１つの検索情報ファイルからなり、各可変長データには、属性識別子及び終了識別子をそれぞれ直前及び直後に付加すると共に、ある可変長データの終了識別子と次の可変長データの属性識別子との間に必要に応じて検索の対象とならない不定長の付属データを付加するというものである。
【０００７】
特許文献３に記載されたものは、連続する可変長データがブロック化されて格納されるデータファイルを作成又は更新する時に、データファイルに格納された全ブロック中の可変長データ数の平均値である全平均ブロック化データ数と、データファイルの先頭ブロックから各ブロック迄の平均ブロック化データ数である部分平均ブロック化データ数をデータファイル中に格納し、データファイルの指定された番号の可変長データを探し出す時に、全平均ブロック化データ数と部分平均ブロック化データ数と指定された可変長データの番号とを用いて指定された可変長データを探し出すというものである。
【特許文献１】特開２００７−２２８５５５号公報
【特許文献２】特開平６−６０１２０号公報
【特許文献３】特開平８−２６３３３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献２に記載されたものは、検索情報ファイルが１つではないことから、検索指定がされた場合には、指定の検索情報が見付かるまで、検索情報ファイルを次々と主記憶装置上にオープンしなければならないので、処理の高速化が必ずしも充分には達成できないという問題点があり、また、必要に応じてではあるが、検索の対象とならない不定長の付属データをデータファイルに付加するため、格納装置の記憶域の有効利用が必ずしも充分とは言えないという問題点もある。
【０００９】
また、特許文献３に記載されたものは、可変長データがデータファイルに連続して格納されるので、格納装置の記憶域の有効利用ができるが、指定された可変長データを探し出すためには、先ず、指定された可変長データの番号を全平均ブロック化データ数で除算して、指定された可変長データが格納されていると思われるブロックのブロック番号を計算し、次いで、計算されたブロック番号のブロックに位置付けし、そのブロックの先頭に格納されている可変長データを読み出して、その番号を調べ、その番号が、指定された可変長データの番号よりも大きい時は、指定された可変長データは、そのブロックよりも前のブロックに格納されていることになるので、その場合には、計算により求められたブロックの部分平均ブロック化データ数を参照し、指定された可変長データの番号を部分平均ブロック化データ数で除算して再度、指定された可変長データが格納されていると思われるブロックのブロック番号を計算するという処理を、計算されたブロックの先頭データのデータ番号が指定された可変長データの番号以下になるまで繰り返し、繰り返し計算されたブロックの先頭データのデータ番号が指定された可変長データの番号以下になった場合、そのブロックの先頭から可変長データを逐次読み出して、指定された可変長データであるかどうかを確認するというものであり、データファイルの先頭から１個づつ可変長ワードを読み出して、指定された可変長データであるかどうかを確認しなければならないことに比べて処理の高速化を図ることはできるものの、指定された可変長データの位置を直ちに求めることができないため、処理の高速化が必ずしも計れないという問題点がある。
【００１０】
本発明は、これら従来技術の問題点に鑑みてなされたものであり、可変長データをストアドデータファイルに隙間無く格納するようにした場合でも、各可変長データの区切り位置を明確且つ高速に判定することができるようにした可変長データ格納装置、可変長データ格納方法、可変長データ読出方法及びそのプログラムを提供することを解決すべき課題とするものである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の可変長データ格納装置は、データ長を先頭に含む可変長データで構成される複数の可変長項目が隙間無く格納されるストアドデータファイルと、区切りマーカー及び前記区切りマーカーに対応する前記可変長データの前記ストアドデータファイルにおける格納位置からなる複数のマーカー管理項目が登録されるマーカー管理ファイルと、前記区切りマーカーを構成する前記文字データの先頭から所定数の文字データで構成されるマーカー識別子及び前記区切りマーカーの前記マーカー管理ファイルにおける格納位置からなる複数のマーカー識別子管理項目が登録されるマーカー管理用メモリ領域と、を備えることを特徴とする。
【００１２】
上記構成によれば、マーカー管理ファイルより容量サイズの小さなマーカー管理用メモリ領域に登録されているマーカー識別子管理項目を利用して、マーカー管理ファイルに登録されているマーカー管理項目を直接読み出し、この読み出したマーカー管理項目に格納されている可変長データのストアドデータファイルにおける格納位置に基づいて所望の可変長データを直接読み出すことができることから、処理に際して、登録されているマーカー識別子管理項目の全てをコンピュータの主記憶装置に展開したとしても、主記憶装置を不用意に圧迫することもないので、コンピュータのメモリ資源を有効に利用しながら、所望の可変長データの高速読出が可能な可変長データ格納装置を提供することができる。
【００１３】
また、前記区切マーカーは、前記可変長データの発生時に、所定の規則にしたがって自動的に作成される文字データであることが好ましい。
【００１４】
上記構成によれば、区切りマーカーは、可変長データの発生時に、所定の規則にしたがって自動的に作成されるので、人手による入力ミスを防止することができる。
【００１５】
また、前記所定の規則は、ジャーナル情報が印刷された日時であることが好ましい。
【００１６】
上記構成によれば、所定の規則は、ジャーナル情報が印刷された日時なので、可変長データが、例えば、取引データの場合には、取引の完了が確定した可変長データについてだけ、可変長データ格納装置に格納されることになる。
【００１７】
また、前記課題を解決するために、本発明の可変長データ格納方法は、データ長を先頭に含む可変長データで構成される複数の可変長項目をストアドデータファイルに隙間無く格納する可変長データ格納ステップと、
区切りマーカー及び前記区切りマーカーに対応する前記可変長データの前記ストアドデータファイルにおける格納位置からなる複数のマーカー管理項目をマーカー管理ファイルに登録するマーカー管理項目登録ステップと、
前記区切りマーカーを構成する前記文字データの先頭から所定数の文字データで構成されるマーカー識別子及び前記区切りマーカーの前記マーカー管理ファイルにおける格納位置からなる複数のマーカー識別子管理項目をマーカー管理用メモリ領域に登録するマーカー識別子管理項目登録ステップと、を有することを特徴とする。
【００１８】
また、上記構成によれば、本発明の可変長データ格納方法に有用な可変長データ格納方法を提供することができる。
【００１９】
また、前記区切マーカーは、前記マーカー管理用メモリ領域及び前記マーカー管理ファイルを参照して、既に区切マーカーとして使用されていないことを確認して使用されることが好ましい。
【００２０】
また、上記構成によれば、区切りマーカーは、マーカー管理ファイルに既に区切りマーカーとして使用されていないことを確認した上で使用されるので、区切りマーカーを自動的に作成する機構に障害が生じて、既使用の区切りマーカーと同じ区切りマーカーが誤って自動的に作成されたとしても、これに対処することできる。例えば、人手によって区切りマーカーを入力するようにした場合に生じ得る入力ミスにも対処できる。
【００２１】
また、前記課題を解決するために、本発明の可変長データ読出方法は、データ長を先頭に含む可変長データで構成される複数の可変長項目が隙間無く格納されるストアドデータファイルと、前記区切りマーカー及び前記区切りマーカーに対応する前記可変長データの前記ストアドデータファイルにおける格納位置からなる複数のマーカー管理項目が登録されるマーカー管理ファイルと、前記区切りマーカーを構成する前記文字データの先頭から所定数の文字データで構成されるマーカー識別子及び前記区切りマーカーの前記マーカー管理ファイルにおける格納位置からなる複数のマーカー識別子管理項目が登録されるマーカー管理用メモリ領域とを備える可変長データ格納装置から所望の可変長データを読み出す可変長データ読出方法であって、
入力された検索情報を構成する文字データに基づいて、前記マーカー識別子管理項目の前記マーカー識別子と比較するためのマーカー識別子を作成する識別子作成ステップと、
前記作成されたマーカー識別子が前記マーカー識別子管理項目の前記マーカー識別子と一致するか否かを判定する識別子判定ステップと、
前記識別子判定ステップにおいて、前記作成されたマーカー識別子が前記マーカー識別子管理項目の前記マーカー識別子と一致すると判定された場合、前記検索情報が前記マーカー管理項目の前記区切りマーカーと一致するか否かを判定する検索情報判定ステップと、
前記検索情報判定ステップにおいて、前記検索情報が前記マーカー管理項目の前記区切りマーカーと一致すると判定された場合、前記区切りマーカーに対応する前記格納位置に基づいて、前記ストアドデータファイルにアクセスし、所望の可変長データを読み出す可変長データ読出ステップと、を有することを特徴とする。
【００２２】
上記構成によれば、マーカー管理ファイルより容量サイズの小さなマーカー管理用メモリ領域に登録されているマーカー識別子管理項目を利用して、マーカー管理ファイルに登録されているマーカー管理項目を直接読み出し、この読み出したマーカー管理項目に格納されている可変長データのストアドデータファイルにおける格納位置に基づいて所望の可変長データを直接読み出すことができる。したがって、登録されているマーカー識別子管理項目の全てをコンピュータの主記憶装置に展開したとしても、主記憶装置を不用意に圧迫することもないので、コンピュータのメモリ資源を有効に利用しながら、所望の可変長データの高速読出が可能な可変長データ読出方法を提供することができる。
【００２３】
また、前記マーカー管理用メモリ領域に未処理のマーカー識別子管理項目がある場合に、
前記識別子判定ステップにおいて、前記作成されたマーカー識別子が前記マーカー管理識別子項目の前記マーカー識別子と一致しないと判定された場合、
前記検索情報判定ステップにおいて、前記検索情報が前記マーカー管理項目の前記区切りマーカーと一致しないと判定された場合、
前記検索情報判定ステップにおいて、前記検索情報が前記マーカー管理項目の前記区切りマーカーと一致すると判定され、かつ前記可変長データ読出ステップにおいて、前記所望の可変長データが読み出された場合のいずれの場合でも、前記マーカー管理用メモリ領域に未処理のマーカー識別子管理項目が無くなるまで、前記識別子判定ステップ、前記検索情報判定ステップ及び前記可変長データ読出ステップを繰り返すことが好ましい。
【００２４】
上記構成によれば、マーカー管理用メモリ領域に未処理のマーカー識別子管理項目が無くなるまで、識別子判定ステップ、検索情報判定ステップ及び可変長データ読出ステップを繰り返すので、漏れのない検索・読出が可能になる。
【００２５】
また、前記検索情報を構成する文字データの文字数は、前記区切りマーカーを構成する文字データの文字数より少ない場合を含むことが好ましい。
【００２６】
上記構成によれば、検索情報を構成する文字データの文字数を区切りマーカーを構成する文字データの文字数より少なくして検索指定することができるので、上位概念で一致する区切りマーカーを持つ可変長データを１回の検索指定で全て検索することができる。
【００２７】
また、本発明の格納・読出プログラムは、上の可変長データ格納方法及び可変長データ読出方法の各ステップをコンピュータに実行させることができる。
【００２８】
上記構成によれば、格納・読出プログラムをコンピュータにインストールし、実行させることによって、このコンピュータを、可変長データ格納装置、可変長データ格納方法及び可変長データ読出方法を実現するシステムとして構築することができる。
【発明を実施するための最良の形態】
【００２９】
以下、図面を参照して本発明の一実施形態を詳細に説明する。
【００３０】
［コンピュータシステム］
まず、本発明の可変長データ格納装置、可変長データ格納方法及び可変長データ読出方法を実施するためのコンピュータシステムについて、図１のブロック図を用いて説明する。
【００３１】
図１において、１〜８は、それぞれ、ＣＰＵ（Central Processing Unit）、キーボード、ディスプレイ、プリンタ、主記憶装置、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、外部記憶装置及びコンピュータの内部バスを示す。ＣＰＵ１、キーボード２、ディスプレイ３、プリンタ４、主記憶装置５、ＥＥＰＲＯＭ６及び外部記憶装置７は、コンピュータの内部バス８によって相互接続されている。ＥＥＰＲＯＭ６及び外部記憶装置７は、本発明の可変長データ格納装置を構成する。
【００３２】
主記憶装置５には、ＯＳ常駐領域、可変長データ格納・読出プログラム領域及び各種作業領域等が設けられ、外部記憶装置７には、ストアドデータファイル［１］〜［ｎ］、マーカー管理ファイル及び各種ファイル等が格納される。ＥＥＰＲＯＭ６は、マーカー管理用メモリ領域として使用される。
【００３３】
［ストアドデータファイルの構成］
次に、本発明のストアドデータファイルについて、図２の模式図を用いて説明する。
【００３４】
図２に示されるように、ストアドデータファイル［１］には、ファイルヘッダーがファイルの先頭に配置され、このファイルヘッダーに引き続く位置から可変長項目が隙間無く次々と格納される。
【００３５】
以下では、ストアドデータファイル［１］の構成についてのみ説明するが、他のストアドデータファイル［２］〜［ｎ］も同じ構成を持つ。
【００３６】
ファイルヘッダーは、ストアドデータファイル［１］がテキストデータファイルであることを示すファイル種別、ストアドデータファイル［１］全体のチェックサム値を示すデータ或いはストアドデータファイル［１］の容量サイズを示すデータ等を保持する。
【００３７】
各可変長項目は、データ長を先頭に含む可変長データから構成される。例えば、可変長項目［１］は、データ長［１］を先頭に含む可変長データ［１］で構成され、可変長項目［２］は、データ長［２］を先頭に含む可変長データ［２］で構成され、可変長項目［ｎ］は、データ長［ｎ］を先頭に含む可変長データ［ｎ］で構成される。
【００３８】
データ長は固定長のデータである。データ長［１］〜［ｎ］は、それぞれ、可変長データ［１］〜［ｎ］のデータ長を示す。なお、可変長データの格納形式は自由である。
【００３９】
［ストアドデータファイルの新規作成］
次に、ストアドデータファイルを新規に作成する場合について説明する。
【００４０】
ファイル管理上の制約から、ストアドデータファイル［１］は、所定の容量サイズ以上のものとすることはできないので、可変長データの発生に伴って、次々と可変長データがストアドデータファイル［１］に格納されると、やがてストアドデータファイル［１］に空き記憶域がなくなる。
【００４１】
この場合には、ストアドデータファイルを新規に作成してストアドデータファイル［２］とし、続いて発生した可変長データをこの新規に作成したストアドデータファイル［２］に格納する。ストアドデータファイル［２］にも空き記憶域がなくなったら、更に別のストアドデータファイル［３］を新規に作成して同様に可変長データを格納する。このようにして、コンピュータの外部記憶装置７に空き領域がある限り、可変長データを格納することができる。
【００４２】
［マーカー管理ファイルの構成］
次に、本発明のマーカー管理ファイルの構成について、図３の模式図を用いて説明する。
【００４３】
図３に示されるように、マーカー管理ファイルには、ファイルヘッダーがファイルの先頭に配置されると共に、複数のマーカー管理項目が登録される。本発明では、ストアドデータファイルが複数になっても、マーカー管理ファイルは一個作成されるのみである。
【００４４】
ファイルヘッダーは、マーカー管理ファイルがテキストデータファイルであることを示すファイル種別、マーカー管理ファイル全体のチェックサム値を示すデータ或いはマーカー管理ファイルの容量サイズを示すデータ等を保持する。これは、ストアドデータファイルと同様である。
【００４５】
各マーカー管理項目は、マーカー名、ファイルＩＤ及び格納位置から構成される。例えば、マーカー管理項目［１］は、区切りマーカー［１］、ファイルＩＤ“１”及び格納位置“００００００００”から構成され、マーカー管理項目［２］は、区切りマーカー［２］、ファイルＩＤ“１”及び格納位置“００１２３４５６”から構成され、マーカー管理項目［ｎ］は、区切りマーカー［ｎ］、ファイルＩＤ“１”及び格納位置“０７８９０１２３”から構成され、マーカー管理項目［ｘ］は、区切りマーカー［ｘ］、ファイルＩＤ“１”及び格納位置“３４５６７８９０”から構成され、マーカー管理項目［ｘ＋１］は、区切りマーカー［ｘ＋１］、ファイルＩＤ“２”及び格納位置“００００００００”から構成され、マーカー管理項目［ｘ＋ｎ］は、区切りマーカー［ｘ＋ｎ］、ファイルＩＤ“２”及び格納位置“０９０１２３４５”から構成される。
【００４６】
区切りマーカーは固定長であり、ファイルＩＤ及び格納位置も固定長なので、各マーカー管理項目は固定長となる。
【００４７】
ファイルＩＤは、各区切りマーカーに対応する可変長データが格納されているストアドデータファイルの番号を示し、格納位置は、そのストアドデータファイルにおける各区切りマーカーに対応する可変長データの先頭位置を示す。
【００４８】
先に説明したように、可変長データの先頭には、その可変長データのデータ長が格納されているので、このデータ長を基にして所望の可変長データを正しく取り出すことができる。
例えば、ある検索情報で検索指定が行われ、その検索情報と区切りマーカー［１］とが一致した場合には、ストアドデータファイル［１］の“００００００００”が指示され、可変長データ［１］のデータ長［１］が読み出される。次いで、このデータ長［１］に従う長さのデータが読み出される。この読み出されたデータが所望の可変長データである。
【００４９】
同様にして、ある検索情報で検索指定が行われ、その検索情報と区切りマーカー［２］とが一致した場合には、ストアドデータファイル［１］の“００１２３４５６”が指示される。その検索情報と区切りマーカー［ｎ］とが一致した場合には、ストアドデータファイル［１］の“０７８９０１２３”が指示される。その検索情報と区切りマーカー［ｘ］とが一致した場合には、ストアドデータファイル［１］の“３４５６７８９”が指示される。その検索情報と区切りマーカー［ｘ＋１］とが一致した場合には、ストアドデータファイル［２］の“００００００００”が指示され、その検索情報と区切りマーカー［ｘ＋ｎ］とが一致した場合には、ストアドデータファイル［２］の“０９０１２３４５”が指示され、それぞれ、所望の可変長データが読み出される。
【００５０】
なお、格納位置“００００００００”は、ファイルヘッダーに引き続き位置を示しているが、ストアドデータファイルの先頭位置を格納位置の先頭としてもよい。
【００５１】
区切りマーカーは、ある規則に従って自動的に作成される文字データとするのが好ましい。区切りマーカーは、可変長データが発生する度にカウントアップされるシリアル番号でも良いが、可変長データが取引によって発生する取引データの場合には、可用性の観点から、取引の行われた日付・時刻データであることが好ましい。
【００５２】
日付・時刻データは、例えば、“ＹＹ／ＭＭ／ＤＤ／ｈｈ／ｍｍ／ｓｓ”という形式を取る。“ＹＹ”は西暦の下２桁、“ＭＭ”は月、“ＤＤ”は日、“ｈｈ”は時（２４時）、“ｍｍ”は分、“ｓｓ”は秒をそれぞれ示す。“／”（スラッシュ）はデータ間の区切りを示す。なお、日付・時刻データの形式が上で説明した例でなくても良いことは言うまでもない。
【００５３】
このような日付・時刻データを区切りマーカーとして用いると、特定の日付・時刻の取引データを取り出すことができるだけでなく、検索情報を日又は月に留めれば、検索指定された日又は月に行われた取引の内容を示す可変長データの全てを取り出し、集計することもできる。
【００５４】
また、このように、可変長データが取引データの場合には、日付・時刻データは、取引の完了時、例えば、可変長データの発生元がＰＯＳ端末のキャッシュレジスタの場合には、ジャーナル情報が印刷された日付・時刻データとするのが好ましい。
【００５５】
なお、上記説明では、区切りマーカーとして、規則性のある文字データの例を説明しているが、規則性の無いデータ（例えば、顧客ID等）を使用することも可能である。
【００５６】
［マーカー管理用メモリ領域の構成］
このように、本発明のマーカー管理ファイルによれば、ある検索情報で検索指定が行われると、その検索情報と一致する区切りマーカーに対応する可変長データの先頭位置を直接指示することができるので、処理の高速化をそれなりに達成することは可能であるが、区切りマーカー及び格納位置のデータ長が比較的大きいことから、区切りマーカーの比較処理や格納位置の取り出し処理に余分な時間を要するという問題がある。また、区切りマーカー及び格納位置のデータ長が比較的大きいので、処理に際して、マーカー管理ファイル全体を主記憶装置に展開すると、主記憶装置の記憶域を不用意に圧迫しかねないという問題もある。
【００５７】
次に、本発明のマーカー管理用メモリ領域の構成について、図４に示す模式図を用いて説明する。
【００５８】
図４に示されるように、マーカー管理用メモリ領域には、複数のマーカー識別子管理項目が登録される。
【００５９】
各マーカー識別子管理項目は、マーカー識別子名、ファイルＩＤ及びマーカー名位置から構成される。例えば、マーカー識別子管理項目［１］は、マーカー識別子［１］、ファイルＩＤ“１”及びマーカー名位置“００００”から構成され、マーカー識別子管理項目［２］は、マーカー識別子［２］、ファイルＩＤ“１”及びマーカー名位置“０２５６”から構成され、マーカー識別子管理項目［ｎ］は、マーカー識別子［ｎ］、ファイルＩＤ“１”及びマーカー名位置“１０２４”から構成され、マーカー識別子管理項目［ｘ］は、マーカー識別子［ｘ］、ファイルＩＤ“１”及びマーカー名位置“２０４８”から構成され、マーカー識別子管理項目［ｘ＋１］は、マーカー識別子［ｘ＋１］、ファイルＩＤ“２”及びマーカー名位置“２３０４”から構成され、マーカー識別子管理項目［ｘ＋ｎ］は、マーカー識別子［ｘ＋ｎ］、ファイルＩＤ“２”及びマーカー名位置“４０９６”から構成される。
【００６０】
マーカー識別子、ファイルＩＤ及びマーカー名位置は、いずれも固定長なので、マーカー識別子管理項目も固定長となる。
【００６１】
マーカー識別子は、対応する区切りマーカーを構成する文字データの先頭から所定数の文字データで構成される。例えば、マーカー識別子［１］は、対応する区切りマーカー［１］が“０７／１１／１１／１３／４４／２０”という文字データで構成されているとすると、先頭から例えば８文字で構成される“０７／１１／１１”という文字データとなる。なお、先に説明したとおり、文字データ“０７／１１／１１／１３／４４／２０”は、西暦２００７年１１月１１日１３時４４分２０秒を意味する。
【００６２】
ファイルＩＤは、可変長項目［α］を格納したストアドデータファイルのＩＤを示し、マーカー名位置は、指定されたマーカー識別子に対応する区切りマーカー管理項目のマーカー管理ファイルにおける先頭位置を示す。また、マーカー名位置は、マーカー管理項目のマーカー管理ファイルにおける先頭位置を示すだけなので、マーカー管理ファイルに格納されるマーカー管理項目に登録される格納位置より小さいデータ長で足りる。
【００６３】
先に説明したように、区切りマーカー管理項目には、区切りマーカー、ファイルＩＤ及び区切りマーカーに対応する可変長データの該当するストアドデータファイルにおける格納位置が登録されているので、結局、所望の可変長データを正しく取り出すことができる。例えば、ある検索情報で検索指定が行われ、その検索情報とマーカー識別子［１］とが一致した場合には、マーカー管理ファイルの“００００”が指示されて、マーカー管理項目［１］が読み出され、次いで、その検索情報とマーカー管理項目［１］の区切りマーカーとが比較されて、その一致が確認されると、このマーカー管理項目［１］に登録されているファイルＩＤ及び格納位置により、ストアドデータファイル［１］の“００００００００”が指示される。そこで、可変長データ［１］のデータ長［１］が読み出され、次いで、このデータ長［１］に従う長さの可変長データ［１］が読み出される。検索情報が他のマーカー識別子と一致した場合にも、同様のことが行われる。なお、検索情報は、マーカー識別子と比較される場合には、先頭から所定数の文字データが使用されるのみである。これについては、後で詳細に説明する。
【００６４】
なお、先に説明したように、マーカー識別子は、対応する区切りマーカーより少ない文字数の文字データで構成されているので、マーカー識別子より多い文字数、例えば、年月日だけではなく、時分秒まで指示する検索情報で検索指定が行われた場合には、複数のマーカー識別子がヒットすることがある。この場合には、このままでは、いずれの可変長データを読み出すべきか特定することはできないが、先に説明したように、マーカー識別子管理項目には、対応する区切りマーカーのマーカー管理ファイルにおける格納位置、つまり、マーカー名位置が登録されているので、ヒットしたマーカー識別子毎に、対応する区切りマーカーと指定された検索情報とを比較することにより、所定の区切りマーカーを探し出すことができる。所定の区切りマーカーが探し出されれば、所望の可変長データを読み出すことができることは言うまでもない。
【００６５】
本発明のマーカー管理用メモリ領域を利用すれば、マーカー識別子及びマーカー名位置のデータ長が小さいので、マーカー識別子の比較処理やマーカー名位置の取り出し処理を高速に行うことができるだけでなく、マーカー管理用メモリ領域は、主記憶装置５とは別な記憶装置であるＥＥＰＲＯＭ６により構成されるので、処理に際して、主記憶装置５の記憶域を圧迫することもない。また、ＥＥＰＲＯＭ６の容量も小さいもので済ますことができる。
【００６６】
更に、指定された検索情報と一致するマーカー識別子が見付かった後は、そのマーカー識別子管理項目のマーカー名位置を利用することにより、マーカー管理ファイル全体を主記憶装置５に展開することなく、所定のマーカー管理項目だけを主記憶装置５に展開し、指定された検索情報と展開されたマーカー管理項目の区切りマーカーとを比較するようにすれば、主記憶装置５の記憶域を圧迫することもないので、コンピュータのメモリ資源を有効に利用しながら、所望の可変長データのなお一層の高速読出が可能になる。
【００６７】
以上、マーカー管理用メモリ領域については、主記憶装置５とは別な記憶装置であるＥＥＰＲＯＭ６により構成する例を説明したが、マーカー管理用メモリ領域は、外部記憶装置７上に構築することも可能である。この場合には、複数のマーカー識別子管理項目は、例えば、マーカー識別子管理ファイルという１つの管理用ファイルに登録されることになる。なお、マーカー管理用メモリ領域を外部記憶装置７上に構築した場合には、処理に際して、マーカー識別子管理ファイル全体を主記憶装置に展開することになるが、先に説明したように、マーカー識別子管理ファイルは、マーカー管理ファイルに比べて容量サイズが小さいので、主記憶装置の記憶域を不用意に圧迫することはない。
【００６８】
［可変長データ格納手順］
次に、本発明の可変長データ格納手順について、図５の処理フローを用いて説明する。
【００６９】
＜新規データの取り込み＞
新規のデータ入力が有るか否かを判定し（Ｓ５０１）、新規のデータ入力が無い場合（Ｓ５０１：ｎｏ）には、新規のデータ入力が有るか否かの判定処理（Ｓ５０１）に戻る。
【００７０】
新規のデータ入力が有る場合（Ｓ５０１：ｙｅｓ）には、入力された可変長データ［α］及び区切りマーカー［α］を取り込む（Ｓ５０２）。先に説明したように、区切りマーカー［α］は、例えば、可変長データが取引によって発生する取引データの場合には、その取引の行われた日付・時刻を表す文字データで構成されている。この文字データの形式が、例えば、“ＹＹ／ＭＭ／ＤＤ／ｈｈ／ｍｍ／ｓｓ”という形式であって良いことは先に説明したとおりである。
【００７１】
＜データ長の計算＞＜マーカー識別子作成＞
次いで、取り込まれた可変長データ［α］のデータ長［α］を計算し（Ｓ５０３）、続けて、マーカー識別子［α］を作成する（Ｓ５０４）。マーカー識別子［α］は、取り込まれた区切りマーカー［α］を構成する文字データの先頭から所定数の文字データで構成される。
【００７２】
＜区切りマーカーの固有性確認＞
取り込まれた区切りマーカー［α］は、可変長データ［α］に固有のものでなければ、検索対象キーとして有用ではないので、その固有性を判定する必要がある。その判定手順は、次のものである。
【００７３】
マーカー管理用メモリ領域に既に登録されているマーカー識別子管理項目の１つを読み出す（Ｓ５０５）。最初は、マーカー識別子管理項目［１］を読み出す。マーカー管理用メモリ領域にマーカー識別子管理項目が何も登録されていないときは、全く新規な格納処理なので、この場合には、直ちに、ストアドデータファイル［１］に、“データ長＋可変長データ［α］”からなる可変長項目［１］をファイルヘッダーに引き続く位置に隙間無く格納する。ストアドデータファイルへの格納については、後で詳しく説明する。
【００７４】
マーカー識別子管理項目を読み出した後、作成されたマーカー識別子［α］が読み出したマーカー識別子管理項目のマーカー識別子と一致するか否かを判定する（Ｓ５０６）。作成されたマーカー識別子［α］が読み出したマーカー識別子管理項目のマーカー識別子と一致しない場合（Ｓ５０６：ｎｏ）には、読出処理をしていないマーカー識別子管理項目が有るか否かを判定し（Ｓ５０７）、有る場合（Ｓ５０７：ｙｅｓ）には、マーカー識別子管理項目の読出処理に戻り、マーカー管理用メモリ領域から次のマーカー識別子管理項目を読み出す（Ｓ５０５）。読出処理をしていないマーカー識別子管理項目が無い場合（Ｓ５０７：ｎｏ）については、後の＜ストアドデータファイルへの格納＞の項で説明する。
【００７５】
作成されたマーカー識別子［α］が読み出したマーカー識別子管理項目のマーカー識別子と一致する場合（Ｓ５０６：ｙｅｓ）には、取り込まれた区切りマーカー［α］が既存の区切りマーカーと同じである可能性があるので、その判定を行なわなければならない。この判定は、次のように行われる。
【００７６】
読み出したマーカー識別子管理項目のマーカー名位置に基づいて、マーカー管理ファイルに登録されている対応するマーカー管理項目を読み出し（Ｓ５１３）、次いで、取り込まれた区切りマーカー［α］が読み出したマーカー管理項目の区切りマーカーと一致するか否かを判定する（Ｓ５１４）。取り込まれた区切りマーカー［α］が読み出したマーカー管理項目の区切りマーカーと一致しない場合（Ｓ５１４：ｎｏ）には、読出処理をしていないマーカー識別子管理項目が有るか否かを判定し（Ｓ５０７）、有る場合（Ｓ５０７：ｙｅｓ）には、マーカー識別子管理項目の読出処理に戻り、マーカー管理用メモリ領域から次のマーカー識別子管理項目を読み出す（Ｓ５０５）。読出処理をしていないマーカー識別子管理項目が無い場合（Ｓ５０７：ｎｏ）については、後の＜ストアドデータファイルへの格納＞の項で説明する。
【００７７】
取り込まれた区切りマーカー［α］が読み出したマーカー管理項目の区切りマーカーと一致する場合（Ｓ５１４：ｙｅｓ）には、取り込まれた区切りマーカー［α］は、固有性を有していないことになるので、この区切りマーカー［α］を無効化（Ｓ５１５）し、続けて、正しい区切りマーカー［α］の入力を促す（Ｓ５１６）。区切りマーカー［α］が再入力された場合には、この再入力された区切りマーカー［α］に基づいて、新しいマーカー識別子［α］を作成する（Ｓ５０４）。なお、区切りマーカー［α］の無効化（Ｓ５１５）が所定回数以上繰り返された場合は、エラー終了するようにしても良い。
【００７８】
＜ストアドデータファイルへの格納＞
読出処理をしていないマーカー識別子管理項目が無い場合（Ｓ５０７：ｎｏ）には、取り込まれた区切りマーカー［α］は、固有性を有していることになる。
【００７９】
このように、取り込まれた区切りマーカーの固有性を確認した後、現在格納対象となっているストアドデータファイルに、“データ長［α］＋可変長データ［α］”を格納するに足りる空き記憶域があるか否かを判定する（Ｓ５０８）。現ストアドデータファイルに空き記憶域がない場合（Ｓ５０８：ｎｏ）には、新たなストアドデータファイルを作成し、それを現ストアドデータファイルとする（Ｓ５１７）。この新たなストアドデータファイルのＩＤは、旧ストアドデータファイルのＩＤに“＋１”したものとなる。
【００８０】
現在格納対象となっているストアドデータファイルに、“データ長［α］＋可変長データ［α］”を格納するに足る空き記憶域がある場合（Ｓ５０８：ｙｅｓ）、又は新たなストアドデータファイルを作成し、そのデータファイルを新たな現ストアドデータファイルとした場合（Ｓ５１６）には、現ストアドデータファイルの空き記憶域、即ち、既に格納された可変長項目に引き続く位置、又はファイルヘッダーに引き続く位置に、“データ長［α］＋可変長データ［α］”からなる可変長項目［α］を隙間無く格納する（Ｓ５０９）。
【００８１】
＜マーカー管理ファイルへの登録＞
新規の可変長項目［α］の格納が終了すると、マーカー管理ファイルの空き記憶域に、“区切りマーカー［α］”、“可変長項目［α］を格納したストアドデータファイルのＩＤ”及び“可変長項目［α］の格納位置”からなる新たなマーカー管理項目［α］を登録する（Ｓ５１０）。先に説明したことから明らかなように、“可変長項目［α］の格納位置”は、可変長データ［α］の先頭に付加された“データ長［α］”の先頭位置を示す。
【００８２】
＜マーカー管理用メモリ領域への登録＞
マーカー管理項目［α］の登録が終了すると、次に、マーカー管理用メモリ領域の空き記憶域に、“作成されたマーカー識別子［α］”、“可変長項目［α］を格納した格納したストアドデータファイルのＩＤ”及び“マーカー管理項目［α］のマーカー名位置”からなる新たなマーカー識別子管理項目［α］を登録する（Ｓ５１１）。作成された識別子［α］が対応する“区切りマーカー［α］”を構成する文字データの先頭から所定数の文字データで構成されることは、先に説明したとおりである。なお、“可変長項目［α］を格納したストアドデータファイルのＩＤ”は無くても良い。
【００８３】
＜終了処理＞
可変長項目［α］の格納、並びにマーカー管理項目［α］及びマーカー識別子管理項目［α］の登録が終了した後は、格納処理を終了するか否かを判断することになる（Ｓ５１２）。格納処理を終了しないと判断した場合（Ｓ５１２：ｎｏ）には、新規のデータ入力が有るか否かを判定する処理（Ｓ５０１）に戻る。
【００８４】
［可変長データ読出手順］
次に、本発明の可変長データ読出手順について、図６の処理フローを用いて説明する。
【００８５】
＜検索情報の取り込み＞
検索指定が有るか否かを判定し（Ｓ６０１）、検索指定が無い場合（Ｓ６０１：ｎｏ）には、検索指定が有るか否かの判定処理（Ｓ６０１）に戻る。
【００８６】
検索指定が有る場合（Ｓ６０１：ｙｅｓ）には、入力された検索情報［β］を取り込む（Ｓ６０２）。先に説明したことから理解できるように、検索情報［β］は、区切りマーカーと同じ形式を取る。具体的には、“０７／１１／１３／０９／００／２０”というようなものである。この検索指定は、“西暦２００７年１１月１３日９時０分２０秒に行われた取引データは何か？”ということを意味する。なお、実際上は、秒まで指定することはない。
【００８７】
＜マーカー識別子の作成＞
次いで、取り込まれた検索情報［β］を構成する文字データの文字数の先頭から所定数の文字データで構成されるマーカー識別子［β］を作成する。取り込まれた検索情報［β］を構成する文字データの文字数がマーカー識別子を構成する文字データの文字数と同じか少ない場合には、取り込まれた検索情報［β］をそのまま作成されたマーカー識別子［β］として用いる。これは、検索情報［β］のマーカー識別子を構成する文字データの文字数を越える文字データの部分は、マーカー管理用メモリ領域に登録されているマーカー識別子管理項目のマーカー識別子との比較には使われないからである。
【００８８】
＜可変長データの検索＞
マーカー管理用メモリ領域に登録されているマーカー識別子管理項目の１つを読み出す（Ｓ６０４）。最初は、マーカー識別子管理項目［１］を読み出す。
【００８９】
マーカー識別子管理項目を読み出した後、作成されたマーカー識別子［β］が読み出したマーカー識別子管理項目のマーカー識別子と一致するか否かを判定する（Ｓ６０５）。なお、検索情報［β］を構成する文字データの文字数がマーカー識別子管理項目のマーカー識別子を構成する文字データの文字数より少ない場合には、検索情報［β］から作成されるマーカー識別子［β］を構成する文字データの文字数は、マーカー識別子管理項目のマーカー識別子を構成する文字データの文字数より少ないものとなるが、その場合には、マーカー識別子管理項目のマーカー識別子の先頭から検索識別子［β］を構成する文字データの文字数分の比較を行って、一致するか否かを判定する。
【００９０】
作成されたマーカー識別子［β］が読み出したマーカー識別子管理項目のマーカー識別子と一致しない場合（Ｓ６０５：ｎｏ）には、読出処理されていないマーカー識別子管理項目が有るか否かを判定し（Ｓ６１１）、有る場合（Ｓ６１１：ｙｅｓ）の場合には、マーカー識別子管理項目の読出処理に戻り、マーカー管理用メモリ領域から次のマーカー識別子管理項目を読み出す（Ｓ６０４）。読出処理されていないマーカー識別子管理項目が無い場合（Ｓ６１１：ｎｏ）については、後の＜検索結果の出力＞の項で説明する。
で説明する。
【００９１】
作成されたマーカー識別子［β］が読み出したマーカー識別子管理項目のマーカー識別子と一致する場合（Ｓ６０５：ｙｅｓ）には、続けて、読み出したマーカー識別子管理項目のマーカー識別子に対応するマーカー管理項目をマーカー管理ファイルから読み出す（Ｓ６０６）。この読み出しは、マーカー識別子管理項目のマーカー名位置に基づいて行う。
【００９２】
次いで、取り込まれた検索情報［β］が読み出したマーカー管理項目の区切りマーカーと一致するか否かを判定する（Ｓ６０７）。なお、先に説明したことから理解できるように、検索指定は、検索情報［β］を構成する文字データの文字数が区切りマーカーを構成する文字データの文字数より少ない形で行われることがあるが、その場合には、区切りマーカーの先頭から検索情報［β］を構成する文字データの文字数分の比較を行って、一致するか否かを判定する。
【００９３】
取り込まれた検索情報［β］が読み出したマーカー管理項目の区切りマーカーと一致しない場合（Ｓ６０７：ｎｏ）には、読出処理されていないマーカー識別子管理項目が有るか否かを判定し（Ｓ６１１）、有る場合（Ｓ６１１：ｙｅｓ）の場合には、マーカー識別子管理項目の読出処理に戻り、マーカー管理用メモリ領域から次のマーカー識別子管理項目を読み出す（Ｓ６０４）。読出処理されていないマーカー識別子管理項目が無い場合（Ｓ６１１：ｎｏ）については、後の＜検索結果の出力＞の項で説明する。
【００９４】
＜ストアドデータファイルからの読出＞
取り込んだ検索情報［β］が読み出したマーカー管理項目の区切りマーカーと一致する場合（Ｓ６０７：ｙｅｓ）には、このマーカー管理項目のファイルＩＤ及び格納位置に基づいて、所定のストアドデータファイルにアクセスし（Ｓ６０８）、対応する可変長項目の先頭から所定数のデータを取り出す（Ｓ６０９）。先に説明したように、可変長項目は、先頭にデータ長を含む可変長データから構成されているので、これにより、所望の可変長データのデータ長を取り出すことができる。なお、データ長が、固定長であることは先に説明したとおりである。
このように、本実施形態のマーカー管理項目は、区切りマーカーとファイルＩＤと格納位置とから構成され、可変長データの格納位置を示す論理的なものである。したがって、ストアドデータファイルの中に区切りマーカーのデータが存在しなくても、マーカー管理項目のファイルＩＤ及び格納位置に基づいて、対応する可変長項目の先頭から所定数のデータを取り出すことができる。また、１つの可変長データに対して、複数の区切りマーカーを関連付けることも可能である。
【００９５】
取り出されたデータ長に基づいて、所望の可変長データを読み出す（Ｓ６１０）。
【００９６】
検索情報［β］と一致する区切りマーカーが１つとは限らない、つまり、所望の可変長データが１つとは限らないので、引き続いて、読出処理されていないマーカー識別子管理項目が有るか否かを判定する（Ｓ６１１）。有る場合（Ｓ６１１：ｙｅｓ）には、マーカー識別子管理項目の読出処理に戻り、マーカー管理用メモリ領域から次のマーカー識別子管理項目を読み出す（Ｓ６０４）。
【００９７】
＜検索結果の出力＞
読出処理されていないマーカー識別子管理項目が無い場合（Ｓ６１１：ｎｏ）には、この検索指定による検索が終了したことになるので、読み出された可変長データの全てをディスプレイ３又はプリンタ４に出力する。場合によっては、検索結果をファイル化して外部記憶装置７に格納するようにしても良い。なお、この場合、読み出された可変長データに何等かのデータ処理、例えば、取引データの場合には、合計処理等を施し、この処理結果も含めて出力・格納するようにするとなお一層可用性が増す。
【００９８】
＜終了処理＞
検索結果を出力した後は、検索処理を終了するか否かを判断することになる（Ｓ５１２）。検索処理を続行する場合（Ｓ５１３：ｎｏ）には、新規の検索指定が有るか否かを判定する処理（Ｓ５０１）に戻る。
【００９９】
本発明の読出方法においては、検索情報を構成する文字データの文字数を区切りマーカーの文字数より少なくした検索指定が可能である。例えば、区切りマーカーを“ＹＹ／ＭＭ／ＤＤ／ｈｈ／ｍｍ／ｓｓ”という形式の１７文字の文字データで構成したシステムにおいて、検索情報として、“ＹＹ／ＭＭ”という５文字の文字データ或いは“ＹＹ／ＭＭ／ＤＤ”という８文字の文字データを指定した場合には、指定した年月或いは年月日の可変長データの全て取り出すことができる。
【０１００】
［機能実現手段及び入出力装置］
最後に、本発明の可変長データ格納方法及び可変長データ読出方法を実現するための機能実現手段及び各種入出力装置とこれら機能実現手段及び各種入出力装置間の処理の流れ並びに処理されるデータの授受関係について、図７の模式図を用いて説明する。なお、図において、実線で囲んだ手段は、格納・読出プログラムがコンピュータにインストールされ、実行されることにより実現される機能実現手段を示し、点線で囲んだ装置は、コンピュータの各種入出力装置を示す。
【０１０１】
＜可変長データ発生装置＞
可変長データ発生装置ｄ１は、可変長データ及び区切りマーカーを発生する入力装置である。可変長データ発生装置ｄ１として、例えば、ＰＯＳ端末のキャッシュレジスタが挙げられる。ＰＯＳ端末のキャッシュレジスタは、所定の取引が完了すると、レシート等のジャーナル情報を印刷するように構成されているが、この印刷時の日付・時刻データは、その時の取引データに固有の区切りマーカーとして充分有用なものである。
【０１０２】
＜新規データ取込手段＞
新規データ取込手段ｍ１は、図５のステップＳ５０２を実行するための手段であり、可変長データ発生装置ｄ１によって発生された可変長データ及び区切りマーカーを取り込む手段である。
【０１０３】
＜データ長計算手段＞
データ長計算手段ｍ２は、図５のステップＳ５０３を実行するための手段であり、取り込まれた可変長データのデータ長を計算する手段である。
【０１０４】
＜第１マーカー識別子作成手段＞
第１マーカー識別子作成手段ｍ３は、図５のステップＳ５０４を実行するための手段であり、取り込まれた区切りマーカーを受け取り、この区切りマーカーを構成する文字データの先頭から所定数の文字データで構成されるマーカー識別子を作成する手段である。作成されたマーカー識別子は、可変長データの格納前では、マーカー管理用メモリ領域に登録されているマーカー識別子管理項目のマーカー識別子と比較するために作成される識別子であり、また、可変長データの格納後には、マーカー管理用メモリ領域に新たに登録されるマーカー識別子管理項目のマーカー識別子として使われる。
【０１０５】
＜区切りマーカー固有性確認手段＞
区切りマーカー固有性確認手段ｍ４は、図５のステップＳ５０５〜Ｓ５０７及びＳ５１３〜Ｓ５１６を実行するための手段であり、取り込まれた区切りマーカーが固有性を有するものであるか否かを確認する手段である。この確認のために、作成されたマーカー識別子及び取り込まれた区切りマーカーが、それぞれ、マーカー管理用メモリ領域に登録されているマーカー識別子管理項目のマーカー識別子及びマーカー管理ファイルに登録されているマーカー管理項目の区切りマーカーと比較される。
【０１０６】
＜可変長データ格納手段＞
可変長データ格納手段ｍ５は、図５のステップＳ５０８〜Ｓ５０９及びＳ５１７を実行するための手段であり、取り込まれた区切りマーカーが固有性を有するものであることが確認された後、取り込まれた可変長データについて、“データ長＋可変長データ”からなる可変長項目を空きのあるストアドデータファイルに隙間無く格納する手段である。この手段ｍ５は、現在格納対象となっているストアドデータファイルに充分な空き記憶域が無くなったとき、新たなストアドデータファイルを作成し、そのストアドデータファイルを現ストアドデータとして指定する機能を持っている。また、新たなストアドデータファイルのＩＤは、旧ストアドデータファイルのＩＤを“＋１”となる。
【０１０７】
＜マーカー管理項目登録手段＞
マーカー管理項目登録手段ｍ６は、図５のステップＳ５１０を実行するための手段であり、取り込まれた可変長データについての格納が終了した後、格納が終了した可変長データについてのマーカー管理項目をマーカー管理ファイルの空き記憶域に登録する手段である。
【０１０８】
＜マーカー識別子管理項目登録手段＞
マーカー識別子管理項目登録手段ｍ７は、図５のステップＳ５１１を実行するための手段であり、格納が終了した可変長データについてのマーカー管理項目が登録された後、このマーカー管理項目を管理するためのマーカー識別子管理項目をマーカー管理用メモリ領域の空き記憶域に登録する手段である。マーカー管理用メモリ領域の空き記憶域に登録されるマーカー識別子管理項目のマーカー識別子名には、作成されたマーカー識別子が格納される。
【０１０９】
＜検索指定装置＞
検索指定装置ｄ２は、検索情報を入力し、検索実行を指示する入力装置である。
【０１１０】
＜検索情報取込手段＞
検索情報取込手段ｍ８は、図６のステップＳ６０２を実行するための手段であり、検索指定装置ｄ２によって発生された検索情報を取り込む手段である。
【０１１１】
＜第２マーカー識別子作成手段＞
第２マーカー識別子作成手段ｍ９は、図６のステップＳ６０３を実行するための手段であり、取り込まれた検索情報に基づいて、マーカー管理用メモリ領域に登録されているマーカー識別子を検索するためのマーカー識別子を作成する手段である。第２マーカー識別子作成手段ｍ９は、第１マーカー識別子作成手段ｍ３と全く同じ機能を果たす。
【０１１２】
＜可変長データ位置検索手段＞
可変長データ位置検索手段ｍ１０は、図６のステップＳ６０４〜Ｓ６０６及びＳ６１１を実行するための手段であり、取り込まれた検索情報に対応する可変長データがどのストアドデータファイルのどの格納位置に格納されているかを検索する手段である。この検索のために、作成されたマーカー識別子及び取り込まれた検索情報が、それぞれ、マーカー管理用メモリ領域に登録されているマーカー識別子管理項目のマーカー識別子及びマーカー管理ファイルに登録されているマーカー管理項目の区切りマーカーと比較される。
【０１１３】
＜可変長データ読出手段＞
可変長データ読出手段ｍ１１は、図６のステップＳ６０８〜Ｓ６１０を実行するための手段であり、検索されたストアドデータファイルＩＤ及び可変長データ格納位置に基づいて、所定の可変長データを読み出す手段である。
【０１１４】
＜検索結果出力手段＞
検索結果出力手段ｍ１２は、図６のステップＳ６１２を実行するための手段であり、読み出された所定の可変長データの全てをディスプレイ３又はプリンタ４等の外部装置に出力する手段である。なお、検索結果出力手段ｍ１２に、読み出された可変長データに何等かのデータ処理、例えば、取引データの場合には、日毎又は月毎の集計処理等の処理を行う機能を持たせても良い。
【０１１５】
＜検索結果出力装置＞
検索結果出力装置ｄ３は、典型的には、ディスプレイ３又はプリンタ４であるが、場合によっては、外部記憶装置７であっても良い。
【産業上の利用可能性】
【０１１６】
本発明は、可変長データに固有の識別キーを付加できるものであれば、データの種類を問わないので、先に説明した取引データだけではなく、各種の可変長データの格納・読出処理に適用が可能である。
【図面の簡単な説明】
【０１１７】
【図１】本発明の可変長データ格納装置、可変長データ格納方法及び可変長データ読出方法を実施するためのコンピュータシステムのブロック図である。
【図２】本発明のストアドデータファイルの構成を示す模式図である。
【図３】本発明のマーカー管理ファイルの構成を示す模式図である。
【図４】本発明のマーカー管理用メモリ領域の構成を示す模式図である。
【図５】本発明の可変長データ格納手順を示す処理フロー図である。
【図６】本発明の可変長データ読出手順を示す処理フロー図である。
【図７】本発明の可変長データ格納方法及び可変長データ読出方法を実現するための機能実現手段及び各種入出力装置とこれら機能実現手段及び各種入出力装置間の処理の流れ並びに処理されるデータの授受関係を示す模式図である。
【符号の説明】
【０１１８】
１：ＣＰＵ、２：キーボード、３：ディスプレイ、４：プリンタ、５：主記憶装置、６：ＥＥＰＲＯＭ、７：外部記憶装置、８：コンピュータの内部バス、ｄ１：可変長データ発生装置、ｄ２：検索指定装置、ｄ３：検索結果出力装置、ｍ１：新規データ取込手段、ｍ２：データ長計算手段、ｍ３：第１マーカー識別子作成手段、ｍ４：区切りマーカー固有性確認手段、ｍ５：可変長データ格納手段、ｍ６：マーカー管理項目登録手段、ｍ７：マーカー識別子管理項目登録手段、ｍ８：検索情報取込手段、ｍ９：第２マーカー識別子作成手段、ｍ１０：可変長データ位置検索手段、ｍ１１：可変長データ読出手段、ｍ１２：検索結果出力手段
【図１】
0005233255.tif 000002
【図２】
0005233255.tif 000003
【図３】
0005233255.tif 000004
【図４】
0005233255.tif 000005
【図５】
0005233255.tif 000006
【図６】
0005233255.tif 000007
【図７】
0005233255.tif 000008