JP6397343B2 - 情報処理装置、および、情報処理方法 - Google Patents

情報処理装置、および、情報処理方法 Download PDF

Info

Publication number
JP6397343B2
JP6397343B2 JP2015014040A JP2015014040A JP6397343B2 JP 6397343 B2 JP6397343 B2 JP 6397343B2 JP 2015014040 A JP2015014040 A JP 2015014040A JP 2015014040 A JP2015014040 A JP 2015014040A JP 6397343 B2 JP6397343 B2 JP 6397343B2
Authority
JP
Japan
Prior art keywords
data
storage area
flag
character
stored
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
JP2015014040A
Other languages
English (en)
Other versions
JP2016139294A (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.)
Hitachi Social Information Services Ltd
Original Assignee
Hitachi Social Information Services Ltd
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 Hitachi Social Information Services Ltd filed Critical Hitachi Social Information Services Ltd
Priority to JP2015014040A priority Critical patent/JP6397343B2/ja
Priority to CN201680007574.9A priority patent/CN107209672B/zh
Priority to PCT/JP2016/050977 priority patent/WO2016121509A1/ja
Publication of JP2016139294A publication Critical patent/JP2016139294A/ja
Priority to HK18104100.9A priority patent/HK1244910A1/zh
Application granted granted Critical
Publication of JP6397343B2 publication Critical patent/JP6397343B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、文字コード体系の変更が伴うデータの処理の技術に関する。
数十年以上前から稼働してきた情報システムが扱ってきたShift-JIS(Japanese Industrial Standards)などの文字コード体系では、文字ごとの表示幅(桁数)とデータサイズ(バイト数)とが同じである。例えば、Shift-JISは、1桁からなる半角文字を1バイトで表し、2桁からなる全角文字を2バイトで表す。よって、情報システムは、文字単位で処理することができ、処理目的とする文字データを誤りなく読み出すことができる。また、上記情報システムの作成に用いた代表的なプログラム言語としてはCOBOL(COmmon Business Oriented Language)がある。COBOLは、文字データと、非文字としてのバイナリデータとを区別せず同様に処理する。
現在では、グローバル化に伴い、文字コード体系として、例えば、Unicodeが標準採用されつつある。Unicodeは、Shift-JISとは対照的に、文字を桁数で分類しておらず、文字ごとの表示幅とデータサイズとの間に所定の関係が無い。ここで、例えば、COBOLで作成され、Shift-JISなどの文字コード体系を用いた情報システムに対して、文字コード体系をUnicodeなどに変更したいという要望がある。特に、COBOLで作成され、Shift-JISなどの文字コード体系を用いて古くから稼働してきた情報システムを、マイグレーションによって、Unicodeなどの文字コード体系を用いる新たな情報システムとして活用したい、という要望が多い。なお、マイグレーションの技術内容については、例えば、特許文献1に開示されている。
特許第4405571号公報
しかし、文字コード体系を、文字ごとの表示幅とデータサイズとの間に所定の関係が無いUnicodeなどに単に変更しても、情報システムは、1文字の処理のために読み出す必要があるバイト数を知り得ない。その結果、変更した文字コード体系において、文字単位で処理することができず、処理目的とする文字データを誤って読み出してしまう、という不都合が生じる。従来では、文字コード体系の変更の際、開発者が、文字データの処理部分となるプログラムコードを抽出し、適切に修正してこのような不都合を解消しようとしている。また、バイナリデータの処理部分となるプログラムコードの修正は、文字データのそれとは異なるアプローチを必要とする。しかし、これらの人手によるプログラムコードの修正は、多少なりともエラーが生じる場合があり、また、マイグレーションの作業効率の低下や、文字コード体系を変更した情報システムの品質の低下を招きやすい。
そこで、本発明は、このような事情に鑑みてなされたものであり、処理対象のデータの文字コード体系がどのような文字コード体系に変更されたとしても、目的とする処理を確実に行うことができるように支援することを目的とする。
前記目的を達成するために、本発明は、
処理対象のデータの文字コード体系が変更され、変更後の文字コード体系を用いて前記データを処理する情報処理装置であって、
1データ分のデータを格納可能であり、各々で領域サイズが均一となるデータ格納領域を設定するデータ格納領域設定部と、
前記データ格納領域に格納されるデータの種類を識別するフラグを格納するフラグ格納領域を、前記データ格納領域に対応付けて設定するフラグ格納領域設定部と、
前記フラグが格納された前記フラグ格納領域を読み取るフラグ格納領域読取部と、
前記フラグ格納領域に対応付けて設定された前記データ格納領域を読み取るデータ格納領域読取部と、を備える、
ことを特徴とする。
その他の手段については後記する。
本発明によれば、処理対象のデータの文字コード体系がどのような文字コード体系に変更されたとしても、目的とする処理を確実に行うことができるように支援することができる。
本実施形態の情報処理装置の機能構成を示す図である。 本実施形態の情報処理装置の処理を示すフローチャートである。 実施例1の説明図である。 実施例2の説明図である。 実施例3の説明図である。
以下、本発明の実施形態について添付の図面を参照しながら詳細に説明する。説明の便宜上、データ格納領域は、「DA」と表記し、フラグ格納領域は、「FA」と表記する場合がある。
≪構成≫
本実施形態の情報処理装置Pは、入力部、出力部、制御部(図1の処理部1に相当。)、および記憶部(図1の記憶部2や作業領域4に相当。)といったハードウェアを含むコンピュータである。例えば、制御部がCPU(Central Processing Unit)から構成される場合、その制御部を含むコンピュータによる情報処理は、CPUによるプログラム実行処理で実現される。また、そのコンピュータが含む記憶部は、CPUの指令により、そのコンピュータの機能を実現するためのさまざまなプログラムを記憶する。これによりソフトウェアとハードウェアの協働が実現される。前記プログラムは、記録媒体に記録したり、ネットワークを経由したりすることで提供することができる。
図1に示すように、情報処理装置Pは、処理部1、記憶部2、編集ライブラリ3、作業領域4、および、編集ツール5を備える。
処理部1は、情報処理装置Pが実行するあらゆる処理の全体を制御する。処理部1が対象とする処理には、例えば、情報処理装置Pが扱う文字コード体系の変換に必要な処理が含まれる。
記憶部2は、さまざまな形式の情報を記憶する部位である。記憶部2は、ファイルfおよび文字コード変換表Tを記憶する。
ファイルfは、テキストファイルまたはバイナリファイルである。ファイルfがテキストファイルである場合、処理部1は、ファイルf中の文字データの文字コード体系を、例えば、入力部などから指定された他の文字コード体系に変更することができる。
文字コード変換表Tは、所定の文字集合に属する文字の各々について、情報処理装置Pが扱う文字コード体系ごとの文字コードを管理する。処理部1は、採用中の文字コード体系に従ってテキストファイル中の文字データを表現することができる。文字コード体系の変更指定があった場合には、処理部1は、変更前の文字コード体系に従って表現されていた文字データを、変更後の文字コード体系に従って表現することができる。
編集ライブラリ3は、編集ツール5が開くファイルfを記憶部2から読み込み、読み込んだファイルf中のデータを編集ツール5が処理するために必要な処理を行う再利用可能なプログラムである。編集ライブラリ3は、DA設定部31(データ格納領域設定部)、FA設定部32(フラグ格納領域設定部)、FA読取部33(フラグ格納領域読取部)、およびDA読取部34(データ格納領域読取部)を備える。前記「必要な処理」は、DA設定部31、FA設定部32、FA読取部33、およびDA読取部34によって実現される。
DA設定部31は、1データ分のデータを格納可能であり、各々で領域サイズが均一となるDAを、作業領域4に設定する。「1データ分のデータ」とは、1文字を表す文字データ、または、1バイト分のバイナリデータを意味する。1文字を表す文字データのデータサイズは、情報処理装置Pが扱う文字コード体系に従って1バイトまたは2バイト以上となる。例えば、文字コード体系がUTF−8である場合、全角文字1文字は3バイトで表わされる。この場合、DA設定部31は、3バイト相当の文字データを格納できるDAを作業領域4に設定する。
「1データ分のデータを格納可能」であるとは、1つのDAの領域サイズ(容量)を、情報処理装置Pが扱う文字コード体系において表現され得る文字データのデータサイズの最大値と同じ値をとるサイズ、または、前記最大値よりも大きな値をとるサイズにする、という意味を含む。例えば、文字コード体系がUTF−8である場合、1文字は1〜3バイトで表現される(例えば、半角英数文字1文字は1バイト、一部の演算子1文字は2バイト、全角文字1文字は3バイトで表わされる。)。この場合、UTF−8において表現され得る文字データのデータサイズの最大値を3バイトとし、1つのDAの領域サイズは、3バイトまたは4バイト以上にする。
また、各々のDAの領域サイズを均一にすることで、DAの設定に伴う負荷を低減することができる。つまり、1データのデータサイズに合わせてDAの領域サイズを適宜変更するという処理は、非効率であり多大な負荷を伴うので、そのような処理は行わない。
FA設定部32は、DAに格納されるデータの種類を識別するフラグを格納するFAを、DAに対応付けて、作業領域4に設定する。フラグには、例えば、バイナリデータを識別するフラグ、文字データを識別するフラグ、特定のデータを識別するフラグがあるが、文字データについては、例えば、半角文字を識別するフラグ、全角文字の一部を識別するフラグ、を用いることができる(詳細は後記)。なお、1つのFAの領域サイズは、任意とすることができるが、1つのDAの領域サイズよりも小さくすることが好ましい(例:1つのFAの領域サイズは4ビット)。
FA読取部33は、フラグが格納されたFAを読み取る。FA読取部33は、読み取ったFAに格納されているフラグを取得する。
DA読取部34は、FAに対応付けて設定されたDAを読み取る。DA読取部34は、読み取ったDAに格納されているデータを、このDAに対応する読取済のFAに格納されているフラグに基づいて取得する。
作業領域4は、情報処理装置Pにてデータの読み書きがなされる領域である。作業領域4は、DA設定部31が設定するDA、および、FA設定部32が設定するFAを含む。
編集ツール5は、ファイルfの編集機能を有するソフトウェア(情報システム)である。編集ツール5は、もともとは(マイグレーション前は)COBOLで記述されたプログラムコードを、周知の自動変換ツールを用いて、JAVA(登録商標)で記述されたプログラムコードとするように、プログラム言語を変換するものである。COBOLで記述されたプログラムコードのロジックとJAVAで記述されたプログラムコードのロジックは同じである。編集ツール5は、編集ライブラリ3にリンクしている。
COBOLからJAVAへの変換があったとしても、マイグレーションによってファイルfを保有することになった情報処理装置Pが、COBOLで示されるロジックを活用してファイルfを処理することができるように、編集ライブラリ3および編集ツール5が情報処理装置Pに導入された、といえる。
なお、本発明の変換前のプログラム言語は、COBOLに限定されず他のプログラム言語であってもよい。また、本発明の変換後のプログラム言語は、JAVAに限定されず他のプログラム言語であってもよい。
≪処理≫
図2に示すように、本実施形態の情報処理装置Pは、ファイルfの編集処理を行うために、以下の手順で動作する。この手順は、処理部1の制御下で行われ、ステップS01から開始する。
ステップS01にて、編集ツール5は、編集ライブラリ3を呼び出す。編集ツール5は、編集処理の対象となるファイルfを編集ライブラリ3に通知する。ステップS01の後、ステップS02に進む。
ステップS02にて、編集ライブラリ3は、編集処理の対象となるファイルfを読み込む。ファイルfが読み込まれると、ファイルf中のデータがバイト単位で順次読み出される。ステップS02の後、ステップS03に進む。
ステップS03にて、DA設定部31が、作業領域4にDAを設定し、FA設定部32が、作業領域4にFAを設定する。ステップS03の後、ステップS04に進む。
ステップS04にて、DA設定部31が、ファイルfから読み取ったデータを順次、設定したDAの各々に1データ分格納し、FA設定部32が、DAに格納されたデータのフラグを順次、設定したFAの各々に格納する。なお、FA設定部32が設定したFAの各々に格納されるフラグの値は、例えば、編集ツール5が編集ライブラリ3を呼び出した後(ステップS01)、編集ツール5のプログラムコードの実行部分にて定義されているデータ項目を、FA設定部32が確認することで決定することができる。また、DA設定部31は、FAに格納されたフラグに基づいて、設定したDAの各々に1データ分のデータを格納する。ステップS04の後、ステップS05に進む。
ステップS05にて、FA読取部33が、設定されたFAを順次読み取り、FAに格納されたフラグを順次取得する。ステップS05の後、ステップS06に進む。
ステップS06にて、DA読取部34が、読み取ったFAに対応付けて設定されたDAを順次読み取り、読み取ったDAに格納されているデータを取得する。このとき、取得されたデータは、読み取ったFAからすでに取得したフラグの値に基づいて決定された1データ分のデータとなる(詳細は後記)。取得されたデータは、DA読取部34によって編集ツール5に順次送信される。ステップS06の後、ステップS07に進む。
ステップS07にて、編集ツール5は、編集ライブラリ3のDA読取部34から取得したデータの編集処理を行う。フラグを参照せずにデータにアクセスし、データ自体を解析して編集処理を行う場合に比べ、ステップS05のようにフラグを参照してデータの種類を認識した後に、本ステップによるデータの編集処理を行う方が、データ自体の解析に要する時間を短縮することができるため、編集処理の速度を向上させることができる。なお、フラグに応じた編集処理の具体例については後記する。
ステップS08にて、編集ツール5は、データの編集処理の処理結果を出力する。出力先、出力態様などは、編集処理の目的に応じてさまざまであり、説明を省略する。ステップS08の後、図2の処理を終了する。
本実施形態によれば、ファイルf中の処理対象のデータの文字コード体系(例えば、文字ごとの表示幅とデータサイズとが同じとなるShift-JIS)が変更され、変更後の文字コード体系(例えば、文字ごとの表示幅とデータサイズとの間に所定の関係が無いUnicode)を用いて前記データを処理する場合において以下のことが導出される。
まず、編集ライブラリ3が、データサイズがさまざまとなる1データを、設定されたDAの各々に順次格納し、データの種類を識別したフラグを、対応するFAの各々に格納する。つまり、編集ツール5の処理対象となる1データがDAによって特定され、1データごとにデータの種類が特定される。
よって、(現在はJAVAでプログラムコードが記述されているが)データサイズを文字の表示幅でしか特定できないCOBOLによってプログラムコードのロジックが組まれた編集ツール5は、各DA中のデータ全体、および、各DAに対応した各FA中のフラグを参照する編集ライブラリ3を呼び出すという画一的な手順をとるだけでよい。これにより、編集ツール5は、変更後の文字コード体系によってデータサイズを特定することができなくても、編集処理の目的となる1データを確実に処理することができる。
また、データの種類を区別せず(できず)に同様に処理するCOBOL(文字データもバイナリデータもX項目に代入して同様に処理する)によってプログラムコードのロジックが組まれた編集ツール5は、各FAに格納されたフラグを参照する編集ライブラリ3を呼び出すという画一的な手順をとるだけでよい。これにより、編集ツール5は、自身でデータの種類を区別せずとも、データの種類に適した処理結果を誤りなく出力することができる。
また、編集ツール5は、編集ライブラリ3にリンクして必要時に動的に編集ライブラリ3を呼び出すだけでよい。これにより、編集ツール5のプログラムコード自体を過度に修正する必要が無くなり、人手によるプログラムコードの修正誤りを未然に防ぐことができる。
したがって、処理対象のデータの文字コード体系がどのような文字コード体系に変更されたとしても、目的とする処理を確実に行うことができるように支援することができる。
本実施形態の具体的な用途について実施例1〜3として詳細に説明する。
[実施例1]
本実施形態の情報処理装置Pは、取り扱う文字コード体系によって処理単位が1バイト以上となる文字データであっても、処理単位が1バイトとなるバイナリデータであっても、編集ライブラリ3を用いて編集ツール5に同様にして編集処理させることができる。
ファイルf(バイナリファイル)中のバイナリデータ「0xFF,0x01」を編集ツール5が編集処理する場合について説明する。変更後の文字コード体系をUTF−32(1文字を4バイトで表す)とし、DAの各々の領域サイズを、一律に4バイトとする。この場合、1バイトのバイナリデータ2つ分となる「0xFF,0x01」は、DA設定部31が設定した2つのDAに、例えば、「0x000000FF,0x00000001」としてそれぞれ格納される(格納形態はさまざまであり、1データ分を格納可能でありさえすれば、左記のものに限定しない)。また、編集ライブラリ3は、自身を呼び出した編集ツール5のプログラムコードの実行部分にて定義されているデータ項目をFA設定部32によって確認して、編集ツール5にはバイナリデータを送信する必要があることを知る。そのため、DAに格納されるデータがバイナリデータであることを示すフラグとして、例えば「−1」を用いるとすれば、FA設定部32は、2つの各DAに対応する各FAに「−1」を格納する。図3には、格納されたバイナリデータ「0xFF,0x01」にフラグ「−1」が割り当てられた様子が示されている。
よって、編集ライブラリ3は、FA読取部33によって、FAに格納された「−1」を取得することで、DAに格納されたデータは、文字データではなく、バイナリデータであると判定することができ、DA読取部34によってバイナリデータ「0xFF,0x01」として確実に取得することができる。つまり、DAに格納済みの1バイトのバイナリデータ2つ分の「0xFF,0x01」を、4バイトの文字データ2つ分の「0x000000FF,0x00000001」(という値を持つ文字)として誤って取得してしまうことはなく、DAへの格納時点のデータサイズおよびデータの種類と、DAからの取得時点のデータサイズおよびデータの種類とが変化してしまうことはない。その結果、編集ライブラリ3は、バイナリデータ「0xFF,0x01」を編集ツール5に確実に送信することができる。
同様に、例えば、UTF−32において、“1”という半角文字を示す文字データ「0x00000031」(4バイト)は、例えば、「0x00000031」としてDA(領域サイズは4バイトに設定)に格納される。この場合、FA設定部32が編集ツール5のプログラムコードの実行部分にて定義されているデータ項目を確認することによって、編集ライブラリ3は、編集ツール5には文字データを送信する必要があることを知る。そのため、このDAに対応するFAには、半角文字であることを示すフラグ「0」が格納される。よって、編集ライブラリ3は、FA読取部33によってFAに格納された「0」を取得することで、DAに格納されたデータは、バイナリデータではなく、文字データであると判定することができ、DA読取部34によって文字データ「0x00000031」(4バイト)として確実に取得することができる。つまり、DAに格納済みの文字データ「0x00000031」(4バイト)を、1バイトのバイナリデータ「0x31」として誤って取得してしまうことはなく、DAへの格納時点のデータサイズおよびデータの種類と、DAからの取得時点のデータサイズおよびデータの種類とが変化してしまうことはない。その結果、編集ライブラリ3は、文字データ「0x00000031」を編集ツール5に確実に送信することができる。
もし、FAを設定しない場合、編集処理を行う他の情報処理装置(例えば、本実施形態の情報処理装置Pが備える編集ライブラリ3の存在を知らない装置)とのデータのやり取りなどに問題が発生する。例えば、情報処理装置Pにて、KEIS(Kanji processing Extended Information System。文字ごとの表示幅とデータサイズとが同じとなる文字コード体系の1つ。)からUTF−16(文字ごとの表示幅とデータサイズと間に所定の関係が無い文字コード体系の1つ)に変更された場合、DA設定部31が設定するDAは、2バイト(または2バイト以上)となる。バイナリファイルから読み出したバイナリデータ「0x31」は、例えば、「0x0031」として1つのDAに格納される。このとき、FAを設定せずに、DAに格納されたデータが文字データであるかバイナリデータであるかを区別しないと、DAから取得されるデータを「0x0031」としてしまい、本来格納したバイナリデータ「0x31」とは、データサイズが異なってしまう。結果的に、編集ツール5は、本来とは異なって取得したデータの編集処理をしてしまい、情報処理装置Pは、本来とは異なる処理結果を他の情報処理装置に出力してしまう。
実施例1によれば、編集ライブラリ3は、FAを設定し、FAに格納されたフラグを参照してDAに格納されたデータの種類を判定してから編集ツール5にデータを送信する。このため、処理対象のデータの文字コード体系がどのような文字コード体系に変更されたとしても、目的とする処理を確実に行うことができるように支援することができる。
[実施例2]
文字ごとの表示幅(桁数)とデータサイズ(バイト数)とが同じである変更前の文字コード体系の代表例であるShift-JISは、2桁からなる全角文字を2バイトで表している。この場合、1文字を表現するバイトの各々が何桁目であるか(桁順)を、バイトそのものを参照して特定することができた。文字を桁数で分類しておらず、文字ごとの表示幅とデータサイズとの間に所定の関係が無いUTF−32などに単に変更した場合、ファイルfから読み出した1バイトが何桁目であるかは、読み出したバイトそのものを参照しても特定することができない。
本実施形態の情報処理装置Pは、テキストファイルとなるファイルfから文字データを読み出した場合、文字データが半角文字であるか全角文字であるかを区別できるようにするとともに、目的とする文字データを誤りなく取得するために読み出した文字データの桁順を保持可能となるようにDAおよびFAを設定する。
文字列「AB12あ9zzz」(「あ」以外の文字は半角文字、「あ」は全角文字)を編集ツール5が編集処理する場合について説明する。なお、例えば、変更後の文字コード体系をUTF−32とした場合、各文字は4バイトデータであり、DAの各々の領域サイズは例えば4バイトとする。この場合、編集ライブラリ3は、自身を呼び出した編集ツール5のプログラムコードの実行部分にて定義されているデータ項目をFA設定部32によって確認して、半角文字に対しては、半角文字であることを示すフラグ「0」をFAに格納する。
変更前の文字コード体系(例:Shift-JIS)では2桁で表現されていた全角文字「あ」に対しては、DAを2つ用意し、「あ」の文字データを各DAに冗長に格納することで、文字コード体系の変更前後における1文字の桁数を保持する。また、FA設定部32は、左側のDAに格納された全角文字「あ」に対しては、全角文字の1桁目(左半分)を示す「1」をFAに格納するとともに、右側のDAに格納された全角文字「あ」に対しては、全角文字の2桁目(右半分)を示す「2」をFAに格納する。図4には、所定数並んだDAに「AB12あ9zzz」の文字列データを格納し、各文字にフラグ「0」、「1」、「2」が割り当てられた様子が示されている。
もし、変更前の文字コード体系が特定の1文字をn桁以上で表現していた場合には(n=1,2,3,・・・)、DAをn個用意し、この特定の1文字の文字データをn個のDAに冗長に格納するとともに、この特定の1文字の桁順を表し、値がそれぞれ異なるn個のフラグをn個のFAに格納することができる。
したがって、FA読取部33がFAからフラグを取得した場合、対応するDA中の文字データが半角文字または全角文字であること、全角文字である場合何桁目であるかということがフラグを用いて判定することができる。よって、編集ライブラリ3は、FA読取部33によってフラグを参照することで、DAに格納された文字データの種類を高速に判定することができる。その結果、編集ライブラリ3は、編集ツール5に対して目的とする文字データを誤りなく送信することができる。
図4によれば、編集ライブラリ3が、左から6番目のDAに格納されている全角文字「あ」を取得しても、桁順までは(「あ」の1桁目であるか2桁目であるかは)わからない。桁順を知るには、左先頭からDAを順に調査する必要がある。本実施例では、左から6番目のDAに対応するFAのフラグ「2」を単独で取り出した時点で、DAに格納されているデータは全角文字の2桁目であると、高速に判定することができる。また、文字列「あああああ」などのように同じ全角文字が連続する場合であっても、FAのフラグを参照すれば、対応するDA中の文字データ「あ」が1桁目(左半分)を表しているのか2桁目(右半分)を表しているのかを高速に判定することができる。
編集ツール5の編集処理において、テキストデータから読み出した文字データ「あ」の次の文字データ「い」を出力したい場合がある。例えば、文字コード体系がShift-JISである場合、「あ」の2桁目の値に2足す必要がある(「あ」の1桁目の値に2足すと別の文字を出力してしまう)。編集ライブラリ3は、まず、フラグ「2」のFAを取り出すことで、「あ」の2桁目(1桁目ではない)を高速に特定できるので、編集ツール5による文字データ「い」の出力を高速にすることができる。また、このような編集処理を行うプロゴラムコードのマイグレーションも容易にすることができる。
また、編集ライブラリ3が、左から5番目のFAに格納されているフラグ「1」を取得すれば、DAに格納されているデータは全角文字の1桁目であることが高速に判定することができる。さらに、フラグ「1」の存在は、フラグ「2」の存在を高確率で約束するため、左から6番目のDA中のデータ(2桁目)も取得する必要があると、高速に判定することができる。
[実施例3]
本実施形態のDAは、領域サイズを均一にし、データサイズの異なる文字データもバイナリデータも同様の格納形態をとることができ、変更後の文字コード体系においてデータの読み書きを容易にする利点を持つ。しかし、Unicodeは、Shift-JISやKEISと比較して、1文字を表現するバイト数が増大し、1文字あたりの平均データサイズが大きくなる。また、バイナリデータについては、領域サイズが複数バイト数に及ぶ1つのDAに1バイト分のデータを格納することになり、無駄が多い。このため、文字コード体系の変更前後で、同じデータを処理することになっても、文字コード体系の変更後は、編集ライブラリ3内でのDAへのアクセスバイト数が多くなり、多くのメモリ帯域リソースを使用してしまう。このことは、情報処理装置Pの性能の低下を招きかねない。
そこで、DAに格納されるデータのうち、特定の値を有するデータについては、DA読取部34によるそのデータへのアクセスを不要とし、対応するFAには、この特定の値を有するデータが格納されていることを示すフラグ(例えば「5」)を、FA設定部32が格納するようにする。特定の値は編集処理上の頻出値とするのがよく、例えば、特定の値を有するデータとして、変数初期値としてよく用いられるバイナリデータ「0x00」を採り上げることができる。なお、変更後の文字コード体系は、例えばUTF−32とし、DAの領域サイズは、例えば4バイトとする。また、FAの領域サイズおよびFAに格納されるフラグのデータサイズは4ビットとするが、フラグのデータサイズは、4ビットに限定されない。
図5に示すように、DA設定部31によって2つのDAにバイナリデータ2つ分「0x00,0xAB」が格納されており、対応する2つのFAにはFA設定部32によってフラグ「5」が格納されている場合について説明する。FA読取部33は、まず、FAにアクセスし4ビットのフラグ「5」を取得する(図2のステップS05参照)。この段階で、FA読取部33は、フラグ「5」が格納されているFAに対応するDAには、バイナリデータ「0x00」が格納されているとみなし、DA読取部34は、4バイトのDAにアクセスする処理を省略する(図2のステップS06は省略する)。結果として、1つのDAにつき、アクセスバイト数を4バイトから4ビットに低減させることができる。なお、編集ライブラリ3は、バイナリデータ「0x00」を編集ツール5に送信する。
図5において、バイナリデータ「0xAB」が格納されているDAについても、対応するFAにフラグ「5」が格納されているため、FA読取部33は、バイナリデータ「0x00」が格納されているとみなし、DA読取部34によるDAへのアクセスは省略する。なお、編集ライブラリ3は、バイナリデータ「0x00」を編集ツール5に送信する。つまり、FA読取部33は、実際に格納されているバイナリデータがどのようなものであれ、バイナリデータ「0x00」が格納されているとみなす。しかし、編集ツール5が行う編集処理には、バイナリデータの値そのものを問わない編集処理があり、そのような編集処理に対して、フラグ「5」を用いるという方法が有用である。前記編集処理としては、例えば、COBOLのINITIALIZE命令などの、データ項目の値を特定の値に一度に大量に設定するものがある。また、特定の値として、COBOLのLOW-VALUE(0x00)やHIGH-VALUE(0xFF)を採り上げることもできる。
したがって、実施例3によれば、特定の値を有するフラグをFAに格納することでDAにアクセスすることを省略することができる。このため、文字コード体系を変更して平均データサイズが大きくなったとしても、DAへのアクセスバイト数の増大を抑えることができる。その結果、多くのメモリ帯域リソースを使用してしまい、情報処理装置Pの性能の低下を招くという事態を回避することができる。
なお、図5では、バイナリデータについて説明したが、文字データについても本実施例を適用することができる。例えば、上記した特定の値を半角の文字データ“0”(UTF−32では、「0x00000030」。UTF−8では、「0x30」。)とすることができる。この場合、FAにフラグ「5」が格納されているとき、対応するDAには、文字データ“0”が格納されているとみなし、DAへのアクセスを省略することができる。
≪その他≫
(1):本実施形態では、DA設定部31によってDAに文字データが格納された場合には、DA読取部34がDAから文字データを取得するようにし、DA設定部31によってDAにバイナリデータが格納された場合には、DA読取部34がDAからバイナリデータを取得するようにした。しかし、編集ツール5の編集処理の目的に応じて、DAに文字データが格納された場合であっても、DAからバイナリデータを取得することもできるし、DAにバイナリデータが格納された場合であっても、DAから文字データを取得することもできる。これらの場合であっても、対応するFAには、DAに格納されたデータの種類を識別する正しいフラグが格納されているからである。
(2):本実施形態では、Shift-JISなどの、1桁からなる半角文字を1バイトで表し、2桁からなる全角文字を2バイトで表す文字コード体系から、Unicodeなどに変更した場合において、FAに格納するフラグとして、半角文字を示す「0」、全角文字の1桁目(左半分)を示す「1」、全角文字の2桁目(右半分)を示す「2」を用いた。しかし、各DAに格納されている文字データ自体にアクセスすれば、半角文字を判定できることはできるし、全角文字を判定できることもできる(複数のDAに冗長に格納されるため、全角文字の桁順は不明)。よって、例えば、少なくとも全角文字の1桁目(左半分)または2桁目(右半分)にのみフラグを割り当てるようにし、他の文字データにはフラグを割り当てないようにすることで、DAごとの文字データの分類を行うこともできる。
(3):本実施形態では、実施例1〜3においてFAを、データの種類判定用(実施例1)、文字データの桁順の判定用(実施例2)、頻出する特定の値を有するデータの判定用(実施例3)として兼用し、作業領域4に設定した。しかし、例えば、FAを実施例1〜3の用途に応じて個別に用意して作業領域4に設定することもできる。また、実施例1〜3のFAは、DAに対応付けられていてもDAとは別体の格納領域として設定した。しかし、対応付けられたDAに含めるようにしてFAを設定することもできる。具体的には、文字コード体系をUTF−32に変更した場合、4バイトの文字データの未使用分となる上位数ビットをFAとして活用し、フラグをその上位数ビットに格納してもよい。また、DAの領域サイズを5バイトにし、4バイトの文字データを各DAに格納するとともに、残りの1バイトをFAとして活用し、1バイト以下のフラグをその残りの1バイトに格納してもよい。このように、DAおよびFAについてはさまざまな形態をとることができる。
(4):DA設定部31が作業領域4に設定する横並びのDA(図1参照)について、図1の左側から右側に向かって、最上位のバイトから順に、該当するDAに格納したりDAから取得したりすることもできるし(ビッグエンディアン)、図1の左側から右側に向かって、最下位のバイトから順に、該当するDAに格納したりDAから取得したりすることもできる(リトルエンディアン)。よって、横並びのDAに対して、文字列データを格納したり取得したりする場合、全角文字を表すバイトの格納順序を、図4に示す全角文字「あ」のように、1桁目→2桁目という桁順と同じ順序にすることもできるし、2桁目→1桁目という桁順と逆の順序にすることもできる。上記説明は、FAにも当てはまる。
また、本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
その他、ハードウェア、ソフトウェア、フローチャートなどについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
P 情報処理装置
1 処理部
2 記憶部
3 編集ライブラリ
31 DA設定部(データ格納領域設定部)
32 FA設定部(フラグ格納領域設定部)
33 FA読取部(フラグ格納領域読取部)
34 DA読取部(データ格納領域読取部)
4 作業領域
5 編集ツール
f ファイル
T 文字コード変換表

