以下に、配列や変数などを作成すると記述しているが配列や変数などが作成される場所は、コンピューター本体の内部にある本体メモリーに作成される事とし、1byteの型で全ての変数や配列を作成する事とし、以下に、配列の最初の位置から代入する度に1byte分づつ代入する位置をずらして、データーを配列に代入していく場合は、配列の最初の位置に代入する場合であっても、配列の末尾に代入すると記述している場合があるとし、以下の分岐処理に於いて分岐条件に該当しない場合どうするかを記述していない場合があるが、分岐条件に該当しない場合どうするかを記述していない場合は、何も処理を行わないという事とし、コンピューターで普通に使われているテキスト文字日本国では、ASCIIコード2文字で1文字を表す全角文字とASCIIコード1文字で表す半角文字のことをテキスト文字と呼んだり、テキスト文字の事を文字コードと呼んだりする事があるとし、1byteづつデーターを配列に代入していく場合に於いて、配列に代入するデーターの順番について断り書きが無い場合は、取得した元のデーター作成したデーターや取得したデーターや読み込んだデーターや元の配列に代入されていたデーターなどの順番通りに1byteづつ配列に代入する事とし、以下に、配列の型とは、配列に代入する事ができる1個のデーターが使用するコンピューターに在る本体メモリーで使用するbit数または、byte数を意味するものであり、変数にも同じく型があるが、変数の型も配列の型と全く同じであるとし、配列のサイズとは、配列に代入する事が出来るデーターの数の事を言う事とし、以下に、配列のインデックスとは、配列に代入されるデーターの位置を示す番号の事を言うという事とし、配列のデーターを代入できる領域の最初の位置に付けられるインデックスは、0番となり、順次1づつ番号が増えた数値が配列のデーターを代入できる各々の配列の位置に付されるものとし、以下に、アイウエオと横一行に書かれたテキストファイルの事を圧縮対象テストファイルと呼ぶ事とし、以下のプログラムによる処理で圧縮対象テストファイルを使用して圧縮ファイルを作成するが、作成した圧縮ファイルを圧縮する前の元の状態に戻す為の処理を行う時に必要となる規則であり、この作成する圧縮ファイルに記録するデーターの内容と記録する順番を予め決めておく規則の事を圧縮記録規則と仮称し、圧縮ファイルの最初のデーターは、基準数を数値として1byte分で記録する事とし、圧縮ファイルの二番目のデーターは、基準として残した文字列を代入する事をとし、圧縮ファイルの三番目のデーターは、何と言う文字コードを圧縮したかを1byte分で記録する事とし、最後のデーターは、圧縮した文字コードが何文字連なっていたかという記録の文字数を1byte分の数値として記録するという事を規則とする事を圧縮記録規則とし、圧縮対象テストファイルをバイナリー形式で読み込んだデーターを全て代入できるサイズで配列を作成し、作成した配列を仮称A配列と仮称し、A配列に圧縮対象テストファイルから読み込んだデーターをA配列の最初の位置から代入する度に1byteづつ代入する位置をずらして、圧縮対象テストファイルから読み込んだデーターを1byteづつ代入し、A配列の配列サイズを2で割ったサイズで配列を2個作成し、第一配列と第二配列と仮称し、A配列の最初から最後まで繰り返し処理を行うが、この繰り返し処理をセパレート繰り返し処理と仮称し、セパレート繰り返し処理では、A配列のデーターが代入されている位置を示すインデックスを2で割った余りがある場合とA配列のデーターが代入されている位置を示すインデックスを2で割った余りがない場合とに分岐し、この分岐を分岐1と仮称し、この分岐1のA配列のデーターが代入されている位置を示すインデックスを2で割った余りがない場合は、A配列に代入されたデーターが代入されている位置を示すインデックスを使用してA配列に代入されたデーターを取得して、取得したデーターを第一配列の末尾に代入し、この分岐1のA配列のデーターが代入されている位置を示すインデックスを2で割った余りがある場合は、A配列に代入されたデーターが代入されている位置を示すインデックスを使用してA配列に代入されたデーターを取得して、取得したデーターを第二配列の末尾に代入し、これで分岐1を終了し、A配列に代入されたデーターを全て処理し終わったら、セパレート繰り返し処理を終了し、1byteの型で配列のサイズを2とした配列を作成し、この配列をランレングス圧縮配列と仮称し、ここからランレングス圧縮配列にデーターを代入する処理工程を行う事とし、ランレングス圧縮配列のデーターを代入する事ができる領域の最初の位置に代入するデーターは、何と言う文字コードを圧縮したかという文字コードを代入する事とし、ランレングス圧縮配列のデーターを代入する事ができる領域の最後の位置に代入するデーターは、ランレングス圧縮配列のデーターを代入する事ができる領域の最初の位置に代入された文字コードが何文字連なっていたかという記録をする為の文字数を代入する事とし、第一配列の最初の位置に代入されたデーターを取得してランレングス圧縮配列の最初の位置に代入し、1byteの型で変数を作成して、この変数をカウント変数と仮称し、カウント変数に初期値として0を代入し、第一配列に代入された全てのデーターに対して以下の繰り返し処理を行うが、この繰り返し処理を文字コードランレングス処理と仮称し、文字コードランレングス処理は、ランレングス圧縮配列の最初の位置に代入されたデーターと第一配列の最初の位置から最終までの位置に代入された全てのデーターを比較検査する事とし、比較検査している第一配列に代入されたデーターの位置を注目位置と仮称し、文字コードランレングス処理では、ランレングス圧縮配列の最初の位置に代入されたデーターと第一配列の注目位置にあるデーターが同じデーターであったら、カウント変数に代入された数値に1を加えた数値を算出してカウント変数に上書き処理をして、第一配列の注目位置を一つ進める事で第一配列に代入された次の位置のデーターと比較検査を行う事とし、ランレングス圧縮配列の最初の位置に代入されたデーターと第一配列の注目位置にあるデーターが違うデーターであったら、何も行わないで、第一配列の注目位置を一つ進める事で第一配列に代入された次の位置のデーターと比較検査を行う事とし、注目位置を第一配列の最初の位置から最終までの位置にずらす事で第一配列に代入された全てのデーターに対してランレングス圧縮配列の最初の位置に代入されたデーターと比較検査する処理を行う事とし、第一配列に代入された全てのデーターとランレングス圧縮配列の最初の位置に代入されたデーターを比較検査し終わったら、文字コードランレングス処理を終了し、ランレングス圧縮配列の末尾にカウント変数に代入された数値を代入し、ここまででランレングス圧縮配列にデーターを代入する処理工程を終了し、第二配列の配列のサイズとランレングス圧縮配列の配列のサイズとを加算した数値に1を加えた数値を配列のサイズとして配列を作成し、この配列を圧縮配列と仮称し、作成した圧縮配列にデーターを代入する処理を行う事とし、1byteの型で変数を作成し、この変数をヘッダー変数と仮称し、このヘッダー変数に第二配列の配列のサイズを代入し、圧縮配列の最初の位置にヘッダー変数のデーターを代入し、圧縮配列の末尾に、第二配列に代入された最初の位置から最後の位置までの全てのデーターを代入する度に1byte分づつ代入する位置をずらして1byteづつ代入し、圧縮配列の末尾に、ランレングス圧縮配列の最初から最後までの全てのデーターを代入する度に1byte分づつ代入する位置をずらして1byteづつ代入し、ここまでで、圧縮配列にデーターを代入する処理を終了し、圧縮配列の最初から最後までの全てのデーターをバイナリー形式で1byteづつファイルの末尾に付け加えて記録保存する事で圧縮ファイルを作成するという処理をコンピューターに実行させるプログラムを記録したコンピューターが読み取る事が可能な記録媒体以下に、配列や変数などを作成すると記述しているが配列や変数などが作成される場所は、コンピューター本体の内部にある本体メモリーに作成される事とし、1byteの型で全ての変数や配列を作成する事とし、以下に、配列の最初の位置から代入する度に1byte分づつ代入する位置をずらして、データーを配列に代入していく場合は、配列の最初の位置に代入する場合であっても、配列の末尾に代入すると記述している場合があるとし、以下の分岐処理に於いて分岐条件に該当しない場合どうするかを記述していない場合があるが、分岐条件に該当しない場合どうするかを記述していない場合は、何も処理を行わないという事とし、コンピューターで普通に使われているテキスト文字日本国では、ASCIIコード2文字で1文字を表す全角文字とASCIIコード1文字で表す半角文字のことをテキスト文字と呼んだり、テキスト文字の事を文字コードと呼んだりする事があるとし、1byteづつデーターを配列に代入していく場合に於いて、配列に代入するデーターの順番について断り書きが無い場合は、取得した元のデーター作成したデーターや取得したデーターや読み込んだデーターや元の配列に代入されていたデーターなどの順番通りに1byteづつ配列に代入する事とし、以下に、配列の型とは、配列に代入する事ができる1個のデーターが使用するコンピューターに在る本体メモリーで使用するbit数または、byte数を意味するものであり、変数にも同じく型があるが、変数の型も配列の型と全く同じであるとし、配列のサイズとは、配列に代入する事が出来るデーターの数の事を言う事とし、以下に、配列のインデックスとは、配列に代入されるデーターの位置を示す番号の事を言うという事とし、配列のデーターを代入できる領域の最初の位置に付けられるインデックスは、0番となり、順次1づつ番号が増えた数値が配列のデーターを代入できる各々の配列の位置に付されるものとし、以下に、アイウエオと横一行に書かれたテキストファイルの事を圧縮対象テストファイルと呼ぶ事とし、請求項1で作成した圧縮ファイルを圧縮する前の元の状態に戻す処理を行う事でファイルを作成するが、作成するファイルを復元ファイルと仮称し、請求項1の圧縮記録規則を使用して復元ファイルを作成する事とし、請求項1で作成した圧縮ファイルのサイズを取得し、取得した圧縮ファイルのサイズで配列を作成し、作成した配列をAd配列と仮称し、請求項1で作成した圧縮ファイルをバイナリー形式で1byteづつ全て読み込んで、Ad配列の最初の位置から代入する度に1byte分づつ代入する位置をずらして、圧縮ファイルからバイナリー形式で1byteづつ読み込んだデーターを1byteづつAd配列に代入し、Ad配列の最初の位置に代入されているデーターを取得して、取得したデーターを基準データー数と仮称し、基準データー数を配列のサイズとして配列を作成し、この配列を第二配列と仮称し、ここから第二配列にデーターを代入する処理を行う事とし、第二配列の最初の位置から最後の位置まで代入する度に1byteづつ代入する位置をずらして、Ad配列の二番目以降に代入されているデーターを1byteづつ第二配列に代入し、第二配列の最後の位置まで代入し終わったら第二配列にデーターを代入する処理を終了し、Ad配列の最後の位置に代入されている数値を取得して、その取得した数値を配列のサイズとした配列を作成し、この作成した配列を第一配列と仮称し、ここから第一配列にデーターを代入する処理を行う事とし、Ad配列の最後の位置よりも1byte手前の位置に代入されている数値を取得して、その取得した数値を第一配列の最初の位置から最後の位置までの全ての位置に数値を代入し、ここまでで第一配列にデーターを代入する処理を終了し、第一配列の配列のサイズと第二配列の配列のサイズを取得して、取得した両方の数値を加算した数値を配列のサイズとした配列を作成し、作成した配列を復号結果配列と仮称し、1byteの型で変数を二個作成して、この作成した二個の変数を各々回数変数1、回数変数2と仮称し、回数変数1に初期値として0という数値を代入し、回数変数2に初期値として0という数値を代入し、1byteの型で変数を作成し、作成した変数を奇遇数と仮称し、復号結果配列に全てのデーターを代入する為に以下の繰り返し処理を行うが、この繰り返し処理を復号結果繰り返し処理と仮称し、復号結果繰り返し処理では、復号結果配列の最初の位置を示すインデックスから最後の位置を示すインデックスまでの全てのインデックスを一つづつ取得して、取得したインデックスを遇奇数に上書き処理で代入し、遇奇数に数値が代入される事によって遇奇数に代入された数値が変わる度に以下の処理を行う事とし、遇奇数に代入された数値を2で割った数値が0の場合と0ではない場合とに分岐処理し、この分岐を分岐2と仮称し、この分岐2で、遇奇数に代入された数値を2で割った数値が0の場合は、回数変数1に代入された数値を取得して、取得した数値を第一配列のインデックスとして使用して第一配列に代入されているデーターを取得して、遇奇数に代入された数値を復号結果配列のインデックスとして使用して復号結果配列のインデックスの位置に代入し、次いで、回数変数1に代入された数値に1を加算し、次のインデックスの数値を取得して遇奇数に上書き処理で代入し、この分岐2で、遇奇数に代入された数値を2で割った数値が0ではない場合は、回数変数2に代入された数値を取得して、取得した数値を第二配列のインデックスとして使用して第二配列に代入されているデーターを取得して、遇奇数に代入された数値を復号結果配列のインデックスとして使用して復号結果配列のインデックスの位置に代入し、次いで、回数変数2に代入された数値に1を加算し、次のインデックスの数値を取得して遇奇数に上書き処理で代入し、ここまでで分岐2を終了し、この処理を復号結果配列に付けられた全てのインデックスに対して処理を行い終えたら、復号結果繰り返し処理を終了する。この処理を全ての復号結果配列のインデックスに対して処理を行い終えたら、復号結果繰り返し処理を終了し、復号結果配列に代入されたの最初から最後までの全てのデーターをバイナリー形式で1byteづつファイルの末尾に付け加えて記録保存する事で復元ファイルを作成するという処理をコンピューターに実行させるプログラムを記録したコンピューターが読み取る事が可能な記録媒体可逆圧縮技術及び非可逆圧縮技術ともに、圧縮率を向上させる事を目的とする。非可逆圧縮技術の場合は、非可逆圧縮技術の利用量を軽減させる事で、高鮮明な画像と高音性の音を提供する事を目的とする。本発明は、2分割処理圧縮プログラムを記録した記録媒体という題名であるが、2分割処理圧縮プログラムを記録したコンピューターが読み取る事ができる記録媒体の事である。また、コンピューターで普通に使われているテキスト文字日本国では、ASCIIコード2文字で1文字を表す全角文字とASCIIコード1文字で表す半角文字のことを、テキスト文字と略して記述する事とする。また、テキスト文字の事を文字コードという事がある。また、コンピューターで普通に使われている機械語を機械語と略して記述する事とする。コンピューターで普通に使われている機械語とは、コンピューターに搭載されているCPUと呼ばれる中央演算処理装置が処理を予定している命令文の事を言う。また、機械語と呼ばれる数値には、BCD数値と呼ばれる4bitの数値があるが、この4bitのBCD数値を元に拡張されて作られたEBCDICと一般的に呼ばれる文字コードがある。このEBCDICと一般的に呼ばれる文字コードの事をこの文献でもEBCDICと呼ぶ。また、配列とは、データーを1個から複数のデーターを代入する事が出来るものを言い、配列のサイズとは、配列に代入する事が出来るデーターの数の事を言う。配列のサイズの事を配列サイズと言ったりする事がある。配列に代入したデーターの事を配列要素または、配列の要素と呼び、配列要素または、配列の要素の合計数を配列要素数または、配列の要素数と呼ぶ事とする。また、配列のサイズの事を配列サイズと呼ぶ事がある。配列の型とは、配列に代入する事ができる1個のデーターが使用するコンピューターに在る本体メモリーで使用するbit数または、byte数を意味するものである。この型は、配列を作成する場合に指定するものであり、作成する配列のデーターを代入する事ができる領域の全てに適用されるものである。前述の領域の全てに適用されるものであるという意味は、型の違うデーターを配列のデーターを代入する事ができる領域に混在させることが出来ないという事である。変数にも配列と同じく型が存在し、変数の型の意味は、配列の型の場合と全く同じである。また、配列のインデックスとは、配列の添字または、配列番号などとも呼ばれる事があるものである。以降、配列のインデックスを配列の添字または、配列番号と呼ぶ事がある。配列を作成する時点で配列のインデックスを何番から作成するという具合に配列のインデックスを指定せずに配列を作成すると通常、配列のデーターを代入できる領域の最初の位置に付けられるインデックスは0番となり順次1づつ番号が増えた数値が配列のデーターを代入できる各々の配列の位置にコンパイラによって自動的に付けられるものである。つまり、言い換えると配列のインデックスとは、配列に代入されるデーターの位置を示す番号の事を言うという事になる。これによって、プログラマーは、配列のインデックスを指定する事で簡便に配列に代入されたデーターの位置を指定する事ができる様にしているものである。インデックスを取得する場合、数値として取得される。本発明では、1byteの型で全ての変数や配列を作成する事とする。そして、1byteの型で作成された変数や配列にインデックスを代入する事とした。また、配列のデーターを代入する事ができる領域の最初の位置という表現を配列の最初の位置という様に略した表現を行う場合がある。また、配列のデーターを代入する事ができる領域の最後の位置とい表現を配列の最後の位置という様に略した表現を行う場合がある。バイナリー形式でファイルを読み込むという場合は、1byteづつASCIIコードとして配列に読み込む事を言い、テキスト形式でファイルを読み込むという場合は、テキスト文字一文字分づつ読み込む場合を言う。テキスト形式でファイルを読み込むという場合、半角文字は、1byteとなるが、通常、処理速度の関係上から半角文字の場合であっても、2byteづつ読み込むものである。従って、テキスト形式でファイルを読み込む場合は、2byteづつ読み込む事になる。以下に、配列の最初の位置から代入する度に代入する位置を一つづつずらして、一つづつデーターを配列に代入するという具合に一つづつという表現で説明している場合があるが、正確には、上記の様に、バイナリー形式でファイルを読み込んでいる場合は、1byteづつとし、テキスト形式でファイルを読み込んでいる場合は、2byteづつとする。また、ファイルを作成する時も形式指定がある。すなわち、バイナリー形式でファイルに記録して保存する場合とテキスト形式でファイルに記録して保存する場合である。バイナリー形式でファイルに記録して保存する場合に使う表現のデーター一つづつは、1byteづつとなる。テキスト形式でファイルに記録して保存する場合に使う表現のデーター一つづつは、2byteづつとなる。但し、配列や変数に4bitづつデーターを代入している場合もある。この配列や変数に4bitづつデーターを代入している場合は、データーの一つづつ分とは、4bitづつとなる。日本語のかたかなでアイウエオという文字列が書かれたファイルを想定してみた場合、このファイルの場合は、普通の圧縮工程では、一切圧縮ができないファイルであるとなってしまう。ランレングス圧縮とは、アアアアアと同じ文字が続いている場合アが5文字と表現する事で短く表現する。この短く表現するというのが圧縮方法なのである。また、辞書圧縮というものがある。既に出現した文字列が二回目に出現した場合に何文字前の何文字と同じとする事で短く表現する方法である。つまり、公園で遊ぼうよという言葉が二回出現するファイルの場合、二回目に出現した時に、例えば10文字前の7文字と同じとするのである。記録内容としては、10と7という数値2byteで表現できるというものである。従って、アイウエオという文字列が記録されたファイルに対しては辞書圧縮も出来ない事になる。全く同じ文字列が無いからである。スライド辞書圧縮とは、辞書圧縮の新型であり、基本的には、辞書圧縮と同じである。この様に従来からの圧縮技術では全く圧縮出来ない文字列があるのである。しかし、以下の様に文字を文字コードの特性を利用して2分割すると圧縮する事が可能になる。日本語をコンピューター上で、テキストにすると、文字コードでファイルに記述されるようになっている。日本語のかたかなでアイウエオという文字列を文字コードにすると、以下の様になる。1316513167131691317113173必ず、131という文字コードが互い違いに記述されるのである。従って、131をまとめてしまえば、単純計算で50の圧縮率が得られるという事になるのである。和文の文章の場合は、殆どの場合がこの様な文字コードの組み合わせになりので、その為、かなりの高圧縮率を期待できるのである。そこで、圧縮前の処理として1文字目だけのデーターを代入した配列と2文字目だけのデーターを代入した配列を作成して、その配列に代入されたデーターが1文字目だけにまとめられた方の配列に対してランレングス圧縮を行う事でファイルを圧縮するプログラムを提供する事で圧縮率の向上を図ったプログラムを提供する事とした。本発明のASCIIコードを使用した圧縮を行う圧縮工程をテキストレベルの圧縮と呼ぶ事がある。また、本発明の技術で圧縮したファイルを復号する復号工程をテスキトレベルの復号と呼ぶ事がある。ファイルをバイナリー形式で読み込んだデーター全てを代入できるサイズで配列を作成して、この配列をA配列と呼ぶ事とする。ファイルをバイナリー形式で1byteづつ読み込んで作成したA配列の最初の位置から代入する度に1byte分づつ代入する位置をずらして、1byteづつデーターをA配列に代入する。二つの配列を作成して、各々の配列を第一配列と第二配列と呼ぶ事とする。第一配列に1文字目A配列の偶数のインデックスに代入されたデーターだけのデーターを第一配列の最初の位置から代入する度に1byteづつ代入する位置をずらして、第一配列に代入し、第二配列に2文字目A配列の奇数のインデックスに代入されたデーターだけのデーターを第二配列の最初の位置から代入する度に1byteづつ代入する位置をずらして、第二配列に代入する事で同じ数値を並べた配列が第一配列と第二配列のどちらかに作成する事ができる事になる。ASCIIコードを使用していない他のコンピューターでも本発明の2分割処理圧縮プログラムを記録した記録媒体と同じ事が出来ると考えられる。第一の方法として、一定のbit数で1文字の数値を表し、2文字の数値で1文字の文字を表す方式のコードを使用している場合、どちらか一方の1文字の数値を基準に分類する事ができる様な文字コードの場合は、全く同じように1文字目配列の偶数のインデックスに代入されたデーターと2文字目配列の奇数のインデックスに代入されたデーターとで二つに分割する事ができると考えられる。第二の方法として、ASCIIコードを使用していない他のコンピューターでも、分割する為の分割用特殊文字コードを作成する事で本発明のソフトウェアと同じ事を行う事ができると考えている。この場合は、分割する為の分割用特殊文字コードをASCIIコードと同じ様なものにし、ASCIIコードを使用していない他のコンピューターの文字コードを分割する為の分割用特殊文字コードに変換する事で実現する事が可能になるはずである。ASCIIコードを使用していない他のコンピューターで本発明のテキストレベルの圧縮を行う、第一の方法と第二の方法の両方とも本発明の2分割処理圧縮プログラムを記録した記録媒体である事を明言する。また、第二の方法と同じ様な方法であるが、特殊な文字コードを作成する事などで暗号化を行うという方法を使う事によって、ASCIIコードを使用しているコンピューターとASCIIコードを使用していないコンピューターの両方で高効率な圧縮が可能になる方法が考えられると思われるが、この場合も本発明の2分割処理圧縮プログラムを記録した記録媒体であると明言する。特殊な文字コードを作成する事などで暗号化を行うという方法で高効率な圧縮を行うとは、どういうものかを説明する。これを説明するに当たって、2進数という数値を9bitで表現できる数値の全てを使用した文字コードを作成した場合で説明する事とする。作成した文字コードを二つ組み合わせる事で、左側部分の9bitと右側部分の9bitのそれぞれで、同じコードが連続して出現する確率を上昇させるという方法が考えられるのである。ASCIIコードでは、8bitで表現できる2進数の全てを使用している。従って、8bitの2進数の組み合わせで暗号化する為の文字コードを表現できないので、説明では、9bitの2進数を全て使った暗号化を使用した。しかし、圧縮ファイルを作るという意味では、多少、問題が残るかもしれない。なぜなら、ASCIIコードは、二文字分で16bitであるが、9bitを一文字として二文字分だと、18bitになる為、元の文字コードのbit数よりも増えてしまうからである。研究の余地が残っている課題であるが、それでも、偶数部分と奇数部分に同じ文字コードが連続する確率は、二倍に増えるのである。研究の余地が残っている課題を記述すると以下の様な内容である。16bitで表現できる2進数は、10進数で0から65535である。16bitで表現できる数値を一文字として二文字を使用して組み合わせで一文字を表現するという事は、日本語で書かれたテキストファイルを圧縮するという場合に限って言うならば、意味が無い。何故なら、65535文字も日本語では使用していないから、偶数部分か奇数部分の片一方にだけランレングス圧縮をする事が出するだけのものになってしまい圧縮率が最大でも50止まりになるからである。圧縮率が50だと、元々ASCIIコードは、一文字8bitで二文字使用して一文字を表した場合、16bitであるから、16bitで一文字として二文字を使用して一文字を表す文字コードだと、元々のASCIIコードで使用しているbit数にしかならないから、圧縮失敗となってしまうのである。だから、意味が無いのである。しかし、ランレングス圧縮を行わなかったもう片一方には、辞書圧縮などの方法で圧縮する事は可能である。但し、中国語などの様な文字数の多い言語の場合は、意味があるかもしれない。16bitで意味が無いのであるならば、15bitで表現できる2進数の場合は、どうであろうかと考えてしまう。15bitで表現できる2進数は、10進数で0から32767までの数値である。14bitで表現できる2進数は、10進数で0から16383までの数値である。13bitで表現できる2進数は、10進数で0から8191までの数値である。12bitで表現できる2進数は、10進数で0から4095までの数値である。11bitで表現できる2進数は、10進数で0から2047までの数値である。10bitで表現できる2進数は、10進数で0から1023までの数値である。これらの一文字を表すbit数を変化させた文字コードの内で、どの文字コードが最高の圧縮率を生み出すのかという問題と、頻繁に使われる文字の数に応じて文字コードを調整して使用するとか、圧縮対象のファイルに出現する文字種全ての数に対して最高の圧縮率が得られる様に文字コードを調整する方法等いろいろ考えられる。これらのいろいろな方法で最高の圧縮率を得られる暗号化を行う文字コード何bitの2進数の組み合わせなのかという問題である。これらの全ての方法で研究余地のある暗号化の為の文字コード表の作成であるが、これらの暗号化する為の文字コード表を使用した圧縮方法とその圧縮方法で作成した圧縮ファイルを復元する復号方法の両方の方法とも本発明の2分割処理圧縮プログラムを記録した記録媒体であると明言する。また、EBCDICに似た特殊な4bitの2進数を2個組み合わせる事でASCIIコードの8bitで出来た一文字分を表す数値がある。この特殊な4bitの2進数を使用しても同じ様な処理を行う事が可能であると考えられる。この特殊な4bitの2進数を使用して同じ様な処理を行っても本発明の2分割処理圧縮プログラムを記録した記録媒体である事を明言する。段落0011に前述のEBCDICに似た特殊な4bitの2進数を二つ組み合わせてASCIIコードを表す数値を表記する。この数値は、MicroSoft株式会社のVisualStadio2005Cというコンパイラを使用した場合、このVisualStadio2005Cというコンパイラには、BitArrayと呼ばれるプログラムが用意されていて、このBitArrayプログラムを使用すると1bitづつデーターを処理する事ができる様になっている。つまり、言い換えると、データーを1bitづつ処理する場合に使用するプログラムがBitArrayと呼ばれているプログラムなのである。このBitArrayというプログラムをASCIIコードで使う場合、まず、ASCIIコードを1byteづつ配列に代入しする。必ず1byteづつ配列に代入しておかなければBitArrayプログラムを使用する事ができない。配列に代入したASCIIコードの数値をBitArrayプログラムで処理して1bitづつ取得すると、trueとfalseという特殊な形式で取得される。VisualStadio2005Cの使用説明書によると、得られたtrueは、ONで、falseは、0FFとされている。取得されたtrueとfalseで表現されたデーターを4bit分づつ0と1という数値で表現した2進数の形式の変換させると、段落0011の特殊な4bitの数値が取得されるものである。取得された特殊な4bitの数値は、完全に逆順の2進数であるが、正順の2進数の組み合わせでも本発明の2分割処理圧縮プログラムを記録した記録媒体である事を明言する。また、段落0011の二つの特殊な4bitの数値は、スペースで区切っているが、スペースで区切った左側の4bitと右側の4bitを入れ替えたものを使用したものでも本発明の2分割処理圧縮プログラムを記録した記録媒体である事を明言する。00000000は、ASCIIコードの0である。10000000は、ASCIIコードの1である。01000000は、ASCIIコードの2である。11000000は、ASCIIコードの3である。00100000は、ASCIIコードの4である。10100000は、ASCIIコードの5である。01100000は、ASCIIコードの6である。11100000は、ASCIIコードの7である。00010000は、ASCIIコードの8である。10010000は、ASCIIコードの9である。01010000は、ASCIIコードの10である。11010000は、ASCIIコードの11である。00110000は、ASCIIコードの12である。10110000は、ASCIIコードの13である。01110000は、ASCIIコードの14である。11110000は、ASCIIコードの15である。00001000は、ASCIIコードの16である。10001000は、ASCIIコードの17である。01001000は、ASCIIコードの18である。11001000は、ASCIIコードの19である。00101000は、ASCIIコードの20である。10101000は、ASCIIコードの21である。01101000は、ASCIIコードの22である。11101000は、ASCIIコードの23である。00011000は、ASCIIコードの24である。10011000は、ASCIIコードの25である。01011000は、ASCIIコードの26である。11011000は、ASCIIコードの27である。00111000は、ASCIIコードの28である。10111000は、ASCIIコードの29である。01111000は、ASCIIコードの30である。11111000は、ASCIIコードの31である。00000100は、ASCIIコードの32である。10000100は、ASCIIコードの33である。01000100は、ASCIIコードの34である。11000100は、ASCIIコードの35である。00100100は、ASCIIコードの36である。10100100は、ASCIIコードの37である。01100100は、ASCIIコードの38である。11100100は、ASCIIコードの39である。00010100は、ASCIIコードの40である。10010100は、ASCIIコードの41である。01010100は、ASCIIコードの42である。11010100は、ASCIIコードの43である。00110100は、ASCIIコードの44である。10110100は、ASCIIコードの45である。01110100は、ASCIIコードの46である。11110100は、ASCIIコードの47である。00001100は、ASCIIコードの48である。10001100は、ASCIIコードの49である。01001100は、ASCIIコードの50である。11001100は、ASCIIコードの51である。00101100は、ASCIIコードの52である。10101100は、ASCIIコードの53である。01101100は、ASCIIコードの54である。11101100は、ASCIIコードの55である。00011100は、ASCIIコードの56である。10011100は、ASCIIコードの57である。01011100は、ASCIIコードの58である。11011100は、ASCIIコードの59である。00111100は、ASCIIコードの60である。10111100は、ASCIIコードの61である。01111100は、ASCIIコードの62である。11111100は、ASCIIコードの63である。00000010は、ASCIIコードの64である。10000010は、ASCIIコードの65である。01000010は、ASCIIコードの66である。11000010は、ASCIIコードの67である。00100010は、ASCIIコードの68である。10100010は、ASCIIコードの69である。01100010は、ASCIIコードの70である。11100010は、ASCIIコードの71である。00010010は、ASCIIコードの72である。10010010は、ASCIIコードの73である。01010010は、ASCIIコードの74である。11010010は、ASCIIコードの75である。00110010は、ASCIIコードの76である。10110010は、ASCIIコードの77である。01110010は、ASCIIコードの78である。11110010は、ASCIIコードの79である。00001010は、ASCIIコードの80である。10001010は、ASCIIコードの81である。01001010は、ASCIIコードの82である。11001010は、ASCIIコードの83である。00101010は、ASCIIコードの84である。10101010は、ASCIIコードの85である。01101010は、ASCIIコードの86である。11101010は、ASCIIコードの87である。00011010は、ASCIIコードの88である。10011010は、ASCIIコードの89である。01011010は、ASCIIコードの90である。11011010は、ASCIIコードの91である。00111010は、ASCIIコードの92である。10111010は、ASCIIコードの93である。01111010は、ASCIIコードの94である。11111010は、ASCIIコードの95である。00000110は、ASCIIコードの96である。10000110は、ASCIIコードの97である。01000110は、ASCIIコードの98である。11000110は、ASCIIコードの99である。00100110は、ASCIIコードの100である。10100110は、ASCIIコードの101である。01100110は、ASCIIコードの102である。11100110は、ASCIIコードの103である。00010110は、ASCIIコードの104である。10010110は、ASCIIコードの105である。01010110は、ASCIIコードの106である。11010110は、ASCIIコードの107である。00110110は、ASCIIコードの108である。10110110は、ASCIIコードの109である。01110110は、ASCIIコードの110である。11110110は、ASCIIコードの111である。00001110は、ASCIIコードの112である。10001110は、ASCIIコードの113である。01001110は、ASCIIコードの114である。11001110は、ASCIIコードの115である。00101110は、ASCIIコードの116である。10101110は、ASCIIコードの117である。01101110は、ASCIIコードの118である。11101110は、ASCIIコードの119である。00011110は、ASCIIコードの120である。10011110は、ASCIIコードの121である。01011110は、ASCIIコードの122である。11011110は、ASCIIコードの123である。00111110は、ASCIIコードの124である。10111110は、ASCIIコードの125である。01111110は、ASCIIコードの126である。11111110は、ASCIIコードの127である。00000001は、ASCIIコードの128である。10000001は、ASCIIコードの129である。01000001は、ASCIIコードの130である。11000001は、ASCIIコードの131である。00100001は、ASCIIコードの132である。10100001は、ASCIIコードの133である。01100001は、ASCIIコードの134である。11100001は、ASCIIコードの135である。00010001は、ASCIIコードの136である。10010001は、ASCIIコードの137である。01010001は、ASCIIコードの138である。11010001は、ASCIIコードの139である。00110001は、ASCIIコードの140である。10110001は、ASCIIコードの141である。01110001は、ASCIIコードの142である。11110001は、ASCIIコードの143である。00001001は、ASCIIコードの144である。10001001は、ASCIIコードの145である。01001001は、ASCIIコードの146である。11001001は、ASCIIコードの147である。00101001は、ASCIIコードの148である。10101001は、ASCIIコードの149である。01101001は、ASCIIコードの150である。11101001は、ASCIIコードの151である。00011001は、ASCIIコードの152である。10011001は、ASCIIコードの153である。01011001は、ASCIIコードの154である。11011001は、ASCIIコードの155である。00111001は、ASCIIコードの156である。10111001は、ASCIIコードの157である。01111001は、ASCIIコードの158である。11111001は、ASCIIコードの159である。00000101は、ASCIIコードの160である。10000101は、ASCIIコードの161である。01000101は、ASCIIコードの162である。11000101は、ASCIIコードの163である。00100101は、ASCIIコードの164である。10100101は、ASCIIコードの165である。01100101は、ASCIIコードの166である。11100101は、ASCIIコードの167である。00010101は、ASCIIコードの168である。10010101は、ASCIIコードの169である。01010101は、ASCIIコードの170である。11010101は、ASCIIコードの171である。00110101は、ASCIIコードの172である。10110101は、ASCIIコードの173である。01110101は、ASCIIコードの174である。11110101は、ASCIIコードの175である。00001101は、ASCIIコードの176である。10001101は、ASCIIコードの177である。01001101は、ASCIIコードの178である。11001101は、ASCIIコードの179である。00101101は、ASCIIコードの180である。10101101は、ASCIIコードの181である。01101101は、ASCIIコードの182である。11101101は、ASCIIコードの183である。00011101は、ASCIIコードの184である。10011101は、ASCIIコードの185である。01011101は、ASCIIコードの186である。11011101は、ASCIIコードの187である。00111101は、ASCIIコードの188である。10111101は、ASCIIコードの189である。01111101は、ASCIIコードの190である。11111101は、ASCIIコードの191である。00000011は、ASCIIコードの192である。10000011は、ASCIIコードの193である。01000011は、ASCIIコードの194である。11000011は、ASCIIコードの195である。00100011は、ASCIIコードの196である。10100011は、ASCIIコードの197である。01100011は、ASCIIコードの198である。11100011は、ASCIIコードの199である。00010011は、ASCIIコードの200である。10010011は、ASCIIコードの201である。01010011は、ASCIIコードの202である。11010011は、ASCIIコードの203である。00110011は、ASCIIコードの204である。10110011は、ASCIIコードの205である。01110011は、ASCIIコードの206である。11110011は、ASCIIコードの207である。00001011は、ASCIIコードの208である。10001011は、ASCIIコードの209である。01001011は、ASCIIコードの210である。11001011は、ASCIIコードの211である。00101011は、ASCIIコードの212である。10101011は、ASCIIコードの213である。01101011は、ASCIIコードの214である。11101011は、ASCIIコードの215である。00011011は、ASCIIコードの216である。10011011は、ASCIIコードの217である。01011011は、ASCIIコードの218である。11011011は、ASCIIコードの219である。00111011は、ASCIIコードの220である。10111011は、ASCIIコードの221である。01111011は、ASCIIコードの222である。11111011は、ASCIIコードの223である。00000111は、ASCIIコードの224である。10000111は、ASCIIコードの225である。01000111は、ASCIIコードの226である。11000111は、ASCIIコードの227である。00100111は、ASCIIコードの228である。10100111は、ASCIIコードの229である。01100111は、ASCIIコードの230である。11100111は、ASCIIコードの231である。00010111は、ASCIIコードの232である。10010111は、ASCIIコードの233である。01010111は、ASCIIコードの234である。11010111は、ASCIIコードの235である。00110111は、ASCIIコードの236である。10110111は、ASCIIコードの237である。01110111は、ASCIIコードの238である。11110111は、ASCIIコードの239である。00001111は、ASCIIコードの240である。10001111は、ASCIIコードの241である。01001111は、ASCIIコードの242である。11001111は、ASCIIコードの243である。00101111は、ASCIIコードの244である。10101111は、ASCIIコードの245である。01101111は、ASCIIコードの246である。11101111は、ASCIIコードの247である。00011111は、ASCIIコードの248である。10011111は、ASCIIコードの249である。01011111は、ASCIIコードの250である。11011111は、ASCIIコードの251である。00111111は、ASCIIコードの252である。10111111は、ASCIIコードの253である。01111111は、ASCIIコードの254である。11111111は、ASCIIコードの255である。本発明の2分割処理圧縮プログラムを記録した記録媒体は、二つの発明をひとつにまとめて出願したものである。第一の発明は、テキスト文字で書かれたファイルを圧縮する際、圧縮を行うファイルをバイナリー形式で1byteづつ読み込んで、読み込んだデーターを配列の最初の位置から代入する度に1byteづつ代入する位置をずらして、1byteづつ配列に代入する。圧縮を行うファイルのデーターを読み込ませた配列の位置を示すインデックスを奇数と偶数とで分割する。二つの配列を作成し、圧縮を行うファイルを読み込ませた配列の位置を示すインデックスが偶数の場合のデーターだけを集めた配列を作成し、これを第一配列と仮称する。圧縮を行うファイルを読み込ませた配列の位置を示すインデックスが奇数の場合のデーターだけを集めた配列を作成し、これを第二配列と仮称する。第一配列か第二配列のどちらか一方を基準として残して、残さなかった片方の配列にランレングス圧縮処理をして、ファイルを圧縮するプログラムである。実施例では、第一配列に代入されたデーターをランレングス圧縮した。第二の発明は、第一の発明の方法で圧縮したファイルを元に戻す復号工程処理を行うプログラムである。実施例は、テキストレベルの圧縮の圧縮工程は、アイウエオとテキスト文字で記録されたファイルをテストファイルとして使用している。このテストファイルの事を圧縮対象テストファイルと仮称する。図4の<圧縮対象テストファイルの内容を示した図>を参照。突然であるが、本発明は、この圧縮対象テストファイルというファイルだけを圧縮処理できる処理工程である。従って、圧縮工程でヘッダー部分にランレングス圧縮を行った部分を示す配列の位置を示すインデックスを取得して記録すべきだが記録していない、または、圧縮工程でヘッダー部分にランレングス圧縮を行っていない部分を示す配列の位置を示すインデックスを取得して記録すべきだが記録していない等の欠落した処理工程になっている。実施例の圧縮工程のプログラムによる処理で圧縮対象テストファイルを使用して圧縮ファイルを作成するが、作成する圧縮ファイルに記録するデーターの内容と記録する順番を予め規則として決めておく事が必要である。この予め決めておく規則は、圧縮対象テストファイルを基に本発明の2分割処理圧縮プログラムを記録した記録媒体で作成した圧縮ファイルを圧縮する前の元の状態に戻す為の処理を行う時に必要となる規則である。以下に、本発明の圧縮工程で作成する圧縮ファイルに記録するデーターの内容と記録する順番を記述し、実施例で代入される数値を記述して説明する。作成された圧縮ファイルに記録される内容と記録する順番を定めた圧縮記録規則は、以下の通りである。圧縮ファイルの最初のデーターは、基準数を数値として1byte分で記録する事とするが、実施例で代入される数値は、5である。圧縮ファイルの二番目のデーターは、基準として残した文字列を代入する事とするが、実施例で、代入される文字コードは、6567697173の5文字であるから、5byteとなる。圧縮ファイルの三番目のデーターは、何と言う文字コードを圧縮したかを1byte分で記録する事とするが、実施例では、文字コード131を代入する事になる。最後のデーターは、圧縮した文字コードが何文字連なっていたかという記録の文字数を1byte分で数値として記録するという事を規則とするが、実施例では、131が5個連なっていたので5という数値を代入する事になる。この作成する圧縮ファイルに記録するデーターの内容と記録する順番を予め決めておく規則の事を圧縮記録規則と仮称する。このような圧縮記録規則で圧縮ファイルを作成するので、圧縮対象テストファイルを使用して圧縮ファイルを作成した場合の作成した圧縮ファイルのサイズは、8byteとなる。圧縮対象テストファイルを使用して圧縮ファイルを作成した場合の作成した圧縮ファイルのサイズをもう少し説明する。基準データーとして残したデーター数の5に1を加算した数値に、ランレングス圧縮したデーターを記録した部分のデーターの数を加えた数が圧縮ファイルのサイズになる。ランレングス圧縮したデーターを記録した部分のデーターの数は、2となるので、この2を加えた数が圧縮ファイルのサイズとなる。ランレングス圧縮したデーターを記録した部分のデーターの数は2となるが、その配列に代入されたデーターの内訳は、何と言う文字コードを圧縮したかを記録する為の文字コードと同じ文字が何文字連なっていたかを記録する為の数値の二つである。本来のランレングス圧縮の場合は、元のファイルの何文字目から何と言う文字が何文字連なっていたという事を示す文字コードと数値を二つ圧縮ファイルに記録するが、圧縮対象テストファイルに限定して動作する発明なので元のファイルの何と言う文字が何文字連なっていたという記録だけを行うという規則にした。この記録は、圧縮ファイルの末尾に二つのデーターを順次記録するという規則にした。前述の圧縮記録規則を基に本発明の復号工程を行う事とする。本発明の2分割処理圧縮プログラムを記録した記録媒体の技術で圧縮対象テストファイルを使用して圧縮ファイルを作成し、作成した圧縮ファイルを圧縮前の圧縮対象テストファイルの状態に戻す工程を復号工程と呼ぶ。復号工程でも、圧縮工程でヘッダー部分にランレングス圧縮を行った部分を示す配列の位置を示すインデックスを取得して記録すべきだが記録していない、または、圧縮工程でヘッダー部分にランレングス圧縮を行っていない部分を示す配列の位置を示すインデックスを取得して記録すべきだが記録していない等の欠落した処理工程になっている為、ヘッダー部分に本来記録されているはずのランレングス圧縮を行った部分を明確にする配列の位置を示すインデックスを読み込む処理工程がなく、読み込んだ配列の位置を示すインデックスによって処理を変更する工程も無い、または、ヘッダー部分に本来記録されているはずのランレングス圧縮を行っていない部分を明確にする配列の位置を示すインデックスを読み込む処理工程がなく、読み込んだ配列の位置を示すインデックスによって処理を変更する工程も無い等の欠落した処理工程になっている。実施例で使用している圧縮対象テストファイルは全て全角文字で記録されたファイルである。半角文字が混じったファイルなど、その他の全てのファイルに対応した改良品も含めて、コンピューターで使用されている機械語でASCIIコードを表した場合の規則性を利用して圧縮対象配列を二つに分けた後、二つに分けた配列のどちらかの一方または、両方にランレングス圧縮や辞書圧縮するものや、この方法で圧縮したファイルを元に戻す復号工程の処理は、本発明の2分割処理圧縮プログラムを記録した記録媒体である事を明言する。ランレングス圧縮や辞書圧縮は、圧縮工程も復号工程もどちらも、既にある技術であるから段落0012には、本発明は、圧縮するプログラムであり、圧縮したファイルを元に戻す復号工程処理を行うプログラムとしているが、基本的には本発明の2分割処理圧縮プログラムを記録した記録媒体の特許に含まれるものではないというのは当然の事である。もしも、この圧縮工程にランレングス圧縮の工程を含まないものであるとした場合は、ランレングス圧縮が出来ない文字列や辞書圧縮が出来ないファイルやランレングス圧縮と辞書圧縮の両方ができないファイルや辞書圧縮やランレングス圧縮が可能なファイルを圧縮する前に圧縮を行うファイルを第一配列と第二配列の二つに分割処理する事で高圧縮率の圧縮を可能にするソフトウェアであると言える。また、本発明の技術を使用して作成した圧縮ファイルを圧縮する前の圧縮を行うファイルに戻す工程、または、圧縮する前の圧縮を行うファイルをバイナリー形式で全て読み込んだデーターを配列の最初の位置から代入する度に1byte分づつ代入する位置をずらして、1byteづつ配列に代入した状態の配列に戻す復号工程は、第一配列と第二配列の二つに分割処理された配列を圧縮する前の圧縮を行うファイルをバイナリー形式で全て読み込んだデーターを配列の最初の位置から代入する度に1byte分づつ代入する位置をずらして、1byteづつ配列に代入した配列の状態に戻す工程、または、圧縮前の圧縮を行うファイルに戻す工程を行うプログラムであるという事ができるものである。可逆圧縮に於いて、従来よりも、より高圧縮が可能になる。非可逆圧縮は、ビデオ画像やテレビ画像または、音声ファイルなどで広く使われている圧縮技術であるが、これらのビデオ画像やテレビ画像または、音声ファイルなどにおいても、可逆圧縮技術は、復号する場合に於いて重要な技術となっている。ビデオ画像やテレビ画像または、音声ファイルなどの圧縮技術に利用した場合は、従来よりも、より正確な復号ができるようになり、同じ圧縮率でも画像の鮮明さなどに大きな差を生む技術である。勿論、ビデオ画像やテレビ画像または、音声ファイルなどでの圧縮を行う際、圧縮率だけを高めようとした場合は、本発明のソフトウェアを利用する事で、従来よりも大きく圧縮率を高める事が出来る。本発明の2分割処理圧縮プログラムを記録した記録媒体は、全く圧縮出来なかった圧縮を行うファイルまたは、圧縮を行うファイルの中の一部分が圧縮出来なかった場合であっても圧縮する事ができるようになるので圧縮率を向上させるが可能になる。特に画像処理の場合は、従来、画素単位で圧縮を行うのが普通であるが、本発明の2分割処理圧縮プログラムを記録した記録媒体では、画素単位で処理を行う必要性が無くなり為、どのようなフォーマット形式で作られた画像ファイルあっても、画素という状態にする必要が無く、ファイルを先頭から最後までファイルとして処理する事が出来るようになる。その為、画素単位での圧縮工程や復号工程とよりも高速な処理を行えるようになる。画像処理で使用した場合に於いても、全く圧縮出来なかった圧縮を行うファイルまたは、圧縮を行うファイルの中の一部分が圧縮出来なかった場合であっても圧縮する事が出来るものとなるので圧縮率を向上させる事が可能になる。また、従来の技術で既に圧縮されたファイルに対して本発明の圧縮を行う事が可能であるという事から高圧縮率を得る事ができる。また、本発明の実施例で基準として残した、もう片一方の配列代入された数値が違うものが多い方の配列、第二配列の方に対しても、ランレングス圧縮や辞書圧縮やスライド辞書圧縮をする事が出来る。また、基準として残さずにランレングス圧縮した配列に対しても更に、辞書圧縮やスライド辞書圧縮を行う事ができる。更に、両方の配列に対して圧縮処理後に全体をランレングス圧縮やスライド辞書圧縮や辞書圧縮する事もできる。この様に圧縮技術を組み合わせて圧縮する事ができるので全体として大きく圧縮率を高める事が出来る技術である。これらの組み合わせで作成された圧縮ソフトウェアも本発明のレパートリーであると明言する。以下の図2、図3、図4、図5、図6は、実際とは、多少異なる。また、実施例の分岐処理に於いて分岐条件に該当しない場合どうするかを記述していない場合があるが、分岐条件に該当しない場合どうするかを記述していない場合は、何も処理を行わないという事である。実施に於いては、MicroSoft株式会社のVisualStadio2005Cというコンパイラを使用してプログラムを作成した。本発明の2分割処理圧縮プログラムを記録した記録媒体は、図3の<本発明に使用した機材の説明図>に示した様なハードウェア資源で動作するプログラムである。図3の<本発明に使用した機材の説明図>に示した様なハードウェア資源は、図符号Iのコンピューター本体と図符号Hのモニターと図符号Jのキーボードと図符号Kのマウスの合計4個のパーツで構成された機材であるが、これらの合計4個のパーツで構成された機材を一般的にコンピューターと呼んでいる。図符号Iのコンピューター本体は、DOSV機コンピューターと呼ばれるコンピューターである。図符号Iのコンピューター本体には、ハードディスクドライブなどの記録媒体やCPUや本体メモリーなどと呼ばれる装置が内蔵されており、本発明の2分割処理圧縮プログラムを記録した記録媒体は、図符号Iのコンピューター本体内部に在るハードディスクドライブなどの記録媒体にインストールされているものとする。図符号Iのコンピューター本体に接続された外部に在るハードディスクドライブなどの記録媒体に本発明のソフトウェアがインストールされていて、図符号Iのコンピューター本体から本発明のソフトウェアを起動する事が出来る場合は、図符号Iのコンピューター本体に接続された外部に在るハードディスクドライブなどの記録媒体に本発明のソフトウェアがインストールされているものとする。本発明のソフトウェアがインストールされている図符号Iのコンピューター本体内部に在るハードディスクドライブなどの記録媒体または、図符号Iのコンピューター本体に接続された外部に在るハードディスクドライブなどの記録媒体にインストールされている本発明のソフトウェアを起動すると本発明のソフトウェアは、図符号Iのコンピューター本体に内蔵された本体メモリーに適時に必要量読み込まれる。図符号Iのコンピューター本体に内蔵された本体メモリーに適時に必要量読み込まれた本発明のソフトウェアに書かれたCPUが処理を予定している命令文が必要な時に必要量CPUに読み込まれ、そのCPUに読み込まれた命令文がCPUによって実行される事によってコンピューターによって本発明の2分割処理圧縮プログラムを記録した記録媒体が動作する。従って、本発明の2分割処理圧縮プログラムを記録した記録媒体がハードウェア資源を利用してどのような工程で処理されるのかを簡単な表現で説明すると、本発明の2分割処理圧縮プログラムを記録した記録媒体に書かれた命令文は、コンピューター本体のCPUによって処理されると表現しなおす事ができるものである。図3の<本発明に使用した機材の説明図>に示した様なハードウェア資源で動作するソフトウェアであると段落0022にて説明したが、コンピューターの形状は、図3の<本発明に使用した機材の説明図>に示した様なハードウェア資源に限定できるものではなく、図符号Hのモニター、図符号Iのコンピューター本体、図符号Jのキーボード、図符号Kのマウスが一体化したものや、図符号Kのマウスが存在しない構成のものや、図符号Hのモニター、図符号Iのコンピューター本体の二つを一体化した構成のもの等いろいろある。今後ももっと、いろいろな形状のコンピューターが開発されていくであろうと考えられる。図3の<本発明に使用した機材の説明図>に示した様なハードウェア資源でなくても、類似と言い得る、いわゆるコンピューターを本発明の2分割処理圧縮プログラムを記録した記録媒体で動作させている場合も本発明の2分割処理圧縮プログラムを記録した記録媒体であると明言する。以下の段落に於いて、配列や変数などを作成すると記述しているが配列や変数などが作成される場所は、図符号Iのコンピューター本体の内部にある本体メモリーに作成される。但し、OSと呼ばれるソフトウェアによって仮想メモリー領域に作成される場合もある。仮想メモリー領域とは、図符号Iのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分を仮想的に本体メモリーとして使用する場合に使用する図符号Iのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分の事を言う。この図符号Iのコンピューター本体の内部にある本体メモリーまたは、図符号Iのコンピューター本体の内部にあるハードディスクドライブなどの記録媒体の一部分を仮想的に本体メモリーとして使用する場合に使用する図符号Iのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分の事をコンピューター内部のメモリー装置と呼ぶ事とする。従って、配列や変数などを作成すると記述している場合の配列や変数などが作成される場所を端的な表現をして説明するならば、コンピューター内部のメモリー装置内に作成されるという表現になる。以下の段落に於いて、配列の末尾にデーターを代入すると記述している場合がある。未だに配列に代入されたデーターが無い場合は、普通、配列の最初の位置にデーターを代入するものである。しかし、配列の最初の位置から代入する度に1byteづつ代入する位置をずらして、データーを1byteづつ代入していく場合、配列の最初の位置にデーターを代入した後は、配列に代入されたデーターの最後の位置にあるデーターの次の位置に代入するという事になる。この場合、配列の最初の位置に既にデーターを代入した後の位置の指定を末尾と表現する事が出来る。未だに配列に代入されたデーターが無い場合で、配列の最初の位置から代入する度に1byteづつ代入する位置をずらして1byteづつデーターを配列に代入していく場合で、配列の最初の位置にデーターを代入する場合でも、配列の末尾にデーターを代入すると表現する事が出来ると考えられる。そこで、配列の最初の位置から代入する度に1byteづつ代入する位置をずらして、1byteづつデーターを配列に代入していく場合は、配列の最初の位置に代入する場合であっても、配列の末尾に代入すると記述している場合がある。また、以下の段落で、配列の最初の位置から代入する度に1byteづつ代入する位置をずらして、1byteづつデーターを配列に代入していく場合に於いて、配列に代入するデーターの順番について断り書きが無い場合は、取得した元のデーター作成したデーターや取得したデーターや読み込んだデーターや元の配列に代入されていたデーターなどの順番通りに1byteづつ配列に代入するものとする。以下の段落に於いて、全て一次元配列を利用してプログラムを作成しているが、多次元配列を利用する事や、ファイルを利用する事でも同じ処理が出来ると考えられる。また、一次元配列と多次元配列とファイルの組み合わせによっても、同じ処理が出来ると考えられる。これらはプログラムの書き方の違いであって、全て本発明の単純なレパートリーでしかないという事を明言する。また、以下の段落で、本発明の2分割処理圧縮プログラムを記録した記録媒体とコンピューターによる自動処理の場合は、いちいち、本発明の2分割処理圧縮プログラムを記録した記録媒体とコンピューターによる自動処理である事を記述しない。記述していない場合は、本発明の2分割処理圧縮プログラムを記録した記録媒体とコンピューターによる自動処理である。しかし、図1の<本発明の2分割処理圧縮プログラムを記録した記録媒体のフローチャート図>には、図符号Lの人為的な手動による操作または、入力と、図符号Mの本発明の2分割処理圧縮プログラムを記録した記録媒体とコンピューターによる自動処理の二つに分けて示す事とした。以下の2分割処理圧縮プログラムを記録した記録媒体とコンピューターによる自動処理の部分の処理工程を記述したCPUに対する命令文の事をプログラムと呼ぶ事とする。また、配列のサイズの調整なども当該事業者にとって常識的な技術であると考えられる事であるから何も書いていない場合がある。また、配列の型の変換処理なども当該事業者にとって常識的な技術であると考えられる事であるから何も書いていない場合がある。また、変数の型についても当該事業者にとって常識的な技術であると考えられる事であるから何も書いていない場合がある。図1の<本発明の2分割処理圧縮プログラムを記録した記録媒体のフローチャート図>を参照の事。図符号Lの人為的な手動による操作または、入力と図符号Mの本発明の2分割処理圧縮プログラムを記録した記録媒体とコンピューターによる自動処理には、ステップ番号を付したので、このステップ番号順に説明する。まず、本発明の2分割処理圧縮プログラムを記録した記録媒体を起動すると、図2の<本発明の2分割処理圧縮プログラムを記録した記録媒体の操作画面図>の様な操作画面が図符号Hのモニターに表示される。圧縮を行うファイルを本発明の2分割処理圧縮プログラムを記録した記録媒体を使用して圧縮する場合を説明する。これを圧縮工程と仮称する。この圧縮工程で必要とする技術は、一般的に知られたランレングス圧縮を行う方法圧縮方法で圧縮されたファイルを作成する技術または、配列を圧縮する技術を使用する事でも可能である。この一般的に知られたランレングス圧縮する技術で作成されたファイルまたは、圧縮された配列を作成する技術は、当該事業者に於いては、常識的技術である。テキスト文字で書かれたファイルを圧縮する処理工程を説明する。アイウエオと横一行に書かれたテキストファイルを用意した。この用意したテキストファイルを圧縮対象テストファイルと呼ぶ。図4の<圧縮対象テストファイルの内容を示した図>を参照の事。ステップ101に進む。ステップ101は、人為的処理である。図符号Gの参照ボタンを図符号Kのマウスなどの入力デバイスを使用してクリックする。これによって、記録媒体の中を閲覧できるので、記録媒体から圧縮を行うファイルを選択する。選択すると圧縮を行うファイルのフルパスが図符号Aの2分割処理圧縮するファイルの指定テキストボックスに入力される。また、図符号Jのキーボードなどの入力デバイスを使って図符号Aの2分割処理圧縮するファイルの指定テキストボックスに、直接入力出来るようになっている。ここで圧縮対象テストファイルを選択して図符号Aの2分割処理圧縮するファイルの指定テキストボックスに指定する。図符号Kのマウスなどの入力デバイスを使用して、図符号Fの実行ボタンをクリックする。そうすると、本発明の2分割処理圧縮プログラムを記録した記録媒体の圧縮工程がスタートする。図1の<本発明の2分割処理圧縮プログラムを記録した記録媒体のフローチャート図>のステップ103には、分割処理と書いているが、本発明の2分割処理圧縮プログラムを記録した記録媒体に於ける2分割処理工程の事である。尚、図1の<本発明の2分割処理圧縮プログラムを記録した記録媒体のフローチャート図>のステップ107には、分割して処理するという記述があるが、これは、本発明の2分割処理圧縮プログラムを記録した記録媒体に於ける2分割処理工程の事ではない。ステップ102に進む。図符号Aの2分割処理圧縮するファイルの指定テキストボックスに入力されたフルパスのファイル名を基に、圧縮を行うファイルとして、圧縮対象テストファイルをハードディスクドライブなどの記録媒体から探し出してバイナリー形式でファイルを1byteづつ読み込む。圧縮対象テストファイルをバイナリー形式で読み込んだデーターを全て代入できるサイズで配列を作成する。この配列を仮称A配列と仮称する。A配列に圧縮対象テストファイルから読み込んだデーターをA配列の最初の位置から代入する度に1byteづつ代入する位置をずらして、圧縮対象テストファイルから読み込んだデーターを1byteづつ代入する。ステップ103に進む。A配列の配列サイズは、圧縮対象テストファイルに書かれているアイウエオという文字列で全角の5文字であるから、ASCIIコードで10byteとなる。A配列の配列サイズを2で割ったサイズで配列を2個作成し、第一配列と第二配列と仮称する。A配列の最初から最後まで繰り返し処理を行う。この繰り返し処理を仮称、セパレート繰り返し処理とする。セパレート繰り返し処理では、A配列のデーターが代入されている位置を示すインデックスを2で割った余りがある場合とA配列のデーターが代入されている位置を示すインデックスを2で割った余りがない場合とに分岐する。この分岐を分岐1と仮称する。この分岐1のA配列のデーターが代入されている位置を示すインデックスを2で割った余りがない場合は、偶数であるという事になる。この分岐1のA配列のデーターが代入されている位置を示すインデックスを2で割った余りがない場合は、A配列に代入されたデーターが代入されている位置を示すインデックスを使用してA配列に代入されたデーターを取得して、取得したデーターを第一配列の末尾に代入する。この分岐1のA配列のデーターが代入されている位置を示すインデックスを2で割った余りがある場合は、奇数であるという事になる。この分岐1のA配列のデーターが代入されている位置を示すインデックスを2で割った余りがある場合は、A配列に代入されたデーターが代入されている位置を示すインデックスを使用してA配列に代入されたデーターを取得して、取得したデーターを第二配列の末尾に代入する。これで分岐1を終了する。A配列に代入された全てのデーターに対して処理し終わったら、セパレート繰り返し処理を終了する。ステップ104に進む。第一配列に代入された最初の位置のデーターから順次1byteづつ、図符号Aの第一配列の内容を表示するリストボックスに全て表示する。第二配列に代入された最初の位置のデーターから順次1byteづつ、図符号Bの第二配列の内容を表示するリストボックスに全て表示する。次に、第一配列に代入された全てのデーターにランレングス圧縮を行う。ランレングス圧縮を行う方法圧縮方法とランレングス圧縮を行う方法で圧縮されたファイルまたは、配列を圧縮していない元のファイルまたは、配列の状態に戻す方法復元方法は、当該事業者に於いては、常識的技術である。1個のデーターを1byteとして、2個のデーターを代入できるサイズで配列を作成する。つまり、言い換えると1byteの型で配列のサイズを2とした配列を作成するという事である。この配列をランレングス圧縮配列と仮称する。ここからランレングス圧縮配列にデーターを代入する処理工程を行う。ランレングス圧縮配列のデーターを代入する事ができる領域の最初の位置に代入するデーターは、何と言う文字コードを圧縮したかという文字コードを代入する。ランレングス圧縮配列のデーターを代入する事ができる領域の最後の位置に代入するデーターは、ランレングス圧縮配列のデーターを代入する事ができる領域の最初の位置に代入された文字コードが何文字連なっていたかという記録をする為の文字数を代入する。第一配列の最初の位置に代入されたデーターを取得してランレングス圧縮配列の最初の位置に代入する。1byteの型で変数を作成して、この変数をカウント変数と仮称する。カウント変数に初期値として0を代入する。第一配列に代入された全てのデーターに対して以下の繰り返し処理を行う。この繰り返し処理を文字コードランレングス処理と仮称する。文字コードランレングス処理は、ランレングス圧縮配列の最初の位置に代入されたデーターと第一配列の最初の位置から最終までの位置に代入された全てのデーターを比較検査する。比較検査している第一配列に代入されたデーターの位置を注目位置と仮称する。文字コードランレングス処理では、ランレングス圧縮配列の最初の位置に代入されたデーターと第一配列の注目位置にあるデーターが同じデーターであったら、カウント変数に代入された数値に1を加えた数値を算出してカウント変数に上書き処理をして、第一配列の注目位置を一つ進める事で第一配列に代入された次の位置のデーターと比較検査を行う事とする。ランレングス圧縮配列の最初の位置に代入されたデーターと第一配列の注目位置にあるデーターが違うデーターであったら、何も行わないで、第一配列の注目位置を一つ進める事で第一配列に代入された次の位置のデーターと比較検査を行う事とする。注目位置を第一配列の最初の位置から最終までの位置にずらす事で第一配列に代入された全てのデーターに対してランレングス圧縮配列の最初の位置に代入されたデーターと比較検査する処理を行う。第一配列に代入された全てのデーターとランレングス圧縮配列の最初の位置に代入されたデーターを比較検査し終わったら、文字コードランレングス処理を終了する。文字コードランレングス処理の工程では、ランレングス圧縮配列の最初の位置に代入されたデーターだけを第一配列に代入された全てのデーターと比較検査しているが、これは、本発明の2分割処理圧縮プログラムを記録した記録媒体が、段落0030に記述している圧縮対象テストファイルに限定して動作させている為に、検査データー配列の最初の位置に代入されたデーターを第一配列に代入された全てのデーターと比較検査するという簡略的な処理で済ませているものである。この様な理由でランレングス圧縮配列の最初の位置にだけデーターを代入した時点で、文字コードランレングス処理を行うという簡略的な処理工程にしたものである。この時点では、ランレングス圧縮配列には、最初の位置に代入された1個のデーター以外にはデーターが代入されていないから、他のデーターの検査を行おうとしても行えない状態であるから、この説明書きそのものが意味不明なものである可能性があるが、一応、記述しておく。ランレングス圧縮配列の末尾にカウント変数に代入された数値を代入する。ここまででランレングス圧縮配列にデーターを代入する処理工程を終了する。第二配列の配列のサイズとランレングス圧縮配列の配列のサイズとを加算した数値に1を加えた数値を配列のサイズとして配列を作成する。この配列を圧縮配列と仮称する。作成した圧縮配列にデーターを代入する処理を行う。復号工程で必要とするデーターを代入する為のデーターをヘッダーデーターと呼び、1byteの型で変数を作成し、この変数をヘッダー変数と仮称する。このヘッダー変数に、第二配列の配列のサイズを代入する。つまり、第二配列の配列のサイズがヘッダーデーターとなる。第二配列の配列サイズは、アイウエオと横一列に書かれたテキスト形式で書かれた圧縮対象テストファイルの圧縮処理を行わないで基準として残した文字列の部分のサイズであるから、圧縮対象テストファイルのサイズの半分となるので、5という数値を代入する事になる。圧縮配列の最初の位置にヘッダー変数のデーターを代入する。圧縮配列の末尾に、第二配列に代入された最初の位置から最後の位置までの全てのデーターを代入する度に1byte分づつ代入する位置をずらして1byteづつ代入する。圧縮配列の末尾に、ランレングス圧縮配列の最初から最後までの全てのデーターを、代入する度に1byte分づつ代入する位置をずらして1byteづつ代入する。ここまでで、圧縮配列にデーターを代入する処理を終了する。圧縮配列の最初から最後までの全てのデーターをバイナリー形式で1byteづつファイルの末尾に付け加えて記録保存する事で圧縮ファイルを作成する。圧縮工程を終了する。ここまでの圧縮工程の処理をコンピューターに実行させるプログラムを記録したコンピューターが読み取る事が可能な記録媒体が第一の発明である。第一配列に代入された全てのデーターを対象に既に一般的に知られている技術のランレングス圧縮を行った場合は、段落0031から段落0036までと同じ処理を行う。その後、ランレングス圧縮配列を作成する。既に一般的に知られている技術のランレングス圧縮を行った場合に作成されるデーターをランレングス圧縮配列の配列のデーターを代入できる領域の最初から最後までの位置に代入する度に1byte分づつ代入する位置をずらして1byteづつ代入する。ランレングス圧縮配列の配列のサイズと第二配列の配列のサイズを加算した数値に1を加えた数値を配列のサイズとして配列を作成する。この配列を圧縮配列と仮称する。作成した圧縮配列にデーターを代入する処理を行う。復号工程で必要とするデーターを代入する為のデーターをヘッダーデーターと呼び、1byteの型で変数を作成し、この変数をヘッダー変数と仮称する。このヘッダー変数に、第二配列の配列のサイズを代入する。つまり、第二配列の配列のサイズがヘッダーデーターとなる。第二配列の配列サイズは、アイウエオと横一列に書かれたテキスト形式で書かれた圧縮対象テストファイルの圧縮処理を行わないで基準として残した文字列の部分のサイズであるから、圧縮対象テストファイルのサイズの半分となるので、5という数値を代入する事になる。圧縮配列の最初の位置にヘッダー変数のデーターを代入する。圧縮配列の末尾に、第二配列に代入された最初の位置から最後の位置までの全てのデーターを代入する度に1byte分づつ代入する位置をずらして1byteづつ代入する。圧縮配列の末尾に、ランレングス圧縮配列の最初から最後までの全てのデーターを、代入する度に1byte分づつ位置をずらして1byteづつ代入する。ここまでで、圧縮配列にデーターを代入する処理を終了する。圧縮配列の最初から最後までの全てのデーターをバイナリー形式で1byteづつファイルの末尾に付け加えて記録保存する事で圧縮ファイルを作成する。この様な処理工程が圧縮工程となる。図5の<圧縮対象テストファイルを圧縮工程の処理により圧縮ファイルを作成した状態を示した操作画面図>は、この圧縮工程の処理を終了した状態の図である。次に、本発明の2分割処理圧縮プログラムを記録した記録媒体を使用して作成した圧縮ファイルを圧縮する前の状態のファイルに戻す場合の説明をする。また、本発明の2分割処理圧縮プログラムを記録した記録媒体を使用して作成した圧縮ファイルを圧縮する前の状態のファイルに戻すという処理で作成するファイルの事を復元ファイルと仮称する。圧縮工程で作成した圧縮ファイルを圧縮する前の元の状態に戻す処理を行う事でファイルを作成するが、作成するファイルを復元ファイルと仮称し、段落0014に記述した圧縮工程で圧縮ファイルを作成する際に使用する圧縮記録規則を使用して復元ファイルを作成する事とする。この本発明の2分割処理圧縮プログラムを記録した記録媒体の圧縮工程で作成した圧縮ファイルを圧縮する前の状態のファイルに戻す工程を復号工程と仮称する。この復号工程で必要とする技術は、一般的に知られたランレングス圧縮を行う方法圧縮方法で圧縮されたファイルまたは、配列を圧縮していない元のファイルの状態に戻す方法または、圧縮していない元の配列の状態に戻す方法復元方法を使用する事でも可能である。このランレングス圧縮されたファイルまたは、配列を圧縮されていない元のファイルや配列の状態に戻す方法は、当該事業者に於いては、常識的技術である。この復号工程は、圧縮工程を実行後に行うものとする。なぜならば、圧縮ファイルが存在しない限り復号工程を行う事が出来ないからである。ステップ105に進む。ステップ105は、人為的処理である。図符号Gの参照ボタンを図符号Kのマウスなどの入力デバイスを使用してクリックする。これによって、ハードディスクなどの記録媒体の中を閲覧する事が可能になるので、ハードディスクなどの記録媒体から本発明の2分割処理圧縮プログラムを記録した記録媒体の技術で、圧縮対象テストファイルを基に圧縮する事で作成された圧縮ファイルを選択する。選択すると圧縮ファイルのフルパスが図符号Aの2分割処理圧縮するファイルの指定テキストボックスに入力される。また、図符号Jのキーボードなどの入力デバイスを使って図符号Aの2分割処理圧縮するファイルの指定テキストボックスに、直接入力出来るようになっている。ここで、圧縮工程で作成した圧縮ファイルを選択して図符号Aの2分割処理圧縮するファイルの指定テキストボックスに指定する。図符号Kのマウスなどの入力デバイスを使用して、図符号Eの復号ボタンをクリックする。ステップ106に進む。図符号Aの2分割処理圧縮するファイルの指定テキストボックスに入力されたファイルのサイズを取得するが、このファイルのサイズを取得する方法は、ファイルが何byteあるかを検査する事で取得できる。普通、使用しているコンパイラと呼ばれるプログラムを作成する為に使用するソフトウェアにファイルのサイズを取得するプログラムが用意されているので、用意されたプログラムを使用してファイルサイズを取得するものである。自作でプログラムを作成するという方法でファイルサイズを取得する方法も可能である。自作の場合、ファイルを1byteづつ読み込みながら、カウントし、最後までファイルを読み込み終わった後でカウント終了後の数値を取得すれば、何byteあったかを取得できるのである。また、ファイルの最初から最後まで全て読み込んで、読み込んだbit数を取得し、取得したbit数を8で割ると何byteであったかを取得できる。これらの方法は、既に一般的に知られている方法であり、当該事業者に於いては常識である。図符号Aの2分割処理圧縮するファイルの指定テキストボックスに入力されたファイルは、圧縮工程で作成された圧縮ファイルであるが、このファイルのサイズを取得して、取得したファイルのサイズで配列を作成し、この配列をAd配列と仮称する。図符号Aの2分割処理圧縮するファイルの指定テキストボックスに入力された圧縮工程で作成された圧縮ファイルをハードディスクドライブなどの記録媒体から探し出して、バイナリー形式で1byteづつ全て読み込んで、Ad配列の最初の位置から代入する度に1byte分づつ代入する位置をずらして、圧縮ファイルからバイナリー形式で1byteづつ読み込んだデーターを1byteづつAd配列に代入する。ステップ107に進む。Ad配列の最初の位置に代入されているデーターを取得して、取得したデーターを基準データー数と仮称し、基準データー数を配列のサイズとして配列を作成する。この配列を第二配列と仮称する。ここから第二配列にデーターを代入する処理を行う。第二配列の最初の位置から最後の位置まで代入する度に1byteづつ代入する位置をずらして、Ad配列の二番目以降に代入されているデーターを1byteづつ第二配列に代入する。第二配列の最後の位置まで代入し終わったら第二配列にデーターを代入する処理を終了する。Ad配列の最後の位置に代入されている数値を取得して、その取得した数値を配列のサイズとした配列を作成する。この作成した配列を第一配列と仮称する。ここから第一配列にデーターを代入する処理を行う。Ad配列の最後の位置よりも1byte手前の位置に代入されている数値を取得して、その取得した数値を第一配列の最初の位置から最後の位置までの全ての位置に数値を代入する。ここまでで第一配列にデーターを代入する処理を終了する。Ad配列の最後の位置よりも1byte手前の位置に代入されている数値は、何と言う文字コードを圧縮したのかを示す文字コードを代入してあるのであるから、取得した数値を何と言う文字が何文字連なっていたかを記録してあるAd配列の最後の位置に代入されている数値分だけ、第一配列の最初から最後までの位置に1byteづつ同じ文字コードを代入すれば、元の第一配列の状態に戻す事ができる事になるので、この様な処理工程になる。ステップ108に進む。第一配列の配列のサイズと第二配列の配列のサイズを取得して、取得した両方の数値を加算した数値を配列のサイズとした配列を作成する。作成した配列を復号結果配列と仮称する。1byteの型で変数を二個作成して、この作成した二個の変数を各々回数変数1、回数変数2と仮称する。回数変数1に初期値として0という数値を代入する。回数変数2に初期値として0という数値を代入する。1byteの型で変数を作成する。作成した変数を奇遇数と仮称する。復号結果配列に全てのデーターを代入する為に以下の繰り返し処理を行う。この繰り返し処理を復号結果繰り返し処理と仮称する。復号結果繰り返し処理では、復号結果配列の最初の位置を示すインデックスから最後の位置を示すインデックスまでの全てのインデックスを一つづつ順番に取得して、取得したインデックスを遇奇数に上書き処理で代入する。遇奇数に数値が代入される事によって遇奇数に代入された数値が変わる度に以下の処理を行う。遇奇数に代入された数値を2で割った数値が0の場合と0ではない場合とに分岐処理する。この分岐を分岐2と仮称する。この分岐2で、遇奇数に代入された数値を2で割った数値が0の場合は、回数変数1に代入された数値を取得して、取得した数値を第一配列のインデックスとして使用して第一配列に代入されているデーターを取得して、遇奇数に代入された数値を復号結果配列のインデックスとして使用して復号結果配列のインデックスの位置に代入する。次いで、回数変数1に代入された数値に1を加算する。次のインデックスの数値を取得して遇奇数に上書き処理で代入する。この分岐2で、遇奇数に代入された数値を2で割った数値が0ではない場合は、回数変数2に代入された数値を取得して、取得した数値を第二配列のインデックスとして使用して第二配列に代入されているデーターを取得して、遇奇数に代入された数値を復号結果配列のインデックスとして使用して復号結果配列のインデックスの位置に代入する。次いで、回数変数2に代入された数値に1を加算する。次のインデックスの数値を取得して遇奇数に上書き処理で代入する。ここまでで、分岐2を終了する。この処理を復号結果配列に付けられた全てのインデックスに対して処理を行い終えたら、復号結果繰り返し処理を終了する。前述の圧縮工程で既に知られているランレングス圧縮の技術を使用して圧縮ファイルを作成した場合は、この復号工程は、以下の様になる。ランレングス圧縮した部分をAd配列に代入された全てのデーターの中から、Ad配列に記録されたランレングス圧縮部分がAd配列のどの位置からどの位置までに記録されているかを指し示すデーターを取得して、取得したデーターを元にランレングス圧縮した部分をAd配列に代入された全てのデーターの中から、抽出して、抽出したデーターを第一配列の最初の位置から最後の位置までに代入する度に1byte分づつ代入する位置をずらして代入する。Ad配列に記録されたランレングス圧縮部分を除いた部分のデーターをAd配列に記録されたデーターから抽出して、第二配列の最初の位置から最後の位置までに、代入する度に1byte分づつ代入する位置をずらして代入する。第一配列と第二配列にデーターを代入した後は、段落0049の処理を行い、段落0051から段落0052の処理を行って処理を終了するという復号工程となる。復号結果配列に代入された全てのデーターを1byteづつ取得して、図符号Dの復号結果を表示するリストボックスに全て表示させる。復号結果配列に代入されたの最初から最後までの全てのデーターをバイナリー形式で1byteづつファイルの末尾に付け加えて記録保存する事で復元ファイルを作成する。復号工程を終了する。ここまでの処理工程の処理をコンピューターに実行させるプログラムを記録したコンピューターが読み取る事が可能な記録媒体が第二の発明である。図6の<圧縮対象テストファイルから作成した圧縮ファイルを復号工程の処理を行った状態を示した操作画面図>がこの復号工程を終了した状態の図である。段落0049の配列に付けられたインデックスの取得方法は、当該事業者に於いては常識的技術である。説明する必要性が無いと思われるが少し説明しておく事とする。コンパイラと呼ばれるプログラムを作成する為に用いるプログラムを使用している場合、自動的にこのコンパイラと呼ばれるプログラムによって配列の最初から最後の位置までに0番から順次1づつ数値が増えて行く連番が付けられるものである。この事は、段落0006で説明済みである。配列のサイズが10の配列の場合、インデックスは、0から9までの数値がコンパイラと呼ばれるプログラムによって自動的に付けられるという事である。従って、0から9までの数値が配列のインデックスとなるのである。段落0049の配列の最初から最後までのインデックスを一つづつ取得すると記述しているが、そのインデックスを取得する方法は、0番から配列の最後の位置までの連番を作成して、その連番の中から1個づつ順番に数値を取得する事で実現するものである。配列のサイズが10の場合で説明すると、0から9までの10個の数値を作成して、1個づつ取得するという意味である。配列の位置を指定する時に配列のインデックスを指定する事はできるが、その反対に代入されたデーターからインデックスを取得する事は出来ない。代入されたデーターの位置を0から1づつカウントして数値を得る事でインデックスと同じ数値を取得するというのが普通のインデックスの取得方法である。