JP6383289B2 - 入力ファイル処理装置、入力ファイル処理プログラム及び入力ファイル処理方法 - Google Patents

入力ファイル処理装置、入力ファイル処理プログラム及び入力ファイル処理方法 Download PDF

Info

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
Application number
JP2014266945A
Other languages
English (en)
Other versions
JP2016126530A (ja
Inventor
佐藤 重雄
重雄 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Information Network Corp
Original Assignee
Mitsubishi Electric Information Network Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Information Network Corp filed Critical Mitsubishi Electric Information Network Corp
Priority to JP2014266945A priority Critical patent/JP6383289B2/ja
Publication of JP2016126530A publication Critical patent/JP2016126530A/ja
Application granted granted Critical
Publication of JP6383289B2 publication Critical patent/JP6383289B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

この発明は、入力ファイル処理装置、入力ファイル処理プログラム及び入力ファイル処理方法に関する。
特許文献1では、可変長の入力ファイルを読み出して、出力先のデータ形式に変換する変換処理を実行する。そして、この変換処理において各項目値の出現位置を事前に探索して「項目情報テーブル」として格納し、この項目値の出現位置情報を用いて、列単位又は行単位にデータ変換処理を複数並列に実行することで処理の並列度を向上し、変換処理の高速実行を実現する。特許文献1では、項目値の出現位置を特定した後のデータ変換処理の並列実行を可能とするものであるが、出現位置探索処理は並列に処理できないため、この出現位置探索処理が処理のネックとなる場合がある。
特開2009−116395号公報
この発明は、項目値の出現位置の特定を必要としない方式の提供を目的とする。
この発明の入力ファイル処理装置は、
区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを格納する入力ファイル格納部と、
前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、一つのレコードに戻して分離レコード用バッファに格納する格納処理部とを備える。
前記格納処理部は、
前記連続レコードにおけるレコードの連続性を保持したままで、それぞれの前記格納用バッファにレコードを格納する。
前記入力ファイル処理装置は、さらに、
複数の変換処理部を備え、
前記複数の前記変換処理部は、並列処理によって、
レコードが格納された複数の前記格納用バッファと、前記一つのレコードが格納された前記分離レコード用バッファとを対象として、レコードのデータ形式を変換する。
前記格納処理部は、
レコードが格納された複数の前記格納用バッファと、前記一つのレコードが格納された前記分離レコード用バッファとに、前記連続レコードにおけるレコードの連続性を保持する通番を設定し、
前記入力ファイル処理装置は、さらに、
複数の変換処理部の各変換処理部によってデータ形式が変換されたレコードを、前記格納処理部によって設定された前記通番に従って出力する出力処理部を備えた。
前記入力ファイル処理装置は、さらに、
前記複数の項目値ごとに変換すべきデータ形式が定義された出力先定義情報を格納する出力先定義情報格納部を備え、
それぞれの前記変換処理部は、
前記出力先定義情報を参照して、レコードのデータ形式を変換する。
この発明の入力ファイル処理プログラムは、
コンピュータに、
区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを記憶装置に格納する処理と、
前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファに格納する処理と
を実行させる。
この発明の入力ファイル処理方法は、
コンピュータが、
区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを記憶装置に格納し、
前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファに格納する。
この発明により、項目値の出現位置の特定を必要としない方式を提供できる。
実施の形態1の図で、入力ファイル処理装置100のブロック図。 実施の形態1の図で、入力ファイル111を示す図。 実施の形態1の図で、レコードテーブル10を示す図。 実施の形態1の図で、出力先定義情報161を示す図。 実施の形態1の図で、バッファへのデータ格納を示す図。 実施の形態1の図で、入力ファイル処理装置100の動作概要を示すフローチャート。 実施の形態1の図で、図2の入力ファイル111のレコードをバッファへ格納することを示す図。 実施の形態1の図で、入力ファイル処理装置100の動作詳細を示すフローチャート。 実施の形態1の図で、分離レコードを示す図。 実施の形態2の図で、入力ファイル処理装置100のハードウェア構成を示す図。 実施の形態2の図で、入力ファイル処理プログラムのフローチャート。 実施の形態2の図で、入力ファイル処理方法のフローチャート。
実施の形態1.
***構成の説明***
図1を参照して、入力ファイル111から読み出した連続レコード112を、出力先のデータ形式に変換して書き込むファイル変換方式を実行する入力ファイル処理装置100の構成を説明する。図1において、入力ファイル処理装置100は、入力ファイル格納部110、格納処理部120、バッファ管理部130、入力用キュー140、変換処理部150a〜150c、出力先定義情報格納部160、出力用キュー170、出力処理部180を備えている。出力処理部180はデータ書込み装置200に結果を出力する。
<入力ファイル格納部110>
入力ファイル格納部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>
格納処理部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>
バッファ管理部130は、格納処理部120及び変換処理部150a,150b、150cの要求に応じて、バッファ131を提供する。ここで「バッファ」とは、複数のレコード11を格納できるメモリ領域を意味する。この実施の形態では、バッファ131には格納用バッファ131a,分離レコード用バッファ131b,変換結果用バッファ131cの3種類が登場する。
(1)格納用バッファ131aは、複数のレコード11が格納されるバッファである。
(2)分離レコード用バッファ131bは、2つの格納用バッファ131aに分離して格納される一レコードを、分離していない一つのレコードとして格納するバッファである。(3)変換結果用バッファ131cは、変換処理部150a,150b等がデータ形式を変換したレコードを格納するバッファである。
<入力用キュー140>
入力用キュー140は、格納処理部120から格納用バッファ131a,分離レコード用バッファ131bが入力されるキューである。
<変換処理部150a,150b等>
変換処理部150a,150b、150cのそれぞれは、互いの並列処理により、レコード11が格納された複数の格納用バッファ131aと、一つのレコードが格納された分離レコード用バッファ131bとを対象として、レコード11のデータ形式を変換する。なお本実施の形態では変換処理部150a,150b、150cの3つを示しているが例示である。変換処理部は2つでもよいし、4つ以上でもよい。
<出力先定義情報格納部160>
出力先定義情報格納部160は、複数の項目値ごとに変換すべきデータ形式が定義された出力先定義情報161を格納する。変換処理部150a,150b、150cは、出力先定義情報161を参照して、レコード11のデータ形式を変換する。
図4に出力先定義情報161を示す。項目番号161aの1,2,3は、それぞれ図3のレコードテーブル10における項目1、項目2、項目3に対応する。項目番号161bのデータ型は、項目値の変換すべきデータ型を示す。項目1はデータが文字型、項目2はデータが数値型、項目3はデータが文字型のデータ形式に変換すべきことを示している。データ長161cは、文字型のデータ長を示す。精度は数値型の精度を示す。
<出力用キュー170>
出力用キュー170は、各変換処理部によってデータ形式が変換されたデータが格納された変換結果用バッファ131cが入力されるキューである。
<出力処理部180>
出力処理部180は、複数の変換処理部150a等の各変換処理部によってデータ形式が変換されたレコードを、格納処理部120によって設定された通番131−1に従って出力する。
<データ書込み装置200>
データ書込み装置200は、出力処理部180から渡されたデータを記憶装置に書き込む。
***動作の説明***
次に図5、図6を参照して、入力ファイル処理装置100の動作の概要を説明する。
S11において、格納処理部120はバッファ管理部130に要求を送り、バッファ管理部130から格納用バッファ131aであるバッファAを取得する。バッファAは「先バッファ」とも呼ぶ。なおバッファ131はヘッダ部とデータ部とを有する。格納処理部120はバッファAのデータ部に、入力ファイル111の先頭から順にレコード11を格納する。
S12において、格納処理部120は、バッファAのデータ部の末尾から「最後の改行コード」を探索し、バッファAの先頭から「最後の改行コード」までを有効データ長としてバッファAのヘッダ部に設定する。図7(a)は図2の入力ファイル111からデータを読み込んだバッファAを示す。図7(a)の例では、格納処理部120は、バッファAの先頭である「A」から「最後の改行コード」までを有効データ長としてバッファAのヘッダ部に設定する。
S13において、格納処理部120は、バッファ管理部130から格納用バッファ131aであるバッファBを取得し、データ部にデータを書き込む。バッファBは「後バッファ」とも呼ぶ。つまり、分離レコードの前半を持つバッファを先バッファ、分離レコードの後半を持つバッファを後バッファと呼ぶ。図7(b)は図2の入力ファイル111からデータを読み込んだバッファBを示す。図7(b)の例では、格納処理部120は、バッファBの最初の改行コードの直後の「OPQRS」の「O」から「最後の改行コード」までを有効データ長としてバッファBのヘッダ部に設定する。最初のバッファA以外の他の格納用バッファ131aでは、有効データ長の最初のデータは最初の改行コードの直後のデータである。
S14において、格納処理部120は、分離レコード用バッファ131bであるバッファCを新たに取得すると共に、バッファA(先バッファ)の最後の改行コード以降、バッファB(後バッファ)の先頭の改行コードまでを、新たに取得したバッファCのデータ部に書き込む。図7(c)は、格納処理部120が、図7(a)(b)における分離レコード「MN、9012、NM」を、一つのレコードに戻してバッファcに格納した状態を示す。「MN、9012、NM」は図3の4行目のレコードである。
S15において、格納処理部120は、バッファA、バッファCをエンキューする。格納処理部120は以下同様の処理を行う。つまりバッファBが先バッファになり、新たに後バッファとしてバッファDを取得し、同様の処理を繰り返す。
図8を参照して、入力ファイル処理装置100の詳しい動作を説明する。以下の図8の説明では、最初の格納用バッファ131aはバッファAである。ヘッダ部には、1:通番、2:データ開始位置、3:有効データ長、4:エンキューフラグ、が設定され、データ部にはデータが設定される。
(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>
S100において、入力処理が開始する。
S101において、格納処理部120は、処理待ちバッファ数NをN=0にセットする。
(1回目のS102)
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に戻る。
(2回目の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に戻る。
(3回目のS102)
S102において、格納処理部120は、バッファ管理部130から分離レコード用バッファ131bであるバッファCを取得する。
S103において、N=2なので処理はS104に進む。
(エンキュー処理;バッファ=A,B,C、N=2)
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)となる。
S105において、格納処理部120は、後バッファであるバッファB(:d)の「2.開始位置」をバッファBのヘッダ部に設定する。バッファBはバッファB(2:d)となる。
S106において、格納処理部120は、EOFを検出したバッファがあれば「4.エンキューフラグ」を設定する。
S107において、格納処理部120は、エンキューフラグを設定済のバッファを入力用キュー140にエンキューし、処理待ちバッファ数Nを1だけデクリメントしてN=1にする。この場合、バッファA(134:d)、バッファC(134:cd)が入力用キュー140にエンキューされる。S108において、EOFかどうかを判定する。この例では検出しないとし処理は102に戻る。
(4回目のS102)<現在N=1、現在のバッファはBのみ>
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に戻る。
(5回目のS102)<現在、N=2、バッファはB、D>
S102において、格納処理部120は、バッファ管理部130から五つ目のバッファEを取得する。
S103において、N=2なので処理はS104に進む。
S104において、格納処理部120は先バッファB(123:d)の最終改行コード以降、後バッファであるバッファDの先頭改行コードまでを分離レコード用バッファ131bであるバッファEにコピーし、バッファEと、先バッファBのヘッダ部に、「4.エンキューフラグ」を設定する。また格納処理部120はバッファEに通番131−1とデータ有効長を設定する。バッファBはバッファB(1234:d)、バッファEはバッファE(134:d)となる。
S105において、格納処理部120は、バッファDの「2.開始位置」をバッファDのヘッダ部に設定する。バッファDはバッファD(2:d)となる。
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に戻る。
(6回目のS102)<現在、N=1、バッファはDのみ>
S102において、格納処理部120は、バッファ管理部130から六つ目のバッファFを取得する。以下の同様の処理が続く。以下の処理ではバッファDが先バッファとなりバッファFが後バッファとなる。
次に、図1を参照して、変換処理部150a等によるデータ変換処理を説明する。変換処理部150a、150b、150cは、入力用キュー140からデータ(レコード)が格納されたバッファ131を取得する。バッファ131は格納用バッファ131a,分離レコード用バッファ131bである。後述のように変換処理部150a等は、格納用バッファ131aか分離レコード用バッファ131bかの区別は行わずにこれらの変換処理を行う。格納用バッファ131aや分離レコード用バッファ131bは互いに独立であり、個別に処理することができる。つまり図5に示すバッファA、B、Cはいずれも独立であり、個別に処理できる。よって変換処理部150a,150b、150cはバッファA,B,Cを並列に処理できる。
変換処理部150a,150b、150cは変換処理において、図4に示す出力先定義情報161を用いる。変換処理部150aが図2のレコード「ABCD,123,ZYXWV」を変換する場合、例えば、ABCDを文字型、123を数値型、ZYXWVを文字型に変換する。変換処理部はバッファにおけるデータ変換すべきデータ範囲を、データ開始位置及び有効データ長から知ることができる。したがって、変換処理部150a等は、格納用バッファ131aか分離レコード用バッファ131bかの区別は行わずに、これら格納用バッファ131a,分離レコード用バッファ131bの変換処理を行う。なお図8では格納用バッファ131a及び分離レコード用バッファ131b(バッファC、E等)には「データ開始位置」を設定していないが、変換処理部150a等は「データ開始位置」の設定のないバッファはデータ部の先頭をデータ開始位置と判断して処理する。よってこれらのバッファには「データ開始位置」の設定がなくても変換処理部は変換できる。
各変換処理部はバッファのデータ変換を終了した場合、バッファ管理部130に変換結果用バッファ131cを要求し、変換したデータ(レコード)を変換結果用バッファ131cに格納する。なお、一つの変換結果用バッファ131cは、この変換結果用バッファ131cに格納しようとする一つの格納用バッファ131a、分離レコード用バッファ131bのデータ部の変換後のデータが格納できる容量である。変換結果用バッファ131cは格納用バッファ131aまたは分離レコード用バッファ131bに一対一に対応する。各変換処理部は変換結果用バッファ131cに、対応する格納用バッファ131aまたは分離レコード用バッファ131bの通番131−1を設定する。各変換処理部は、データを格納した変換結果用バッファ131cを出力用キュー170に入力する。
出力処理部180は、変換結果用バッファ131cに設定された通番131−1に従ってデータ書込み装置200に出力する。出力処理部180は、通番131−1の連続しない変換結果用バッファ131cを、待機バッファ181として待機させる。つまり出力処理部180は通番1、通番2、通番4と変換結果用バッファ131cを受け取った場合、通番4の変換結果用バッファ131cを待機バッファ181として待機させる。通番3のバッファを受け取った場合、通番3のバッファをデータ書込み装置200に出力後に、待機バッファ181である通番4のバッファをデータ書込み装置200に出力する。このように、入力ファイル111のレコード順にデータ書込み装置200にバッファを渡すために、早く処理が終わったバッファは待機バッファ181として待機させる。
なお、レコードの連続性を必要としない場合、つまり図3の各行のレコードテーブル10において、行を任意に並べ替えても構わない場合、通番131−1は不要である。
図9は分離レコードを示す図である。図9(a)は通常の分離レコードであり、両側矢印で示す範囲が分離レコード用バッファ131bに格納される。図9(b)はバッファAがちょうど改行コードで終了した場合である。図9(b)では両側矢印で示す範囲が分離レコード用バッファ131bに格納される。図9(C)はバッファAがちょうどレコードの最後で終了し、改行コードがバッファBの先頭となった場合である。図9(c)では両側矢印で示す範囲が分離レコード用バッファ131bに格納される。なお、格納処理部120は、図9(b)(c)のようにレコードが2つのバッファまたがらない場合でも分離レコード用バッファ131bを用意して格納してもよい。あるいは、一つのレコードが2つのバッファにまたがらない場合、つまり、図9(b)のように改行コードが先バッファの最後に存在する場合、あるいは図9(c)のように改行コードが後バッファの最初に存在する場合は、分離レコード用バッファ131bを使用しなくてもよい。
***効果の説明***
(1)入力ファイル処理装置100では、入力ファイル処理装置100が2つのバッファにまたがるレコードを、一レコードに戻して分離レコード用バッファ131bに格納する。よって、必ずレコード単位に処理できるので項目値の出現位置を探索する必要がなくなる。このため処理の高速化を図ることができる。
(2)格納処理部120は、格納用バッファ131a,分離レコード用バッファ131bに通番を設定するので、レコードの順序保持が必要なファイルもレコードの順序を保持した上でデータ形式を変換できる。
(3)格納処理部120は、レコードが2つのバッファにまたがらない場合は、分離レコード用バッファ131bを用意しなくともよいので処理すべきバッファが減り、処理をより迅速化できる。
実施の形態2.
入力ファイル処理装置100のハードウェア構成例を図10を参照して説明する。入力ファイル処理装置100はコンピュータである。入力ファイル処理装置100は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。入力インタフェース905は、入力装置907に接続されている。ディスプレイインタフェース906は、ディスプレイ908に接続されている。
プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。メモリ903は、例えば、RAM(Random Access Memory)である。通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。入力インタフェース905は、例えば、USB(Universal Serial Bus)端子である。ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。ディスプレイインタフェース906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。入力装置907は、例えば、マウス、キーボード又はタッチパネルである。ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。
補助記憶装置902には、図10に示す入力ファイル格納部110、格納処理部120、バッファ管理部130、入力用キュー140、変換処理部150a,150b、150c、出力先定義情報格納部160、出力用キュー170、出力処理部180(以下、入力ファイル格納部110〜出力処理部180をまとめて「部」と表記する)の機能を実現するプログラムが記憶されている。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。更に、補助記憶装置902には、OS(Operating System)も記憶されている。そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。図10では、1つのプロセッサ901が図示されているが、入力ファイル処理装置100が複数のプロセッサ901を備えていてもよい。そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
「部」を「サーキットリー」で提供してもよい。また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。「回路」及び「サーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field−Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
なお実施の形態1に示した入力ファイル処理装置100の各部の動作は、入力ファイル処理プログラム、あるいは入力ファイル処理方法として把握することもできる。
図11、図12はそれぞれ入力ファイル処理プログラム、入力ファイル処理方法のフローチャートである。図11に示すように、入力ファイル処理プログラムは、コンピュータである入力ファイル処理装置100に、連続レコードが記載された入力ファイル111を記憶装置に格納する処理と、連続レコードを複数の格納用バッファ131aに格納すると共に、二つの格納用バッファ131aにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファ131bに格納する処理とを実行させる。図12に示すように、入力ファイル処理方法は、コンピュータが、連続レコードが記載された入力ファイル111を記憶装置に格納し、連続レコードを複数の格納用バッファ131aに格納すると共に、二つの格納用バッファ131aにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファ131bに格納する。
100 入力ファイル処理装置、110 入力ファイル格納部、111 入力ファイル、120 格納処理部、130 バッファ管理部、131 バッファ、131−1 通番、131a 格納用バッファ、131b 分離レコード用バッファ、131c 変換結果用バッファ、140 入力用キュー、150a,150b,150c 変換処理部、160 出力先定義情報格納部、161 出力先定義情報、170 出力用キュー、180 出力処理部、181 待機バッファ、200 データ書込み装置。

Claims (7)

  1. 区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを格納する入力ファイル格納部と、
    前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、一つのレコードに戻して分離レコード用バッファに格納する格納処理部と
    を備えた入力ファイル処理装置。
  2. 前記格納処理部は、
    前記連続レコードにおけるレコードの連続性を保持したままで、それぞれの前記格納用バッファにレコードを格納する請求項1に記載の入力ファイル処理装置。
  3. 前記入力ファイル処理装置は、さらに、
    複数の変換処理部を備え、
    前記複数の変換処理部は、並列処理によって、
    レコードが格納された複数の前記格納用バッファと、前記一つのレコードが格納された前記分離レコード用バッファとを対象として、レコードのデータ形式を変換する請求項2に記載の入力ファイル処理装置。
  4. 前記格納処理部は、
    レコードが格納された複数の前記格納用バッファと、前記一つのレコードが格納された前記分離レコード用バッファとに、前記連続レコードにおけるレコードの連続性を保持する通番を設定し、
    前記入力ファイル処理装置は、さらに、
    複数の変換処理部の各変換処理部によってデータ形式が変換されたレコードを、前記格納処理部によって設定された前記通番に従って出力する出力処理部を備えた請求項3に記載の入力ファイル処理装置。
  5. 前記入力ファイル処理装置は、さらに、
    前記複数の項目値ごとに変換すべきデータ形式が定義された出力先定義情報を格納する出力先定義情報格納部を備え、
    それぞれの前記変換処理部は、
    前記出力先定義情報を参照して、レコードのデータ形式を変換する請求項4に記載の入力ファイル処理装置。
  6. コンピュータに、
    区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを記憶装置に格納する処理と、
    前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファに格納する処理と
    を実行させるための入力ファイル処理プログラム。
  7. コンピュータが、
    区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードが記載された入力ファイルを記憶装置に格納し、
    前記連続レコードを複数の格納用バッファに格納すると共に、二つの格納用バッファにまたがって格納される一つのレコードである分離レコードを、分離レコード用バッファに格納する入力ファイル処理方法。
JP2014266945A 2014-12-29 2014-12-29 入力ファイル処理装置、入力ファイル処理プログラム及び入力ファイル処理方法 Active JP6383289B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3543661B2 (ja) * 1999-03-05 2004-07-14 日本電気株式会社 交換機ファイルシステムにおけるバッファキャッシュ方法および装置
JP5171211B2 (ja) * 2007-11-01 2013-03-27 三菱電機株式会社 データ形式変換装置

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