Claims (6)

  1. 処理対象のデータの文字コード体系が変更され、変更後の文字コード体系を用いて前記データを処理する情報処理装置であって、
    1データ分のデータを格納可能であり、各々で領域サイズが均一となるデータ格納領域を設定するデータ格納領域設定部と、
    前記データ格納領域に格納されるデータの種類を識別するフラグを格納するフラグ格納領域を、前記データ格納領域に対応付けて設定するフラグ格納領域設定部と、
    前記フラグが格納された前記フラグ格納領域を読み取るフラグ格納領域読取部と、
    前記フラグ格納領域に対応付けて設定された前記データ格納領域を読み取るデータ格納領域読取部と、を備え、
    前記データは、前記変更後の文字コード体系において1文字を所定のデータサイズで表現する文字データ、または、バイナリデータであり、
    前記データ格納領域の前記領域サイズは、前記文字コード体系において表現され得る前記文字データのデータサイズの最大値と同じ値をとるサイズ、または、前記最大値よりも大きな値をとるサイズであり、
    前記フラグ格納領域に格納される前記フラグは、前記データ格納領域に格納されるデータが前記文字データであることを示すフラグ、および、前記データ格納領域に格納されるデータが前記バイナリデータであることを示すフラグ、を含む、
    ことを特徴とする情報処理装置。
  2. 処理対象のデータの文字コード体系が変更され、変更後の文字コード体系を用いて前記データを処理する情報処理装置であって、
    1データ分のデータを格納可能であり、各々で領域サイズが均一となるデータ格納領域を設定するデータ格納領域設定部と、
    前記データ格納領域に格納されるデータの種類を識別するフラグを格納するフラグ格納領域を、前記データ格納領域に対応付けて設定するフラグ格納領域設定部と、
    前記フラグが格納された前記フラグ格納領域を読み取るフラグ格納領域読取部と、
    前記フラグ格納領域に対応付けて設定された前記データ格納領域を読み取るデータ格納領域読取部と、を備え、
    前記データが、前記変更後の文字コード体系において1文字を所定のデータサイズで表現する文字データである場合、
    前記データ格納領域設定部は、1文字を表現する前記文字データを、複数の前記データ格納領域の各々に冗長に格納することができ、
    前記フラグ格納領域に格納される前記フラグは、複数の前記データ格納領域の各々に冗長に格納された前記文字データの格納順序を識別するフラグを含む、
    ことを特徴とする情報処理装置。
  3. 処理対象のデータの文字コード体系が変更され、変更後の文字コード体系を用いて前記データを処理する情報処理装置であって、
    1データ分のデータを格納可能であり、各々で領域サイズが均一となるデータ格納領域を設定するデータ格納領域設定部と、
    前記データ格納領域に格納されるデータの種類を識別するフラグを格納するフラグ格納領域を、前記データ格納領域に対応付けて設定するフラグ格納領域設定部と、
    前記フラグが格納された前記フラグ格納領域を読み取るフラグ格納領域読取部と、
    前記フラグ格納領域に対応付けて設定された前記データ格納領域を読み取るデータ格納領域読取部と、を備え、
    前記フラグ格納領域に格納される前記フラグは、前記データのうち特定の値を有するデータが、前記フラグ格納領域に対応付けられた前記データ格納領域に格納されているとみなすフラグ、を含む、
    ことを特徴とする情報処理装置。
  4. 処理対象のデータの文字コード体系が変更され、変更後の文字コード体系を用いて前記データを処理する情報処理装置における情報処理方法であって、
    1データ分のデータを格納可能であり、各々で領域サイズが均一となるデータ格納領域を、データ格納領域設定部が設定するステップと、
    前記データ格納領域に格納されるデータの種類を識別するフラグを格納するフラグ格納領域を、前記データ格納領域に対応付けて、フラグ格納領域設定部が設定するステップと、
    前記フラグが格納された前記フラグ格納領域を読み取るフラグ格納領域読取ステップと、
    前記フラグ格納領域に対応付けて設定された前記データ格納領域を読み取るデータ格納領域読取ステップと、を備え、
    前記データは、前記変更後の文字コード体系において1文字を所定のデータサイズで表現する文字データ、または、バイナリデータであり、
    前記データ格納領域の前記領域サイズは、前記文字コード体系において表現され得る前記文字データのデータサイズの最大値と同じ値をとるサイズ、または、前記最大値よりも大きな値をとるサイズであり、
    前記フラグ格納領域に格納される前記フラグは、前記データ格納領域に格納されるデータが前記文字データであることを示すフラグ、および、前記データ格納領域に格納されるデータが前記バイナリデータであることを示すフラグ、を含む、
    ことを特徴とする情報処理方法。
  5. 処理対象のデータの文字コード体系が変更され、変更後の文字コード体系を用いて前記データを処理する情報処理装置における情報処理方法であって、
    1データ分のデータを格納可能であり、各々で領域サイズが均一となるデータ格納領域を、データ格納領域設定部が設定するステップと、
    前記データ格納領域に格納されるデータの種類を識別するフラグを格納するフラグ格納領域を、前記データ格納領域に対応付けて、フラグ格納領域設定部が設定するステップと、
    前記フラグが格納された前記フラグ格納領域を読み取るフラグ格納領域読取ステップと、
    前記フラグ格納領域に対応付けて設定された前記データ格納領域を読み取るデータ格納領域読取ステップと、を備え、
    前記データが、前記変更後の文字コード体系において1文字を所定のデータサイズで表現する文字データである場合、
    前記データ格納領域設定部は、1文字を表現する前記文字データを、複数の前記データ格納領域の各々に冗長に格納することができ、
    前記フラグ格納領域に格納される前記フラグは、複数の前記データ格納領域の各々に冗長に格納された前記文字データの格納順序を識別するフラグを含む、
    ことを特徴とする情報処理方法。
  6. 処理対象のデータの文字コード体系が変更され、変更後の文字コード体系を用いて前記データを処理する情報処理装置における情報処理方法であって、
    1データ分のデータを格納可能であり、各々で領域サイズが均一となるデータ格納領域を、データ格納領域設定部が設定するステップと、
    前記データ格納領域に格納されるデータの種類を識別するフラグを格納するフラグ格納領域を、前記データ格納領域に対応付けて、フラグ格納領域設定部が設定するステップと、
    前記フラグが格納された前記フラグ格納領域を読み取るフラグ格納領域読取ステップと、
    前記フラグ格納領域に対応付けて設定された前記データ格納領域を読み取るデータ格納領域読取ステップと、を備え、
    前記フラグ格納領域に格納される前記フラグは、前記データのうち特定の値を有するデータが、前記フラグ格納領域に対応付けられた前記データ格納領域に格納されているとみなすフラグ、を含む、
    ことを特徴とする情報処理方法。
