JP6383289B2 - 入力ファイル処理装置、入力ファイル処理プログラム及び入力ファイル処理方法 - Google Patents
入力ファイル処理装置、入力ファイル処理プログラム及び入力ファイル処理方法 Download PDFInfo
- Publication number
- JP6383289B2 JP6383289B2 JP2014266945A JP2014266945A JP6383289B2 JP 6383289 B2 JP6383289 B2 JP 6383289B2 JP 2014266945 A JP2014266945 A JP 2014266945A JP 2014266945 A JP2014266945 A JP 2014266945A JP 6383289 B2 JP6383289 B2 JP 6383289B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- record
- input file
- storage
- processing unit
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを格納する入力ファイル格納部と、
前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、一つのレコードに戻して分離レコード用バッファに格納する格納処理部とを備える。
前記連続レコードにおけるレコードの連続性を保持したままで、それぞれの前記格納用バッファにレコードを格納する。
複数の変換処理部を備え、
前記複数の前記変換処理部は、並列処理によって、
レコードが格納された複数の前記格納用バッファと、前記一つのレコードが格納された前記分離レコード用バッファとを対象として、レコードのデータ形式を変換する。
レコードが格納された複数の前記格納用バッファと、前記一つのレコードが格納された前記分離レコード用バッファとに、前記連続レコードにおけるレコードの連続性を保持する通番を設定し、
前記入力ファイル処理装置は、さらに、
複数の変換処理部の各変換処理部によってデータ形式が変換されたレコードを、前記格納処理部によって設定された前記通番に従って出力する出力処理部を備えた。
前記複数の項目値ごとに変換すべきデータ形式が定義された出力先定義情報を格納する出力先定義情報格納部を備え、
それぞれの前記変換処理部は、
前記出力先定義情報を参照して、レコードのデータ形式を変換する。
コンピュータに、
区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを記憶装置に格納する処理と、
前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファに格納する処理と
を実行させる。
コンピュータが、
区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを記憶装置に格納し、
前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファに格納する。
図1を参照して、入力ファイル111から読み出した連続レコード112を、出力先のデータ形式に変換して書き込むファイル変換方式を実行する入力ファイル処理装置100の構成を説明する。図1において、入力ファイル処理装置100は、入力ファイル格納部110、格納処理部120、バッファ管理部130、入力用キュー140、変換処理部150a〜150c、出力先定義情報格納部160、出力用キュー170、出力処理部180を備えている。出力処理部180はデータ書込み装置200に結果を出力する。
入力ファイル格納部110は、連続レコード112が記載された入力ファイル111を格納する。
図2は入力ファイル111を示す図である。図2に示すように、連続レコード112とは、区切られて連続する複数の項目値からなるレコード11を要素とするとともに、このレコード11ごとに区切られて連続する情報である。入力ファイル111ではレコードの区切りは改行コードであり、レコードは複数の項目値で区切られる。各項目値の長さは可変長である。
図3は入力ファイル111のもとになるレコードテーブル10を示すが、入力ファイル111はレコードテーブル10から作成されたデータである。レコードテーブル10は、行番号で示される各行がレコード11である。各列の項目1〜項目3に対応して、1行目のレコードではADCDE,123,ZYXWVの各項目値が記載されている。他のレコードも同様である。入力ファイル111は、レコードテーブル10の1行目のレコード、2行目のレコード・・・が改行コードで区切られ、レコードテーブル10のレコード順にレコードが連続している。
格納処理部120は、連続レコード112を複数の格納用バッファ131aに格納する。格納処理部120は、後述するが、二つの格納用バッファ131aにまたがって格納される一つのレコード11である分離レコード113を、一つのレコード11に戻して分離レコード用バッファ131bに格納する。格納用バッファ131aにレコード11を格納する際には、格納処理部120は、連続レコード112におけるレコード11の連続性を保持したままで、それぞれの格納用バッファ131aにレコード11を格納する。また格納処理部120は、レコード11が格納された複数の格納用バッファ131aと、一つのレコードに戻された分離レコード113が格納された分離レコード用バッファ131bとに、連続レコード112におけるレコード11の連続性を保持する通し番号である通番131−1を設定する。
バッファ管理部130は、格納処理部120及び変換処理部150a,150b、150cの要求に応じて、バッファ131を提供する。ここで「バッファ」とは、複数のレコード11を格納できるメモリ領域を意味する。この実施の形態では、バッファ131には格納用バッファ131a,分離レコード用バッファ131b,変換結果用バッファ131cの3種類が登場する。
(1)格納用バッファ131aは、複数のレコード11が格納されるバッファである。
(2)分離レコード用バッファ131bは、2つの格納用バッファ131aに分離して格納される一レコードを、分離していない一つのレコードとして格納するバッファである。(3)変換結果用バッファ131cは、変換処理部150a,150b等がデータ形式を変換したレコードを格納するバッファである。
入力用キュー140は、格納処理部120から格納用バッファ131a,分離レコード用バッファ131bが入力されるキューである。
変換処理部150a,150b、150cのそれぞれは、互いの並列処理により、レコード11が格納された複数の格納用バッファ131aと、一つのレコードが格納された分離レコード用バッファ131bとを対象として、レコード11のデータ形式を変換する。なお本実施の形態では変換処理部150a,150b、150cの3つを示しているが例示である。変換処理部は2つでもよいし、4つ以上でもよい。
出力先定義情報格納部160は、複数の項目値ごとに変換すべきデータ形式が定義された出力先定義情報161を格納する。変換処理部150a,150b、150cは、出力先定義情報161を参照して、レコード11のデータ形式を変換する。
図4に出力先定義情報161を示す。項目番号161aの1,2,3は、それぞれ図3のレコードテーブル10における項目1、項目2、項目3に対応する。項目番号161bのデータ型は、項目値の変換すべきデータ型を示す。項目1はデータが文字型、項目2はデータが数値型、項目3はデータが文字型のデータ形式に変換すべきことを示している。データ長161cは、文字型のデータ長を示す。精度は数値型の精度を示す。
出力用キュー170は、各変換処理部によってデータ形式が変換されたデータが格納された変換結果用バッファ131cが入力されるキューである。
出力処理部180は、複数の変換処理部150a等の各変換処理部によってデータ形式が変換されたレコードを、格納処理部120によって設定された通番131−1に従って出力する。
データ書込み装置200は、出力処理部180から渡されたデータを記憶装置に書き込む。
次に図5、図6を参照して、入力ファイル処理装置100の動作の概要を説明する。
(1)ヘッダ部に「1:通番」等が設定されておらず、データ部にデータが設定された格納用バッファ131aであるバッファAをバッファA(:d)と表記する。
(2)データ部にデータが設定されており、ヘッダ部に「2.データ開始位置」が設定された場合をバッファA(2:d)と表記し、「1.通番」及び「3:有効データ長」が設定された場合をバッファA(13:d)のように表記する。
(3)また以下に述べる分離レコード用バッファ131bであるバッファC及びバッファEではデータ部に他のバッファのデータ部に設定されたデータの一部をコピーしたコピーデータ(分離レコードが一レコードに戻されたもの)が設定される。バッファCのデータ部にコピーデータが設定されたバッファCをバッファC(:cd)のように表記する。
S100において、入力処理が開始する。
S102において、格納処理部120は、最初のバッファであるバッファAをバッファ管理部130から取得する。
S103において、N=0なので処理はS109に進む。
S109において、格納処理部120は入力ファイル111からバッファAのデータ部にデータを読み込む。バッファAはバッファA(:d)となる。
S110において、格納処理部120は処理待ちバッファ数をインクリメントしてN=1にする。
S111において、格納処理部120はEOFかどうか判定する。この例ではS111はNOとする。処理はS114に進む。
S114において、格納処理部120は処理待ちバッファ数N=2かどうか判定するがN=1なので処理はS102に戻る。
S102において、格納処理部120は、バッファ管理部130から二つ目のバッファであるバッファBを取得する。
S103において、N=1なので処理はS109に進む。
S109において、格納処理部120は入力ファイル111からバッファBのデータ部にデータを読み込む。バッファBはバッファB(:d)となる。
S110において、格納処理部120は処理待ちバッファ数をインクリメントしてN=2にする。
S111において、格納処理部120はEOFかどうか判定する。この例ではS111はNOとする。処理はS114に進む。
S114において、格納処理部120は処理待ちバッファ数N=2かどうか判定する。現在N=2なので処理はS113に進む。
S113において、格納処理部120は先バッファであるバッファAの末尾から改行コードを探索し、「1.通番」、「3.有効サイズ」をバッファAのヘッダ部に設定する。バッファAはバッファA(13:d)となる。処理はS102に戻る。
S102において、格納処理部120は、バッファ管理部130から分離レコード用バッファ131bであるバッファCを取得する。
S103において、N=2なので処理はS104に進む。
S104において、格納処理部120は先バッファであるバッファA(13:d)の最終改行コード以降、次の後バッファB(:d)の先頭改行コードまでをバッファCにコピーする。そして、バッファC(:cd)と、先バッファであるバッファA(13:d)のヘッダ部に「4.エンキューフラグ」を設定する。また格納処理部120はバッファCに通番131−1とデータ有効長を設定する。バッファA、バッファCは、バッファA(134:d)、バッファC(134:cd)となる。
S106において、格納処理部120は、EOFを検出したバッファがあれば「4.エンキューフラグ」を設定する。
S107において、格納処理部120は、エンキューフラグを設定済のバッファを入力用キュー140にエンキューし、処理待ちバッファ数Nを1だけデクリメントしてN=1にする。この場合、バッファA(134:d)、バッファC(134:cd)が入力用キュー140にエンキューされる。S108において、EOFかどうかを判定する。この例では検出しないとし処理は102に戻る。
S102において、格納処理部120は、バッファ管理部130から四つ目のバッファDを取得する。なおバッファBはバッファB(2:d)である。
S103において、N=1なので処理はS109に進む。
S109において、格納処理部120は入力ファイル111からバッファDのデータ部にデータを読み込む。バッファDはバッファD(:d)となる。
S110において、格納処理部120は処理待ちバッファ数をインクリメントしてN=2にする。
S111において、格納処理部120はEOFかどうか判定する。この例ではS111はNOとする。処理はS114に進む。
S114において、格納処理部120は処理待ちバッファ数N=2かどうか判定する。現在N=2なので処理はS113に進む。
S113において、格納処理部120は先バッファであるバッファB(2:d)の末尾から改行コードを探索し、「1通番」、「3.有効サイズ」をバッファBのヘッダ部に設定する。バッファBはバッファB(123:d)となる。処理はS102に戻る。
S102において、格納処理部120は、バッファ管理部130から五つ目のバッファEを取得する。
S103において、N=2なので処理はS104に進む。
S106において、格納処理部120は、EOFを検出したバッファがあれば「4.エンキューフラグ」を設定する。
S107において、格納処理部120は、「4.エンキューフラグ」を設定済のバッファを入力用キュー140にエンキューし、処理待ちバッファ数Nを1だけデクリメントしてN=1にする。この場合、バッファB(1234:d)、バッファE(134:cd)が入力用キュー140にエンキューされ、バッファD(2:d)が処理待ちバッファ(N=1)として残っている。
S108において、EOFかどうかを判定する。この例では検出しないとし処理は102に戻る。
S102において、格納処理部120は、バッファ管理部130から六つ目のバッファFを取得する。以下の同様の処理が続く。以下の処理ではバッファDが先バッファとなりバッファFが後バッファとなる。
なお、レコードの連続性を必要としない場合、つまり図3の各行のレコードテーブル10において、行を任意に並べ替えても構わない場合、通番131−1は不要である。
(1)入力ファイル処理装置100では、入力ファイル処理装置100が2つのバッファにまたがるレコードを、一レコードに戻して分離レコード用バッファ131bに格納する。よって、必ずレコード単位に処理できるので項目値の出現位置を探索する必要がなくなる。このため処理の高速化を図ることができる。
(2)格納処理部120は、格納用バッファ131a,分離レコード用バッファ131bに通番を設定するので、レコードの順序保持が必要なファイルもレコードの順序を保持した上でデータ形式を変換できる。
(3)格納処理部120は、レコードが2つのバッファにまたがらない場合は、分離レコード用バッファ131bを用意しなくともよいので処理すべきバッファが減り、処理をより迅速化できる。
入力ファイル処理装置100のハードウェア構成例を図10を参照して説明する。入力ファイル処理装置100はコンピュータである。入力ファイル処理装置100は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。入力インタフェース905は、入力装置907に接続されている。ディスプレイインタフェース906は、ディスプレイ908に接続されている。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。更に、補助記憶装置902には、OS(Operating System)も記憶されている。そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。図10では、1つのプロセッサ901が図示されているが、入力ファイル処理装置100が複数のプロセッサ901を備えていてもよい。そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
図11、図12はそれぞれ入力ファイル処理プログラム、入力ファイル処理方法のフローチャートである。図11に示すように、入力ファイル処理プログラムは、コンピュータである入力ファイル処理装置100に、連続レコードが記載された入力ファイル111を記憶装置に格納する処理と、連続レコードを複数の格納用バッファ131aに格納すると共に、二つの格納用バッファ131aにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファ131bに格納する処理とを実行させる。図12に示すように、入力ファイル処理方法は、コンピュータが、連続レコードが記載された入力ファイル111を記憶装置に格納し、連続レコードを複数の格納用バッファ131aに格納すると共に、二つの格納用バッファ131aにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファ131bに格納する。
Claims (7)
- 区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを格納する入力ファイル格納部と、
前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、一つのレコードに戻して分離レコード用バッファに格納する格納処理部と
を備えた入力ファイル処理装置。 - 前記格納処理部は、
前記連続レコードにおけるレコードの連続性を保持したままで、それぞれの前記格納用バッファにレコードを格納する請求項1に記載の入力ファイル処理装置。 - 前記入力ファイル処理装置は、さらに、
複数の変換処理部を備え、
前記複数の変換処理部は、並列処理によって、
レコードが格納された複数の前記格納用バッファと、前記一つのレコードが格納された前記分離レコード用バッファとを対象として、レコードのデータ形式を変換する請求項2に記載の入力ファイル処理装置。 - 前記格納処理部は、
レコードが格納された複数の前記格納用バッファと、前記一つのレコードが格納された前記分離レコード用バッファとに、前記連続レコードにおけるレコードの連続性を保持する通番を設定し、
前記入力ファイル処理装置は、さらに、
複数の変換処理部の各変換処理部によってデータ形式が変換されたレコードを、前記格納処理部によって設定された前記通番に従って出力する出力処理部を備えた請求項3に記載の入力ファイル処理装置。 - 前記入力ファイル処理装置は、さらに、
前記複数の項目値ごとに変換すべきデータ形式が定義された出力先定義情報を格納する出力先定義情報格納部を備え、
それぞれの前記変換処理部は、
前記出力先定義情報を参照して、レコードのデータ形式を変換する請求項4に記載の入力ファイル処理装置。 - コンピュータに、
区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを記憶装置に格納する処理と、
前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファに格納する処理と
を実行させるための入力ファイル処理プログラム。 - コンピュータが、
区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを記憶装置に格納し、
前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファに格納する入力ファイル処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014266945A JP6383289B2 (ja) | 2014-12-29 | 2014-12-29 | 入力ファイル処理装置、入力ファイル処理プログラム及び入力ファイル処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014266945A JP6383289B2 (ja) | 2014-12-29 | 2014-12-29 | 入力ファイル処理装置、入力ファイル処理プログラム及び入力ファイル処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016126530A JP2016126530A (ja) | 2016-07-11 |
JP6383289B2 true JP6383289B2 (ja) | 2018-08-29 |
Family
ID=56357985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014266945A Active JP6383289B2 (ja) | 2014-12-29 | 2014-12-29 | 入力ファイル処理装置、入力ファイル処理プログラム及び入力ファイル処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6383289B2 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3543661B2 (ja) * | 1999-03-05 | 2004-07-14 | 日本電気株式会社 | 交換機ファイルシステムにおけるバッファキャッシュ方法および装置 |
JP5171211B2 (ja) * | 2007-11-01 | 2013-03-27 | 三菱電機株式会社 | データ形式変換装置 |
-
2014
- 2014-12-29 JP JP2014266945A patent/JP6383289B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016126530A (ja) | 2016-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3335107B1 (en) | Data reordering using buffers and memory | |
US20150186068A1 (en) | Command queuing using linked list queues | |
US8041856B2 (en) | Skip based control logic for first in first out buffer | |
US11222067B2 (en) | Multi-index method and apparatus, cloud system and computer-readable storage medium | |
US11710213B2 (en) | Application processor including reconfigurable scaler and devices including the processor | |
US20160098812A1 (en) | Application processor sharing resource based on image resolution and devices including same | |
US9218327B2 (en) | Optimizing the layout of electronic documents by reducing presentation size of content within document sections so that when combined a plurality of document sections fit within a page | |
JP5171211B2 (ja) | データ形式変換装置 | |
JP6383289B2 (ja) | 入力ファイル処理装置、入力ファイル処理プログラム及び入力ファイル処理方法 | |
US8977635B2 (en) | Device, method of processing data, and computer-readable recording medium | |
JP5651622B2 (ja) | データ伝送装置、データ伝送方法、及びプログラム | |
US20230239256A1 (en) | Wide Elastic Buffer | |
US20150040060A1 (en) | Image display apparatus and non-transitory storage medium storing instructions executable by image display apparatus | |
US20210082082A1 (en) | Data processing method and processing circuit | |
US9838561B2 (en) | Serial data transfer using transfer type information to select a storage unit | |
JP2013132006A5 (ja) | ||
US20160132592A1 (en) | Information processing apparatus, information processing method and non-transitory computer readable medium | |
US10445320B2 (en) | Document search apparatus, non-transitory computer readable medium, and document search method | |
CN116048816B (zh) | 数据请求处理方法、装置、电子设备和存储介质 | |
JP2015148851A (ja) | 画像処理装置 | |
US20160224294A1 (en) | Information processing apparatus, document management system, and information processing method | |
US20120066414A1 (en) | Network storage system and network storage method | |
JP6300512B2 (ja) | 判定装置、判定方法、及び、プログラム | |
US20180349279A1 (en) | Maintaining data coherency utilizing a holding stage memory component | |
JP3082384B2 (ja) | 先入れ先出し記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171002 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180717 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180724 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180803 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6383289 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |