(57)【要約】【課題】表計算ソフトウェアで作成された元ファイル同士を比較した場合に、変更があった行の元ファイルにおける行番号を一見して把握することができる比較プログラムを提供すること。【解決手段】表計算ソフトウェアで作成された図２（ａ）に示す元ファイルＡと、図２（ｂ）に示す元ファイルＢとを比較すると、図２（ｃ）示す比較結果ファイルＡと、図２（ｄ）に示す比較結果ファイルＢとが作成される。比較結果ファイルＡと元ファイルＡとは、同じ行番号に同じ情報が設定されているので、図２（ｃ）に示す比較結果ファイルＡを見れば、元ファイルＡの第３行目，第５行目、第６行目を変更したことを一見して把握できる。また、比較結果ファイルＢと元ファイルＢとは、同じ行番号に同じ情報が設定されているので、図２（ｄ）に示す比較結果ファイルＢを見れば、元ファイルＢの第３行目，第４行目、第６行目、第８行目を変更したことを一見して把握できる。【選択図】図２
2011118703.tif 000002
【特許請求の範囲】
【請求項１】
行番号が規定されている格子状の表を出力可能な表計算ソフトウェアによって作成された２つのファイル同士を比較する比較プログラムであって、
前記２つのファイルの一方である第１元ファイルと他方である第２元ファイルとを特定する比較ファイル特定ステップと、
その比較ファイル特定ステップによって特定された前記第１元ファイルと前記第２元ファイルとの各々から行単位で情報を抽出する抽出ステップと、
その抽出ステップによって抽出された行単位の情報である前記第１元ファイルの行情報と前記第２元ファイルの行情報とを比較して、前記第１元ファイルと前記第２元ファイルとで同じ行情報を有する前記第１元ファイルの行番号と前記第２元ファイルの行番号とを、重複特定を避けて特定する変更なし行番号特定ステップと、
前記表計算ソフトウェアに２つの新規ファイルを用意させ、その一方に前記第１元ファイル、他方に前記第２元ファイルを複写して２つの複写ファイルを作成する複写ステップと、
その複写ステップによって作成された２つの複写ファイルの各々について、複写された情報と対応付けられている行番号は維持したまま、前記変更なし行番号特定ステップによって特定された行番号に対応する行情報と、それ以外の行番号に対応する行情報とを識別可能な識別情報を設定する設定ステップとを備えていることを特徴とする比較プログラム。
【請求項２】
前記変更なし行番号特定ステップは、
前記第１元ファイルと前記第２元ファイルとで同じ行情報を有する前記第１元ファイルの行番号と前記第２元ファイルの行番号とを特定する場合、小さい行番号を優先して特定し、
前記第１元ファイルの行番号と前記第２元ファイルの行番号とのうち、前記変更なし行番号特定ステップによって特定された行番号にはステータスとして変更なし、それ以外の行番号にはステータスとして変更ありを設定し、
前記設定ステップは、
前記第１元ファイルの行番号をカウントする第１カウントステップと、
その第１カウントステップによってカウントされているカウント値に対応した前記第１元ファイルの行番号について、その行番号に設定されているステータスを抽出する第１抽出ステップと、
前記第２元ファイルの行番号をカウントする第２カウントステップと、
その第２カウントステップによってカウントされているカウント値に対応した前記第２元ファイルの行番号について、その行番号に設定されているステータスを抽出する第２抽出ステップと、
前記第１抽出ステップによって抽出されたステータスと、前記第２抽出ステップによって抽出されたステータスとの組み合わせを判断する判断ステップと、
その判断ステップによって、両ステータスが、共に変更なし、または、共に変更ありと判断された場合、前記第１カウントステップと、前記第２カウントステップとの各々にカウントアップさせるように指示する第１指示ステップと、
前記判断ステップによって、両ステータスの一方だけが変更ありと判断された場合、その変更ありが前記第１元ファイルの行番号に設定されていれば、前記第１カウントステップにカウントアップさせ、その変更ありが前記第２元ファイルの行番号に設定されていれば前記第２カウントステップにカウントアップさせるように指示する第２指示ステップと、
前記判断ステップによって、両ステータスが、共に変更ありと判断された場合、その変更ありが設定されている前記第１元ファイルの行番号に対応する行情報と、前記第２元ファイルの行番号に対応する行情報との各々を、前記複写ファイルにおいて編集された情報であるこを示す編集情報と対応付けて設定する編集情報設定ステップと、
前記判断ステップによって、両ステータスのうち前記第１元ファイルの行番号に設定されているステータスだけが変更ありと判断された場合、その第１元ファイルの行番号に対応する行情報を、前記複写ファイルにおいて削除された情報であるこを示す削除情報と対応付けて設定する削除情報設定ステップと、
前記判断ステップによって、両ステータスのうち前記第２元ファイルの行番号に設定されているステータスだけが変更ありと判断された場合、その第２元ファイルの行番号に対応する行情報と、前記複写ファイルにおいて挿入された情報であるこを示す挿入情報と対応付けて設定する挿入情報設定ステップとを備えていることを特徴とする請求項１に記載の比較プログラム。
【請求項３】
前記複写ステップによって作成される２つの複写ファイルの各々に第１列目を挿入する挿入ステップを備え、
前記編集情報設定ステップと、前記削除情報設定ステップと、前記挿入情報設定ステップとは、前記挿入ステップによって挿入された第１列目であって対応する行番号に、前記編集情報、前記削除情報、前記挿入情報を設定することを特徴とする請求項２に記載の比較プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、比較プログラムに関し、特に、表計算ソフトウェアで作成された２つの元ファイル同士を比較した場合に、変更があった行の元ファイルにおける行番号を一見して把握することができる比較プログラムに関するものである。
【背景技術】
【０００２】
従来、２つの元ファイルを比較可能なソフトウェアに知られている。例えば、マイクロソフト社のワード（登録商標）には、次の文書比較機能が搭載されている。図８（ａ１）は比較対象の一方である元ファイルＡの出力画面、図８（ａ２）は比較対象の他方である元ファイルＢの出力画面、図８（ａ３）は比較結果ファイルの出力画面を示している。
【０００３】
ワードを使って、図８（ａ１）、図８（ａ２）に示す表を作成し、その２つの表をワードの文書比較機能を使って比較すると、図８（ａ３）に示す表が出力される。図８（a３）に示す表から、文字中央の削除線によって「伊藤××、愛知××」が削除され、アンダーラインによって「太田○○、愛知××」が挿入されたことを一見して把握することができる。尚、２つの元ファイルを比較可能なソフトウェアは、上述したワードの文書比較機能の他、次の特許文献１に、元文書と変更後文書とを比較して変更箇所を校正記号で表示させる文書処理装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２３０４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、図８（ａ１）、図８（ａ２）に示す表には行番号がなく、何行目かを一見して把握できない。また、行番号を付けて表を作成すれば良いが、わざわざ行番号を付けるのは手間である。一方で、マイクロソフト社のエクセル（登録商標）に例示される表計算ソフトウェアが知られている。表計算ソフトウェアでは、行番号と列番号とが規定されている格子状の表が出力されるので、行番号をわざわざ付ける必要がない。図８（ｂ１）は、図８（ａ１）に示す表をエクセルで作成したファイルの出力画面、図８（ｂ２）は、図８（ａ２）に示す表をエクセルで作成したファイルの出力画面である。図８（ｂ１）、図８（ｂ２）に示すように、エクセルで表を作成することで、わざわざ行番号を付けることなく一見して行番号を把握できる。
【０００６】
しかしながら、エクセルをはじめ、表計算ソフトウェアで作成した元ファイル同士を比較するソフトウェアはなく、表計算ソフトウェアで作成した元ファイル同士を比較可能なソフトウェアが要望されていた。また、表計算ソフトウェアで作成したファイルには、行番号と列番号とが付けられるので、上述したワードの文書比較機能を、そのまま適用しても、次の問題点があった。
【０００７】
図８（ｂ３）は、図８（ａ３）に示す表をエクセルで作成したファイルの出力画面である。図８（ｂ３）に示すように、ワードの文書比較機能では、削除された行（「伊藤××、愛知××」）も比較結果として出力されるので、比較結果と、元ファイルとの間で行番号がずれ、挿入された行が元ファイルの何行目なのかを、特定し難いという問題点があった。
【０００８】
図８（ｂ３）の比較結果では、挿入された「太田○○、愛知××」は５行目に出力されるのに対し、図８（ｂ２）の元ファイルでは４行目に出力される。よって、挿入された「太田○○、愛知××」が、図８（ｂ２）の元ファイルの何行目なのかは、結局、図８（ｂ２）の元ファイルにおいて、「太田○○、愛知××」という文字列を追わなければ分からず、挿入された行の元ファイルにおける行番号を特定し難いという問題点があった。
【０００９】
本発明は、上述した問題点を解決するためになされたものであり、表計算ソフトウェアで作成された元ファイル同士を比較した場合に、変更があった行の元ファイルにおける番号を一見して把握することができる比較プログラムを提供することを目的としている。
【課題を解決するための手段および発明の効果】
【００１０】
請求項１記載の比較プログラムによれば、行番号が規定されている格子状の表を出力可能な表計算ソフトウェアによって作成された２つのファイル同士を比較する場合、２つファイルの一方である第１元ファイルと他方である第２元ファイルとが特定ステップによって特定され、その特定された第１元ファイルと第２元ファイルとの各々から行単位で情報が抽出ステップによって抽出される。
【００１１】
抽出された行単位の情報である第１元ファイルの行情報と第２元ファイルの行情報とは、変更なし行番号特定ステップによって比較され、第１元ファイルと第２元ファイルとで同じ行情報を有する第１元ファイルの行番号と第２元ファイルの行番号とが特定される。また、変更なし行番号を特定する場合には、重複特定されるのが避けられている。例えば、３行形成の２つの表において、一方の表の第１行目に入力されている行情報と、他方の表の第１〜第３行目の各々に入力されている行情報とが同一であった場合、他方の表の第１〜第３行目の全部は特定されず、特定されるのは、他方の表の第１〜第３行目のいずれか１行である。
【００１２】
一方、複写ステップによって、表計算ソフトウェアから２つの新規ファイルが用意され、その一方に第１元ファイル、他方に第２元ファイルが複写され、２つの複写ファイルが作成される。尚、複写とは、第１元ファイルと、第２元ファイルとの各々が、各複写ファイルと同一であることを意味している。
【００１３】
複写ステップによって作成された２つの複写ファイルの各々は、複写された情報と対応付けられている行番号は維持されるので、第１元ファイルと複写ファイルとの間、第２元ファイルと複写ファイルとの間で行番号がずれることはない。また、２つの複写ファイルの各々は、変更なし行番号特定ステップによって特定された行番号に対応する行情報と、それ以外の行番号に対応する行情報とが識別情報によって識別可能に設定される。
【００１４】
即ち、変更なし行番号特定ステップによって特定された行番号に対応する行情報は、変更がなかった行情報であり、それ以外の行番号に対応する行情報は、変更があった行情報であり、変更がなかった行情報と、変更があった行情報とは、識別情報によって識別可能に設定されるので、変更があった行情報を一見して把握することができる。
【００１５】
また、上述した通り、第１元ファイルと複写ファイルとの間、第２元ファイルと複写ファイルとの間で行番号がずれることもないので、変更があった行番号も一見して把握することができる。従って、表計算ソフトウェアで作成されたファイル同士を比較した場合に、変更があった行の元ファイルにおける行番号を一見して把握することができるという効果がある。尚、請求項１では、行番号、行単位、行情報の記載がされているが、請求項１は「行」方向（横方向）に限定されるものではない。行番号、行単位、行情報は縦方向であっても良い。換言すれば、行番号、行単位、行情報を、列番号、列単位、列情報としても良い。
【００１６】
請求項２記載の比較プログラムによれば、請求項１記載の比較プログラムの奏する効果に加え、第１元ファイルと第２元ファイルとで同じ行情報を有する第１元ファイルの行番号と第２元ファイルの行番号とを特定する場合には小さい行番号が優先して特定される。よって、後述する方法で、変更があった行が、削除、挿入、編集の何れの変更なのかを特定することができる。
【００１７】
さらに、第１元ファイルの行番号と第２元ファイルの行番号とのうち、変更なし行番号特定ステップによって特定された行番号には、ステータスとして変更なし、それ以外の行番号には、ステータスとして変更ありが設定される。よって、行番号単位で、変更があった行と、変更がなかった行とを把握できる。設定されたステータスは、第１元ファイルにおいて行番号順に抽出され、第２元ファイルにおいても行番号順に抽出され、その抽出された両ステータスの組み合わせから、変更があった行が、削除、挿入、編集の何れの変更なのかが特定される。
【００１８】
第１元ファイルの行番号は、第１カウントステップによってカウントされ、そのカウント値に対応した第１元ファイルの行番号について、設定されているステータスが第１抽出ステップによって抽出される。最初は、第１元ファイルも、第２元ファイルも、最も小さい行番号に対応つけられているステータスが抽出される。その後は、第１指示ステップ、第２指示ステップからの指示に応じてカウントアップされていき、そのカウント値に対応した行番号について、設定されているステータスが抽出される。同様に、第２元ファイルの行番号は第２カウントステップによってカウントされ、そのカウント値に対応した第２元ファイルの行番号について設定されているステータスが第２抽出ステップによって抽出される。
【００１９】
抽出された第１元ファイルの行番号に設定されたステータスと、第２元ファイルの行番号に設定されたステータスとは、判断手段によって、その組み合わせが判断される。組み合わせとしては、次の４通りである。両方「変更なし」、両方「変更あり」、片方「変更あり」、別の片方「変更あり」である。
【００２０】
判断ステップによって、両ステータスが、共に変更なし、または、共に変更ありと判断されると、第１指示ステップによって、第１カウントステップと、第２カウントステップとの各々にカウントアップするように指示がなされる。即ち、両方、次の行番号に設定されているステータスが抽出される。
【００２１】
また、両ステータスが、共に変更ありと判断されると、編集情報設定ステップによって、変更ありが設定されている第１元ファイルの行番号に対応する行情報と、第２元ファイルの行番号に対応する行情報との各々が、複写ファイルにおいて、編集された情報であるこを示す編集情報と対応付けて設定される。即ち、両ステータスが、共に変更ありの場合、両行は何らかの編集があったと特定できるので、複写ファイルにおいて、両行に編集情報を対応つけて設定することで、両行が変更があった行であり、更に、編集された行であることを把握することができる。尚、両ステータスが、共に変更なしの場合には、特に、複写ファイルに設定はされない。
【００２２】
一方、判断ステップによって、両ステータスの一方だけが変更ありと判断された場合、その変更ありが第１元ファイルの行番号に設定されていれば、第１指示ステップによって第１カウントステップにカウントアップさせるように指示がなされ、その変更ありが第２元ファイルの行番号に設定されていれば第２カウントステップにカウントアップさせるように指示がなされる。即ち、変更があった行のみ、次の行番号に設定されているステータスが第１、第２抽出ステップによって抽出される。
【００２３】
また、両ステータスのうち第１元ファイルの行番号に設定されているステータスだけが変更ありと判断された場合には、削除情報設定ステップによって、その第１元ファイルの行番号に対応する行情報と、削除された情報であるこを示す削除情報とが複写ファイルにおいて対応付けて設定される。即ち、この場合、第１元ファイルにおける該当行は、削除された行情報であると特定できるので、その行に削除情報を対応つけて複写ファイルを設定するこで、その行が変更があった行であり、更に、削除された行であることを把握することができる。尚、この場合、第１元ファイルにおける該当行は、削除された行情報であると特定できるとしたのは、後述するように、第２元ファイルの行番号に設定されているステータスだけが変更ありと判断された場合、その第２元ファイルの該当行を、挿入としている関係である。よって、この関係を逆に構成しても良い。
【００２４】
一方、両ステータスのうち第２元ファイルの行番号に設定されているステータスだけが変更ありと判断された場合、挿入情報設定ステップによって、その第２元ファイルの行番号に対応する行情報と、挿入された情報であるこを示す挿入情報とが複写ファイルにおいて対応付けて設定される。即ち、この場合、第２元ファイルにおける該当行は、挿入されたと特定できるので、その行に挿入情報を対応つけて複写ファイルを設定するこで、その行が変更があった行であり、更に、挿入された行であることを把握することができる。
【００２５】
このように、第１元ファイル、第２元ファイルから、行番号が小さい順に、各行番号に設定されているステータスを抽出し、その抽出した第１元ファイルのステータスと、第２元ファイルのステータスとの組合わせに応じて、変更があった行の変更種別（削除、挿入、編集）を特定し、その特定した種別を、対応する複写ファイルに設定する。即ち、２つの複写ファイルについて、並行して変更種別（削除、挿入、編集）を設定していくので、２つの複写ファイルについて、効率的に、変更種別（削除、挿入、編集）を設定することができる。
【００２６】
請求項３記載の比較プログラムは、請求項２記載の比較プログラムの奏する効果に加え、複写ステップによって作成される２つの複写ファイルの各々には、挿入ステップによって第１列目が挿入され、その挿入された第１列目であって対応する行番号の位置に、編集情報設定ステップと、削除情報設定ステップと、挿入情報設定ステップとによって、編集情報、削除情報、挿入情報が設定される。よって、複写ファイルに対し、第１元ファイルと第２元ファイルとは列番号が１列ずれことになるが、行番号が変わることはなく、変更前と変更後とで行番号を変えることなく、どの行が編集、削除、挿入されたのかを、把握し易くすることができるという効果がある。
【図面の簡単な説明】
【００２７】
【図１】比較プログラムがインストールされているパーソナルコンピュータの電気的構成を示したブロック図である。
【図２】（ａ）は比較対象の一方である元ファイルＡの出力画面、（ｂ）は比較対象の他方である元ファイルＢの出力画面、（ｃ）は比較結果ファイルＡの出力画面、（ｄ）は比較結果ファイルＢの出力画面を示す図である。
【図３】（ａ１）は作成当初の比較テーブルＡ、（ａ２）は更新後の比較テーブルＡ、（ｂ１）は作成当初の比較テーブルＢ、（ｂ２）は更新後の比較テーブルＢを摸式的に示す図である。
【図４】比較処理を示すフローチャートである。
【図５】変更なし行番号特定処理を示すフローチャートである。
【図６】比較結果ファイル作成処理を示すフローチャートである。
【図７】組合わせ判断処理を示すフローチャートである。
【図８】（ａ１）は比較対象の一方である元ファイルＡの出力画面、（ａ２）は比較対象の他方である元ファイルＢの出力画面、（ａ３）は比較結果ファイルの出力画面を示す図である。（ｂ１）は図８（ａ１）に示す表をエクセルで作成したファイルの出力画面、（ｂ２）は図８（ａ２）に示す表をエクセルで作成したファイルの出力画面、（ｂ３）は図８（ａ３）に示す表をエクセルで作成したファイルの出力画面示す図である。
【発明を実施するための形態】
【００２８】
以下、本発明の好ましい実施の形態について添付図面を参照して説明する。図１は、本発明の一実施形態である比較プログラム５ｂがインストールされているパーソナルコンピュータ１（以下「ＰＣ１」）の電気的構成を示したブロック図である。比較プログラム５ｂは、表計算ソフトウェアで作成された元ファイル同士を比較した場合に、変更があった行の元ファイルにおける番号を一見して把握することができるプログラムである。
【００２９】
ＰＣ１は、各種プログラムに従って演算を行う装置であり、主に、ＣＰＵ２、ＲＯＭ３、ＲＡＭ４、ハードディスク５が設けられ、その他、表示装置としてのＣＲＴ６、入力装置としてのキーボード７、外部装置と接続するＩ／Ｆ８等が設けられ、これらはバスライン９を介して互いに接続されている。
【００３０】
ＣＰＵ２は、各種プログラムを実行するプロセッサであり、ＲＯＭ３は、ＰＣ１で実行される各種プログラムなどを格納した書換不能なメモリであり、ＲＡＭ４は、ＣＰＵ２が各種プログラムを実行する際、変数などを一時記憶するワークエリア等を有するランダムにアクセスできるメモリである。ＲＡＭ４には、特に、比較テーブルＡメモリ４ａ、比較テーブルＢメモリ４ｂ、iカウンタ４ｃ、ｊカウンタ４ｄが割り当てられている。
【００３１】
比較テーブルＡメモリ４ａには、図３（ａ１）、図３（ａ２）に示す比較テーブルＡが記憶されている。比較テーブルＡには、比較対象の一方である元ファイルＡに関する情報が行単位で記憶されている。比較テーブルＢメモリ４ｂには、図３（ｂ１）、図３（ｂ２）に示す比較テーブルＢが記憶されている。比較テーブルＢには、比較対象の他方である元ファイルＢに関する情報が行単位で記憶されている。比較対象である元ファイルＡと元ファイルＢとの比較結果は、比較テーブルＡ，Ｂを参照して作成する。尚、比較テーブルＡ，Ｂの詳細については、後述する。
【００３２】
iカウンタ４ｃは元ファイルＡの行番号、jカウンタ４ｄは元ファイルＢの行番号を計数するカウンタであり、カウントアップの指示があった場合に「１」カウントずつカウントし、各カウンタ４ｃ，４ｄが示すカウンタ値に対応した行番号について各種処理が実行される。
【００３３】
ハードディスク５は、書換可能な不揮発性のメモリであり、ハードディスク５に記憶されたデータは、ＰＣ１の電源オフ後も保持される。ハードディスク５には、特に、エクセル５ａ、比較プログラム５ｂが記憶されている。
【００３４】
エクセル５ａは、表計算アプリケーションの一つであり、本実施形態は、エクセル５ａで作成された２つの元ファイルの一方である元ファイルＡ（図２（ａ））、他方である元ファイルＢ（図２（ｂ））を比較するする。
【００３５】
比較プログラム５ｂは、エクセル５ａで作成した２つの元ファイルを比較し、その比較結果ファイルを作成するプログラムであり、図４に示す比較処理、図５に示す変更なし行番号特定処理、図６に示す比較結果ファイル作成処理をＣＰＵ２に実行させるプログラムである。
【００３６】
図２（ａ）は、比較対象の一方である元ファイルＡの出力画面、図２（ｂ）は比較対象の他方である元ファイルＢの出力画面、図２（ｃ）は比較結果ファイルＡの出力画面、図２（ｄ）は比較結果ファイルＢの出力画面を示す図である。
【００３７】
エクセル５ａで作成したファイルは、行番号として横方向に１，２，３・・・・、列番号として縦方向にＡ，Ｂ，Ｃ・・・が規定された格子状の表に、その表の各マス目に入力した情報が出力画面に出力される。
【００３８】
図２（ａ）に示すように、比較対象の一方である元ファイルＡには、第１列目に第１行目から順番に「あ」、「−」、「い」、「あ」、「え」、「−」、「お」の文字、第２列目に第１行目から順番に「か」、「−」、「き」、「か」、「け」、「−」、「こ」の文字が入力されている。
【００３９】
図２（ｂ）に示すように、比較対象の他方である元ファイルＢには、第１列目に第１行目から順番に「あ」、「−」、「い」、「わ」、「あ」、「や」、「お」、「お」の文字、第２列目に第１行目から順番に「か」、「−」、「ん」、「を」、「か」、「ゆ」、「こ」、「こ」の文字が入力されている。
【００４０】
元ファイルＡ，Ｂを比較プログラム５ｂによって比較すると、図２（ｃ）に示すように出力される比較結果ファイルＡと、図２（ｄ）に示すように出力される比較結果ファイルＢとを作成する。比較結果ファイルＡは元ファイルＡに対応し、比較結果ファイルＢは元ファイルＢに対応する。
【００４１】
比較結果ファイルＡ，Ｂは、元ファイルＡ，Ｂの行番号をずらすことなく作成する。即ち、比較結果ファイルＡと元ファイルＡとは、同じ行番号に同じ情報、比較結果ファイルＢと元ファイルＢとは、同じ行番号に同じ情報が設定される。一方で、比較結果ファイルＡ，Ｂには、元ファイルＡ，Ｂに対し、第１列目が挿入され、その挿入された第１列目の対応行に「削除」、「挿入」、「編集」の文字が設定される。また、「削除」、「挿入」が設定された行は全列、「編集」が設定された行は「編集」があった列にだけ、着色が設定される。
【００４２】
よって、図２（ｃ）に示す比較結果ファイルＡを見れば、元ファイルＡの第３行目，第５行目、第６行目を変更したこと。また、第３行目の変更，第５行目の変更は「編集」、第６行目の変更は「削除」であること。さらに、「編集」は第３行目の一部、第５行目の全部でしたことを一見して把握できる。
【００４３】
また、同様に、図２（ｄ）に示す比較結果ファイルＢを見れば、元ファイルＢの第３行目，第４行目、第６行目、第８行目を変更したこと。また、第３行目の変更，第６行目の変更は「編集」、第４行目の変更、第８行目の変更は「挿入」したこと。さらに、「編集」は第３行目の一部、第６行目の全部でしたことを一見して把握できる。
【００４４】
図３（ａ１）は作成当初の比較テーブルＡ、図３（ａ２）は更新後の比較テーブルＡ、図３（ｂ１）は作成当初の比較テーブルＢ、図３（ｂ２）は更新後の比較テーブルＢを摸式的に示す図である。
【００４５】
比較テーブルＡ，Ｂは、比較対象となる元ファイル毎に作成するテーブルであり、本実施形態では、元ファイルＡについて比較テーブルＡ、元ファイルＢに対して比較テーブルＢを作成する。比較テーブルＡ，Ｂは、当初、図３（ａ１）、（ｂ１）に示すように作成した後、各比較テーブルＡ，Ｂのステータスを図３（ａ２）、図３（ｂ２）に示すように設定する。
【００４６】
比較テーブルＡ，Ｂは、元ファイルの行番号毎に、文字列と、ハッシュ値と、ステータスとを対応つけて作成する。行番号は、元ファイルの行番号であり、第１行目から情報が入力されている最終の行番号までの行番号である。文字列は、同じ行番号に対応つけられている全ての文字である。尚、文字には、数字、記号等も含まれる。ハッシュ値は、各文字列を所定のハッシュ関数を用いて数値化したものである。ステータスは、変更があった行か、変更がなかった行かを示す情報であり、変更があった場合に「変更有」、変更がなかった場合に「変更なし」に設定するが、図３（ａ１）、図３（ｂ１）に示す通り、比較テーブルＡ，Ｂの作成当初はステータスを全て「変更有」に設定する。
【００４７】
図３（ａ１）に示す比較テーブルＡは、図２（ａ）に示す元ファイルＡから作成する。図２（ａ）に示す元ファイルＡには、第１行目から第７行目まで文字が入力されているので、比較テーブルＡの行番号に「１」〜「７」を設定する。また、元ファイルＡの第１行目には第１列目に「あ」、第２列目に「い」が入力されているので、行番号「１」に対応する文字列として「あか」を設定する。ハッシュ値には、文字列の「あか」をハッシュ化したハッシュ値として「１００」を設定する。ステータスには、変更の有り無しに拘わらず、当初は「変更有」を設定する。こうして、図３（ａ１）に示す比較テーブルＡを作成する。また、同様に、図２（ｂ）に示す元ファイルＢから、図３（ｂ１）に示す比較テーブルＢを作成する。
【００４８】
図３（ａ１）、図３（ｂ１）に示す比較テーブルＡ，Ｂは、図５のフローチャートに示す変更なし行番号特定処理において、変更がなかった行番号に対応するステータスを、「変更有」から「変更なし」に設定する。具体的には、図３（ａ１）に示す比較テーブルＡは、図３（ａ２）に示すように、第１行目，第２行目，第４行目，第７行目のステータスを「変更有」から「変更なし」に設定する。また、図３（ｂ１）に示す比較テーブルＢは、図３（ｂ２）に示すように、第１行目，第２行目，第５行目，第７行目のステータスを「変更有」から「変更なし」に設定する。
【００４９】
尚、図３（ａ２）、図３（ｂ２）に示す比較テーブルＡ，Ｂを参照して、図６のフローチャートに示す比較結果ファイル作成処理を実行し、図２（ｂ）、図２（ｄ）のように出力される比較結果ファイルＡ，Ｂを作成する。
【００５０】
図４は、比較処理を示すフローチャートである。この処理は、エクセル５ａで作成された２つの元ファイル同士を比較し、比較結果ファイルを作成する処理であり、比較プログラム５ｂに従って、ＣＰＵ２によって実行される。尚、この処理は、ユーザによって比較プログラム５ａが起動された場合に実行される。
【００５１】
この処理では、まず、比較対象となる２つの元ファイル（元ファイルＡと元ファイルＢ）が特定されたかを判断する（Ｓ４０１）。２つの元ファイルは、ユーザによって任意に指定され、ユーザによって２つの元ファイルが指定された場合に、その指定された２つの元ファイルを特定する（Ｓ４０１：Ｙｅｓ）。尚、２つの元ファイルが指定されない場合、２つの元ファイルを特定できないとして（Ｓ４０１：Ｎｏ）、本処理を終了する。
【００５２】
２つの元ファイルを特定すると（Ｓ４０１；Ｙｅｓ）、２つの元ファイルの各々をテキスト化し（Ｓ４０２）、そのテキスト化したデータから、元ファイルＡに対応した比較テーブルＡ（図３（ａ１）参照）と、元ファイルＢに対応した比較テーブルＢ（図３（ｂ１）参照）とを作成する（Ｓ４０３）。
【００５３】
比較テーブルＡ，Ｂを作成すると（Ｓ４０３）、図５のフローチャートに示す変更なし行番号特定処理を実行し（Ｓ４０４）、元ファイルＡと元ファイルＢとで同じ行単位の情報を有する元ファイルＡの行番号と元ファイルＢとの行番号とを特定する。即ち、元ファイルＡと元ファイルＢとで変更がなかった行番号を特定する。また、図３（ａ１）、図３（ｂ１）に示す比較テーブルＡ，Ｂにおいて、当初、全て「変更有」に設定したステータスを、図３（ａ２）、図３（ｂ２）に示す比較テーブルＡ，Ｂのように、変更なかった行に対応するステータスを「変更有」から「変更なし」に設定する。
【００５４】
こうして、変更なし行番号特定処理によって（Ｓ４０４）、図３（ａ１）、図３（ｂ１）に示す比較テーブルＡ，Ｂのステータスを設定した後、その比較テーブルＡ，Ｂを参照して、図６のフローチャートに示す比較結果ファイル作成処理を実行し（Ｓ４０５）、図２（ｃ）、図２（ｄ）に示すように出力される比較結果ファイルＡ，Ｂを作成し、本処理を終了する。
【００５５】
図５は、変更なし行番号特定処理を示すフローチャートである。この処理は、元ファイルＡ，Ｂにおいて変更がなかった行番号を特定する処理である。また、図３（ａ１）、図３（ｂ１）に示す比較テーブルＡ，Ｂにおいて、当初、全て「変更有」に設定したステータスを、図３（ａ２）、図３（ｂ２）に示すように、変更なかった行に対応するステータスを「変更有」から「変更なし」に設定する処理である。
【００５６】
この処理では、まず、ｉＣｎｔの最終値Ｋと、ｊＣｎｔの最終値Ｌとを設定する（Ｓ５０１）。ｉＣｎｔは元ファイルＡの行番号に対応したカウンタ値であり、本実施形態では元ファイルＡにおいてデータが入力されている最終行は第７行目なので、最終値Ｋを「７」に設定する。ｊＣｎｔは、元ファイルＢの行番号に対応したカウンタ値であり、本実施形態では元ファイルＢにおいてデータが入力されている最終行は第８行目なので最終値Ｌを「８」に設定する。
【００５７】
次に、ｉＣｎｔに「１」（Ｓ５０２）、ｊＣｎｔに「１」を設定した後（Ｓ５０３）、図３（ｂ１）に示す比較テーブルＢを参照して、ｊＣｎｔに対応つけられているステータスが「変更有」かを判断する（Ｓ５０４）。このＳ５０４の処理は、重複特定を防止する処理であり、図３（ｂ１）に示すように、当初、比較テーブルＢのステータスは全て「変更有」に設定されているので、ｊＣｎｔが「１」の場合、ステータスは「変更有」となる（Ｓ５０４；Ｙｅｓ）。
【００５８】
次に、ｉＣｎｔに対応した「ハッシュ値」と、ｊＣｎｔに対応した「ハッシュ値」とが一致しているかを判断する（Ｓ５０５）。即ち、両「ハッシュ値」が一致していれば、現在比較している元ファイルＡの行と、元ファイルＢの行とは一致しており、変更がなかったものと判断する。この処理によって、両者が行単位で同じ情報を有しているか、即ち、変更がなかった行かを判断している。
【００５９】
尚、本実施形態では、異なる文字列は異なるハッシュ値、同じ文字列は同じハッシュ値に設定されるものとするが、異なる文字列であっても同じハッシュ値になる場合の解決策は、例えば、チェイン法などの周知の方法を採用できる。
【００６０】
Ｓ５０５の判断の結果、両「ハッシュ値」が一致している場合には（Ｓ５０５：Ｙｅｓ）、図３（ａ１）に示す比較テーブルＡにおいてｉＣｎｔに対応したステータスを「変更有」から「変更なし」に設定すると共に、図３（ｂ１）に示す比較テーブルＢにおいてｊＣｎｔに対応したステータスを「変更有」から「変更なし」に設定する（Ｓ５０６）。
【００６１】
このＳ５０６の処理により、ｉＣｎｔに対応する行と、ｊＣｎｔに対応する行とは変更がなかった行であることが特定できたので、元ファイルＡの次の行について変更がなかったかを判断する。即ち、ｉＣｎｔに「１」を加算し（Ｓ５０７）、ｉＣｎｔが最終値Ｋ以下かを判断し（Ｓ５０８）、ｉＣｎｔが最終値Ｋ以下であれば（Ｓ５０８：Ｙｅｓ）、再び、Ｓ５０３からの処理を繰り返す。即ち、元ファイルＡの第２行目について判断する。
【００６２】
元ファイルＡの２行目について変更がなかったかを判断する場合には、再び、ｊＣｎｔを「１」に設定し（Ｓ５０３）、ｊＣｎｔに対応つけられているステータスが「変更有」かを判断する（Ｓ５０４）。尚、本実施形態では、先のＳ５０６の処理で、図３（ｂ１）に示す比較テーブルＢの１行目のステータスを「変更なし」に設定したので、ｊＣｎｔ（＝１）に対応つけられているステータスは「変更なし」であると判断する（Ｓ５０４：Ｎｏ）。
【００６３】
よって、次は元ファイルＢの２行目と比較すべく、ｊＣｎｔに「１」を加算し（Ｓ５０９）、ｊＣｎｔが最終値Ｌ以下かを判断し（Ｓ５１０）、ｊＣｎｔが最終値Ｌ以下であれば（Ｓ５１０：Ｙｅｓ）、再び、Ｓ５０４からの処理を繰り返す。尚、本実施形態の場合、図３（ｂ１）の比較テーブルＢに示す通り、元ファイルＢの第２行目のステータスは「変更有」に設定されているので（Ｓ５０４：Ｙｅｓ）、以降は、第１行目と同じ処理を実行し、次に、元ファイルＡの第３行目について判断すべく、再び、Ｓ５０３からの処理を繰り返す。
【００６４】
元ファイルＡの第３行目については、上述したＳ５０６の処理によって、図３（ｂ１）に示す比較テーブルＢの第１行目、第２行目のステータスを「変更なし」に設定したので、Ｓ５０４、Ｓ５０９、Ｓ５１０の処理を２回繰り返した後で、Ｓ５０４の処理で「変更有」に設定されていると判断し（Ｓ５０４：Ｙｅｓ）、Ｓ５０５の処理で、元ファイルＡの第３行目の「ハッシュ値」と、元ファイルＢの第３行目の「ハッシュ値」とが一致しているかを判断する（Ｓ５０５）。
【００６５】
しかし、図３（ａ１）に示す通り、比較テーブルＡの第３行目のハッシュ値は「１１１」であり、図３（ｂ１）に示す通り、比較テーブルＢの第３行目のハッシュ値は「１４６」であり、両者は不一致なので、（Ｓ５０５：Ｎｏ）、Ｓ５０９の処理に移行する。それ以降は、Ｓ５０９、Ｓ５１０、Ｓ５０４（Ｙｅｓ）、Ｓ５０５（Ｎｏ）の各処理を繰り返すが、図３（ｂ１）の比較テーブルＢに示すとおり、比較テーブルＡの第３行目のハッシュ値「１１１」と同じハッシュ値は、比較テーブルＢには存在しない。
【００６６】
よって、最終的には、Ｓ５１０の処理において、ｊＣｎｔの値が最終値Ｌより大きいと判断し（Ｓ５１０：Ｎｏ）、元ファイルＡの第３行目は変更があった行として、Ｓ５０６の処理を行うことなく、Ｓ５０７の処理に移行する。また、これ以降は、Ｓ５０８の処理において、ｉＣｎｔが最終値Ｋより大きくなるまで（Ｓ５０８：Ｎｏ）、即ち、元ファイルＡの最終行Ｋを処理するまで、上述した処理を繰り返した後、本処理を終了する。
【００６７】
上述した変更なし行番号特定処理により、元ファイルＡと元ファイルＢとで行単位で同じ情報を有する行番号（変更がなかった行番号）を、重複特定することなく、且つ、小さい行番号を優先的に特定することができる。また、図３（ａ１）、図３（ｂ１）に示す比較テーブルＡ，Ｂにおいて、変更がなかった行に対応付けられているステータスを、図３（ａ２）、図３（ｂ２）に示すように、「変更あり」から「変更なし」に設定することができる。
【００６８】
図６は、比較結果ファイル作成処理を示すフローチャートである。この処理は、図３（ａ２）、図３（ｂ２）に示す比較テーブルＡ，Ｂを参照しながら、図２（ｃ）、図２（ｄ）に示す出力画面を出力可能な比較結果ファイルＡ，Ｂを作成する処理である。
【００６９】
この処理では、まず、元ファイルＡを複写した複写ファイルＡと、元ファイルＢを複写した複写ファイルＢとを作成する（Ｓ６０１）。複写ファイルＡ，Ｂは、エクセル５ａから２つの新規ファイルを用意させ、その新規ファイルの一方に元ファイルＡ、他方に元ファイルＢを複写（コピー）して作成する（Ｓ６０２）。比較結果ファイルＡ，Ｂは、複写ファイルＡ,Ｂにおいて、行番号をずらすことなく作成する。これより、元ファイルＡと比較結果ファイルＡとの間、および、元ファイルＢと比較結果ファイルＢとの間で行番号がずれることはない。また、作成した複写ファイルＡ，Ｂには、第１列目を挿入する（Ｓ６０２）。挿入した第１列目には、図２（ｃ）、図２（ｄ）に示すように「編集」の文字、「削除」の文字、「挿入」の文字を設定する。これより変更があった行について、その変更の種別を一見して把握できる。
【００７０】
その後、図５のＳ５０１〜Ｓ５０３で説明したのと同様に、ｉＣｎｔの最終値Ｋ、ｊＣｎｔの最終値Ｌを設定し（Ｓ６０３）、ｉＣｎｔに「１」、ｊＣｎｔに「１」を設定する（Ｓ６０４）。次に、ｉＣｎｔが最終値Ｋ以下、且つ、ｊＣｎｔが最終値Ｌ以下かを判断し（Ｓ６０５）、該当しなければ（Ｓ６０５：Ｎｏ）、本処理を終了し、該当すれば（Ｓ６０５：Ｙｅｓ）、Ｓ６０６の処理に移行する。
【００７１】
即ち、元ファイルＡの第１行目から最終行Ｋまでの全行と、元ファイルＢの第１行目から最終行Ｌまでの全行とについて、Ｓ６０６〜Ｓ６１３の処理を行い、元ファイルＡの全行と、元ファイルＢの全行とについて、Ｓ６０６〜Ｓ６１３の処理を行った場合に（Ｓ６０５：Ｎｏ）、本処理を終了する。
【００７２】
Ｓ６０６の処理は、ｉＣｎｔが最終値Ｋ以下かを判断し（Ｓ６０６）、該当すればＳ６０９の処理に移行するが、該当しなければ（Ｓ６０６：Ｎｏ）、ｉＣｎｔを最終行Ｋに設定し（Ｓ６０７）、最終行Ｋに対応するステータスを「変更なし」に設定する（Ｓ６０８）。この処理により、ｉＣｎｔを最終行Ｋまで処理した後、残りのｊＣｎｔについて図７のフローチャートに示す組合わせ判断処理を実行できる。
【００７３】
Ｓ６０９の処理では、上述したの同様に、ｊＣｎｔが最終値Ｌ以下かを判断し（Ｓ６０９）、該当すればＳ６１２の処理に移行するが、該当しなければ（Ｓ６０９：Ｎｏ）、ｊＣｎｔを最終行Ｌに設定し（Ｓ６１０）、その最終行Ｌに対応するステータスを「変更なし」に設定する（Ｓ６１１）。
【００７４】
Ｓ６１２の処理では、ｉＣｎｔに対応するステータスを図３（ａ２）に示す比較テーブルＡ、ｊＣｎｔに対応するステータスを図３（ｂ２）に示す比較テーブルＢから抽出し（Ｓ６１２）、その抽出した２つのステータスについて、図７のフローチャートに示す組合わせ判断処理を実行する（Ｓ６１３）。
【００７５】
図７は、組合わせ判断処理を示すフローチャートである。この処理は、Ｓ６１２で抽出した２つのステータスの組合わせを特定し、その組合わせに応じて、ステータスとして「変更有」が設定されている行と、「削除」、「挿入」、「編集」の何れかとを、対応つけて、複写ファイルＡ，Ｂに設定する。
【００７６】
この処理では、まず、ｉＣｎｔに対応したステータスだけが「変更有」かを判断し（Ｓ７０１）、該当すれば（Ｓ７０１：Ｙｅｓ）、複写ファイルＡの第１列目のｊＣｎｔに対応するマス目に「削除」の文字を設定し（Ｓ７０２）、複写ファイルＡのｉＣｎｔの対応する行に着色を設定する（Ｓ７０３）。
【００７７】
元ファイルＡのステータスだけが「変更有」の場合、そのステータスに対応する元ファイルＡの行は、元ファイルＢから「削除」された行である。よって、複写ファイルＡにおいて、該当行に「削除」の文字を対応付けて設定し、複写ファイルＡにおいて該当行が「削除」された行であることを明確にする。Ｓ７０３の処理の後は、ｉＣｎｔに「１」を加算して（Ｓ７０４）、元ファイルＡについてだけ行番号を「１」繰り上げる。
【００７８】
次に、Ｓ７０１の判断において、該当しなかった場合は（Ｓ７０１：Ｎｏ）、Ｓ７０５の処理において、ｊＣｎｔに対応したステータスだけが「変更有」かを判断し（Ｓ７０５）、該当すれば（Ｓ７０５：Ｙｅｓ）、複写ファイルＢの第１列目のｊＣｎｔに対応するマス目に「挿入」の文字を設定し（Ｓ７０６）、複写ファイルＢのｊＣｎｔに対応する行に着色を設定する（Ｓ７０７）。
【００７９】
元ファイルＢのステータスだけが「変更有」の場合、そのステータスに対応する元ファイルＢの行は、元ファイルＡには存在しない「挿入」された行である。よって、複写ファイルＢにおいて、該当行に「挿入」の文字に対応付けて設定し、複写ファイルＢにおいて該当行が「挿入」された行であることを明確にする。Ｓ７０７の処理の後は、ｊＣｎｔに「１」を加算し（Ｓ７０８）、元ファイルＢについてだけ行番号を「１」繰り上げる。
【００８０】
次に、Ｓ７０５の判断に該当しなかった場合は（Ｓ７０５：Ｎｏ）、Ｓ７０９の処理において、ｉＣｎｔに対応したステータスと、ｊＣｎｔに対応したステータスとの両方が「変更有」かを判断し（Ｓ７０９）、該当すれば（Ｓ７０９：Ｙｅｓ）、複写ファイルＡの第１列目のｉＣｎｔに対応したマス目と、複写ファイルＢの第１列目のｊＣｎｔに対応したマス目とに「編集」の文字をセットする（Ｓ７１０）。
【００８１】
両方のステータスが共に「変更有」の場合には、そのステータスに対応する両行は「編集」された行であるので、複写ファイルＡと、複写ファイルＢとにおいて、この両行に「編集」の文字を対応付け、この両行が「編集」された行であることを明確にする。
【００８２】
また、編集の場合には、該当行の全部が編集された全部編集の場合と、該当行の一部が編集された一部編集の場合とが想定されるので、複写ファイルＡのｉＣｎｔに対応する行と、複写ファイルＢのＪＣｎｔに対応する行とを、各マス目毎（各列毎）に比較し、各マス目のデータが不一致であれば、そのマス目に着色を設定する（Ｓ７１１）。この処理により、編集の場合には編集された列だけを着色でき、編集された箇所を一見して把握できる。また、Ｓ７１１の処理の後は、ｉＣｎｔに「１」を加算すると共に、ｊＣｎｔに「１」を加算し（Ｓ７１２）、元ファイルＡ，Ｂの両方について行番号を「１」繰り上げる。
【００８３】
最後に、Ｓ７０９の処理において、該当しないと判断した場合は（Ｓ７０９：Ｎｏ）、組合わせのパターン数から、ｉＣｎｔに対応したステータスと、ｊＣｎｔに対応したステータスとの両方が「変更なし」となるので、複写ファイルＡ,Ｂについては何ら設定せず、ｉＣｎｔに「１」を加算すると共に、ｊＣｎｔに「１」を加算し（Ｓ７１２）、元ファイルＡ，Ｂの両方について行番号を「１」繰り上げる。
【００８４】
上述したように、図６のフローチャートに示す比較結果ファイル作成処理では、図７のフローチャートに示す組合わせ判断処理を（Ｓ６１１）、元ファイルＡの第１行目から最終行Ｋまでの全行と、元ファイルＢの第１行目から最終行Ｌまでの全行との各々について行うことで、Ｓ６０１で作成した複写ファイルＡ，Ｂを、Ｓ７０２,Ｓ７０３，Ｓ７０６，Ｓ７０７，Ｓ７１０，Ｓ７１１で設定した内容を有する比較結果ファイルＡ,Ｂとして作成することができる。そして、複写ファイルＡ，Ｂは元ファイルＡ，Ｂを複写したものなので、比較結果ファイルＡと元ファイルＡとは、同じ行番号に同じ情報、比較結果ファイルＢと元ファイルＢとは、同じ行番号に同じ情報が設定されている上、変更（削除、挿入、編集）があった行には、「削除」の文字、「挿入」の文字、「編集」の文字が対応付けて設定されているので、変更（削除、挿入、編集）があった行の元ファイルにおける行番号を一見して把握することができる。
【００８５】
また、図６のフローチャートに示す比較結果ファイル作成処理では、元ファイルＡ，Ｂ（比較テーブルＡ,Ｂ）から、行番号が小さい順に、各行番号に設定されているステータスを抽出し、その抽出した元ファイルＡのステータスと、元ファイルＢのステータスとの組合わせに応じて、変更があった行の変更種別（削除、挿入、編集）を特定し、その特定した種別を、対応する複写ファイルに設定する。即ち、２つの複写ファイルについて、並行して変更種別（削除、挿入、編集）を設定していくので、２つの複写ファイルについて、効率的に、変更種別（削除、挿入、編集）を設定することができる。
【００８６】
次に、図３（ａ２）、図３（ｂ２）に示す比較テーブルＡ，Ｂを参照しながら、図７のフローチャートに示す組合わせ判断処理について説明する。
【００８７】
まず、図３（ａ２）、図３（ｂ２）に示す比較テーブルＡ，Ｂから第１行目に設定されているステータスを抽出する。両ステータスは、両方「変更なし」なので、複写ファイルＡ，Ｂについては何も設定せず、両方の行番号を「１」繰り上げる。
【００８８】
次に、比較テーブルＡ，Ｂから第２行目に設定されているステータスを抽出する。この場合も、両ステータスは、両方「変更なし」なので、複写ファイルＡ，Ｂについては何も設定せず、両方の行番号を「１」繰り上げる。
【００８９】
次に、比較テーブルＡ，Ｂから第３行目に設定されているステータスを抽出する。この場合、両ステータスは、両方「変更有」なので、元ファイルＡの第３行目と、元ファイルＢの第３行目とは「編集」された行である。そのため、複写ファイルＡの第３行目と、複写ファイルＢの第３行目とを、各列単位で比較する。本実施形態では、図２（ｃ）に示す通り、複写ファイルＡの３行目３列目は「き」、図２（ｄ）に示す通り、複写ファイルＢの３行目３列目は「ん」で異なる。よって、複写ファイルＡにおいて、第３行目第１列目に「編集」の文字と、第３行目第３列目に着色とを設定する。また、複写ファイルＢにおいて、第３行目第１列目に「編集」の文字と、第３行目第３列目に着色とを設定する。また、両方の各行番号を「１」繰り上げる。
【００９０】
次に、比較テーブルＡ，Ｂから第４行目に設定されているステータスを抽出する。この場合、元ファイルＢ（比較テーブルＢ）の第４行目に設定されているステータスだけが「変更有」なので、元ファイルＢの第４行目は「挿入」された行である。そのため、複写ファイルＢにおいて、第４行目第１列目に「挿入」の文字と、着色とを設定する。また、元ファイルＢについてだけ行番号を「１」繰り上げる。
【００９１】
次は、比較テーブルＡの第４行目、比較テーブルＢの第５行目に設定されているステータスを抽出する。この場合、両ステータスは、両方「変更なし」なので、複写ファイルＡ，Ｂについては何も設定せず、両方の各行番号を「１」繰り上げる。
【００９２】
次は、比較テーブルＡの第５行目、比較テーブルＢの第６行目に設定されているステータスを抽出する。この場合、両ステータスは、両方「変更有」なので、元ファイルＡの第５行目と、元ファイルＢの第６行目とは、「編集」された行である。そのため、複写ファイルＡの第５行目と、複写ファイルＢの第６行目とを、各列単位で比較する。本実施形態では、図２（ｃ）に示す通り、複写ファイルＡの第５行目第２列目は「え」、図２（ｄ）に示す通り、複写ファイルＢの第６行目第２列目は「や」で異なる。また、図２（ｃ）に示す通り、複写ファイルＡの第５行目第３列目は「け」、図２（ｄ）に示す通り、複写ファイルＢの第６行目第３列目は「ゆ」で異なる。そのため、複写ファイルＡにおいて、第５行目第１列目に「編集」の文字、第５行目の第２列目と第３列目とに着色を設定する。また、複写ファイルＢにおいて、第６行目第１列目に「編集」の文字、第６行目の第２列目と第３列目とに着色を設定する。また、両方の各行番号を「１」繰り上げる。
【００９３】
次は、比較テーブルＡの第６行目、比較テーブルＢの第７行目に設定されているステータスを抽出する。この場合、元ファイルＡの第６行目に設定されているステータスだけが「変更有」なので、元ファイルＡの第６行目は「挿入」された行である。よって、複写ファイルＢにおいて、第６行目第１列目に「削除」の文字と、着色とを設定する。また、元ファイルＡについてだけ行番号を「１」繰り上げる。
【００９４】
次は、比較テーブルＡの第７行目、比較テーブルＢの第７行目に設定されているステータスを抽出する。この場合、両ステータスは、両方「変更なし」なので、複写ファイルＡ，Ｂについては何も設定せず、両方の各行番号を「１」繰り上げる。
【００９５】
ここで、元ファイルＡの行番号が「８」となり、元ファイルＡの最終行「７」を超えるので、元ファイルＡの行番号を最終行「７」に設定し、比較テーブルＡにおいて第７行目に対応したステータスを「変更なし」に設定する。そして、その比較テーブルＡの第７行目、比較テーブルＢの第８行目に設定されているステータスを抽出する。この場合、元ファイルＢの第８行目に設定されているステータスだけが「変更有」なので、元ファイルＢの第８行目は「挿入」された行である。よって、複写ファイルＢにおいて、第８行目第１列目に「挿入」の文字と、着色とを設定する。また、元ファイルＢについてだけ行番号を「１」繰り上げる。
【００９６】
こうして、元ファイルＡの全行「７」と、元ファイルＢの全行「８」とについて、上述した図７のフローチャートに示す組合わせ判断処理を終了すると、図６のＳ６０１で作成した複写ファイルＡ，Ｂを、図２（ｃ）、図２（ｄ）に示すように出力される比較結果ファイルＡ,Ｂとして作成することができる。
【００９７】
ここで、比較結果ファイルＡと元ファイルＡとは、同じ行番号に同じ情報が設定されているので、図２（ｃ）に示す比較結果ファイルＡを見れば、元ファイルＡの第３行目，第５行目、第６行目を変更したこと。また、第３行目の変更，第５行目の変更は「編集」、第６行目の変更は「削除」であること。さらに、「編集」は第３行目の一部、第５行目の全部でしたことを一見して把握できる。
【００９８】
また、同様に、比較結果ファイルＢと元ファイルＢとは、同じ行番号に同じ情報が設定されているので、図２（ｄ）に示す比較結果ファイルＢを見れば、元ファイルＢの第３行目，第４行目、第６行目、第８行目を変更したこと。また、第３行目の変更，第６行目の変更は「編集」、第４行目の変更、第８行目の変更は「挿入」したこと。さらに、「編集」は第３行目の一部、第６行目の全部でしたことを一見して把握できる。
【００９９】
以上、実施の形態に基づき本発明を説明したが、本発明は上記実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【０１００】
上述した実施形態では、比較結果ファイルＡと元ファイルＡとで、同じ行番号に同じ情報、比較結果ファイルＢと元ファイルＢとで、同じ行番号に同じ情報を設定する場合について説明したが、比較結果ファイルＡと元ファイルＡとで、同じ列番号に同じ情報、比較結果ファイルＢと元ファイルＢとで、同じ列番号に同じ情報を設定するように構成しても良い。この場合であっても、本実施形態と同様な効果を奏することができる。
【０１０１】
また、上述した実施形態では、図７のフローチャートにおいて、ｉＣｎｔに対応するステータスだけ「変更有」の場合に「削除」（Ｓ７０２）、ｊＣｎｔに対応するステータスだけ「変更有」の場合に「挿入」（Ｓ７０３）とする場合について説明したが、この関係を逆に構成しても良い。
【０１０２】
また、図４のフローチャートのＳ４０１において、２つの元ファイルＡ，Ｂを特定する場合に、図２（ａ）に示す元ファイルＡを変更前のファイル、図２（ｂ）に示す元ファイルＢを変更後のファイルとして、ユーザに指定させた上で、本実施形態のように、その２つの元ファイルＡ，Ｂを特定し、比較するように構成しても良い。かかる場合には、変更前のファイルである元ファイルＡに対応した比較結果ファイルＡに「削除」、変更後のファイルである元ファイルＢに対応した比較結果ファイルＢに「挿入」が設定されるので、比較結果を把握し易くすることができる。
【０１０３】
また、上述した実施形態では、変更があった行について、その変更種別として「削除」、「挿入」、「編集」を特定する場合について説明したが、この変更種別を特定することなく、変更の有／無だけを特定し、その変更の有／無だけを複写ファイルに設定するように構成しても良い。この場合、変更の種別は特定できないものの、変更があった行の元ファイルにおける行番号は特定でき、変更の種別を特定する場合よりも、比較結果ファイルを高速に作成することができる。
【０１０４】
また、上述した図５の変更なし行番号特定処理では、変更がなかった行番号を元ファイルＡおよび元ファイルＢについて特定する場合について説明したが、変更があった行番号を元ファイルＡおよび元ファイルＢについて特定するように構成しても良い。かかる場合であっても、変更なし行番号特定処理と同様な効果を奏することができる。
【符号の説明】
【０１０５】
５ｂ                比較プログラム
Ｓ４０１            比較ファイル特定ステップ
Ｓ４０２、Ｓ４０３  抽出ステップ
Ｓ４０４            変更なし行番号特定ステップ
Ｓ４０５            設定ステップ
Ｓ６０１            複写ステップ
Ｓ６１２            第１抽出ステップ、第２抽出ステップ
Ｓ７０１、Ｓ７０５、Ｓ７０９  判断ステップ
Ｓ７１２            第１カウントステップ、第１指示ステップ
Ｓ７０４、Ｓ７０８  第２カウントステップ、第２指示ステップ
Ｓ７１０            編集情報設定ステップ
Ｓ７０２            削除情報設定ステップ
Ｓ７０６            挿入情報設定ステップ
【図１】
2011118703.tif 000003
【図２】
2011118703.tif 000004
【図３】
2011118703.tif 000005
【図４】
2011118703.tif 000006
【図５】
2011118703.tif 000007
【図６】
2011118703.tif 000008
【図７】
2011118703.tif 000009
【図８】
2011118703.tif 000010