JP2015014040A 2015-01-28 2015-01-28 情報処理装置、および、情報処理方法 Active JP6397343B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015014040A JP6397343B2 (ja) 2015-01-28 2015-01-28 情報処理装置、および、情報処理方法
CN201680007574.9A CN107209672B (zh) 2015-01-28 2016-01-14 信息处理装置以及信息处理方法
PCT/JP2016/050977 WO2016121509A1 (ja) 2015-01-28 2016-01-14 情報処理装置、および、情報処理方法
HK18104100.9A HK1244910A1 (zh) 2015-01-28 2018-03-26 信息處理裝置以及信息處理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015014040A JP6397343B2 (ja) 2015-01-28 2015-01-28 情報処理装置、および、情報処理方法

Publications (2)

Publication Number Publication Date
JP2016139294A JP2016139294A (ja) 2016-08-04
JP6397343B2 true JP6397343B2 (ja) 2018-09-26

Family

ID=56543128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015014040A Active JP6397343B2 (ja) 2015-01-28 2015-01-28 情報処理装置、および、情報処理方法

Country Status (4)

Country Link
JP (1) JP6397343B2 (ja)
CN (1) CN107209672B (ja)
HK (1) HK1244910A1 (ja)
WO (1) WO2016121509A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502971B (zh) * 2016-10-27 2020-04-21 青岛海信移动通信技术股份有限公司 输入信息的处理方法、装置及移动终端

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07239789A (ja) * 1994-02-28 1995-09-12 Mitsubishi Electric Corp データコード処理方式
US6622239B1 (en) * 1999-06-25 2003-09-16 International Business Machines Corporation Method, system and computer program product for optimization of single byte character processing employed within a multibyte character encoding scheme
JP3419371B2 (ja) * 1999-12-28 2003-06-23 松下電器産業株式会社 符号長計算装置、及び符号化装置
US6825782B2 (en) * 2002-09-20 2004-11-30 Ntt Docomo, Inc. Method and apparatus for arithmetic coding and termination
JP4308676B2 (ja) * 2003-01-24 2009-08-05 株式会社リコー 文字列処理装置,文字列処理方法および画像形成装置
US8181109B2 (en) * 2003-03-13 2012-05-15 International Business Machines Corporation Enabling unicode input in legacy operating systems
JP4129981B2 (ja) * 2004-04-02 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション コンパイラ、コンパイラプログラム、記録媒体、制御方法、及び中央処理装置
WO2005101210A1 (ja) * 2004-04-09 2005-10-27 Sharp Kabushiki Kaisha データ解析装置、データ解析方法、データ解析プログラム、およびデータ解析プログラムを記録した記録媒体
US20050289132A1 (en) * 2004-06-24 2005-12-29 Brian Lee Method and system for converting encoding character set
CN1862525A (zh) * 2005-05-11 2006-11-15 上海迪比特实业有限公司 一种编码转换方法
US7259697B2 (en) * 2005-12-14 2007-08-21 International Business Machines Corporation Method and system for performing character-based streaming of mixed-byte encoded data
US7642937B2 (en) * 2006-01-09 2010-01-05 Taiwan Semiconductor Manufacturing Co., Ltd. Character conversion methods and systems
US7593938B2 (en) * 2006-12-22 2009-09-22 Isilon Systems, Inc. Systems and methods of directory entry encodings
JP2010224656A (ja) * 2009-03-19 2010-10-07 Ns Solutions Corp ソースコード生成装置、プログラム及びソースコード生成方法
JP5397700B2 (ja) * 2010-04-09 2014-01-22 ソニー株式会社 情報処理装置および方法
CN102567019A (zh) * 2011-12-26 2012-07-11 山东浪潮齐鲁软件产业股份有限公司 一种web应用excel插件时支持多种字符集的方法
JP6028392B2 (ja) * 2012-05-24 2016-11-16 富士通株式会社 生成プログラム、生成方法、生成装置、検索プログラム、検索方法および検索装置
JP6029321B2 (ja) * 2012-05-28 2016-11-24 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
CN103095835A (zh) * 2013-01-17 2013-05-08 成都理想科技开发有限公司 基于报警***通信数据包的合理构造与正确解析的实现方法
JP6160259B2 (ja) * 2013-05-30 2017-07-12 富士通株式会社 文字列探索方法、文字列探索装置および文字列探索プログラム
CN103729179B (zh) * 2013-12-25 2017-02-15 飞天诚信科技股份有限公司 安全执行委托管理命令的方法

Also Published As

Publication number Publication date
CN107209672A (zh) 2017-09-26
JP2016139294A (ja) 2016-08-04
CN107209672B (zh) 2020-08-14
WO2016121509A1 (ja) 2016-08-04
HK1244910A1 (zh) 2018-08-17

Similar Documents

Publication Publication Date Title
US10140113B2 (en) Data processing method and device of preset application after upgrading
US8438558B1 (en) System and method of updating programs and data
US20030172168A1 (en) Document conversion with merging
US11210269B2 (en) System and method for deduplicating container image storage data
US5701452A (en) Computer generated structure
EP3267308A1 (en) Application loading method and device
US9509333B2 (en) Compression device, compression method, decompression device, decompression method, information processing system, and recording medium
GB2394081A (en) Synchronization of documents between a server and small devices
CN111124288B (zh) 一种vpd存储管理方法、装置、设备及可读存储介质
US20100251227A1 (en) Binary resource format and compiler
US20160217197A1 (en) System and method for endian correction of complex data structures in heterogeneous systems
US20160056839A1 (en) Compression device, compression method, decompression device, decompression method, and computer-readable recording medium
CN112765023A (zh) 测试用例生成方法、装置
CN110413327B (zh) 一种基于硬件抽象层的硬件驱动方法和装置
CN108279941A (zh) 一种应用程序的压缩方法和装置
JP2019526085A (ja) 異種機械アーキテクチャにわたるデータ互換性のためのシステムおよび方法
CN100585561C (zh) 在嵌入式***剪裁可重定位的elf文件的方法
CN106055375A (zh) 应用程序安装方法及装置
CN110727482A (zh) 一种界面的更新方法和装置
WO2017036606A1 (en) Method of operating data memory and device utilizing method
CN112417515A (zh) 组态软件协议处理方法及***
US20170139696A1 (en) Method and a system for merging several binary executables
JP6397343B2 (ja) 情報処理装置、および、情報処理方法
CN112612489A (zh) 软件的升级包构建方法、装置和电子设备
CN110727565B (zh) 一种网络设备平台信息收集方法及***

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180627

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: 20180807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180831

R150 Certificate of patent or registration of utility model

Ref document number: 6397343

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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