【実施例1】
【0098】
この段落〔0098〕から段落〔0102〕までは、〔実施例1〕と、〔実施例2〕と、〔実施例3〕の3種類の実施例で共通である。
図2から、
図34は、実際とは、多少異なる事を明記する。
また、テキストボックスやリストボックスなどの画面に表示する処理工程は、常識的処理なので処理工程を説明していない。また、数値型の配列や変数に代入された数値をString型の変数や配列に代入する場合、数値を型変換処理しなければならない。しかし、常識的な処理なので型変換処理は、記述していない。また、変数や配列に既にデーターが代入されている状態の変数や配列にデーターを代入する場合は、何も断り書きをしていない場合は、全て、上書きで代入すると言う処理を行っている。変数や配列に既にデーターが代入されている状態の変数や配列にデーターを代入する場合は、初期化と言う処理をしない限り、上書きになるのが常識であるから上書きか否かを記述していない。また、配列や変数に代入できるデーター量をbyteやbitで記述しているが、大きなbyte数や小さなbyte数または、大きなbit数や小さなbit数に変更しても本発明の単純なレパートリーである事を明言する。
【0099】
本発明の明細書には、変数を作成すると記述しているが変数が作成される場所は、図符号Bのコンピューター本体の内部にある本体メモリーに作成される。但し、OSと呼ばれるソフトウェアによって仮想メモリー領域に作成される場合もある。仮想メモリー領域とは、図符号Bのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分を仮想的に本体メモリーとして使用する場合に使用する図符号Bのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分の事を言う。この図符号Bのコンピューター本体の内部にある本体メモリーまたは、図符号Bのコンピューター本体の内部にあるハードディスクドライブなどの記録媒体の一部分を仮想的に本体メモリーとして使用する場合に使用する図符号Bのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分の事をコンピューター内部のメモリー装置と呼ぶ事とする。従って、変数を作成すると記述している場合の変数が作成される場所を端的な表現をして説明するならば、コンピューター内部のメモリー装置内に作成されると言う表現になる。
【0100】
本発明の明細書では、全て変数や一次元配列を使用してプログラムを作成しているが、多次元配列を使用したり、ジャグ配列やその他の種類の配列を使用したり、ファイルを使用したりする事でも同じ処理が出来ると考えられる。また、変数と、一次元配列と、多次元配列と、ジャグ配列と、その他の種類の配列と、ファイルの組み合わせによっても、同じ処理が出来ると考えられる。これらはプログラムの書き方の違いであって、全て本発明の符号符号分類検索ソフトウェアを記録した記録媒体の単純なレパートリーでしかないと言う事を明言する。
また、本発明のコード自動記述ソフトウェアを記録した記録媒体は、繰り返し処理の工程の中で繰り返し処理を行う処理を記述している。繰り返し処理の工程の中で繰り返し処理を行う処理を二重ループ処理と呼び、二重ループの中で繰り返し処理を行うのを三重ループと呼び、三重ループの中で繰り返し処理を行う処理を四重ループと呼び、単純に繰り返し処理を行う場合をシングルループと呼ぶ。
繰り返し処理の工程の中で繰り返し処理を行うと処理速度が低下すると言われており、繰り返し処理の中で繰り返し処理をしないで処理をする事が常識的な処理工程である。繰り返し処理の中で繰り返し処理をしないで処理をする技術は、既に知られている常識的処理工程である。
二重ループや、三重ループや、四重ループにしない様に、処理を分割する事で繰り返し処理の中で繰り返し処理をできるだけしないで処理をする処理工程に書き換える事が出来る。
【0101】
三重ループや、四重ループにしない様に、処理を分割する事で繰り返し処理の中で繰り返し処理をできるだけしないで処理をする処理工程に書き換える技術は、簡単なレパートリーであるから、本発明のコード自動記述ソフトウェアを記録した記録媒体である事を明言する。処理を分割する事で繰り返し処理の中で繰り返し処理をできるだけしないで処理をする処理工程とは、三重ループになってしまう場合を例にして説明すると、二重ループの段階で処理の結果を記録して処理を終了して、再度、記録したデーターを使用して、記録したデーターをループしながら、最後の別のデーターをループして処理を行う事で、三重ループになってしまう処理を、二重ループを二回行わせると言う処理である。処理を分割する事で繰り返し処理の中で繰り返し処理をできるだけしないで処理をする処理工程も、簡単なレパートリーである事を明言する。
また、出来るだけ配列を使用しない様にする為に、String型の変数に全てのデーターを代入して処理する事でも繰り返し処理の中で繰り返し処理をしないで済む処理工程に書き換える事が出来る。出来るだけ配列を使用しない様にする為に、String型の変数に全てのデーターを代入すると、処理を高速化する事が出来るのである。出来るだけ配列を使用しない様にする為に、String型の変数に全てのデーターを代入して処理する技術だと、二重ループは、シングルループになるし、三重ループは二重ループになり、四重ループは、三重ループになる。出来るだけ配列を使用しない様にする為に、String型の変数に全てのデーターを代入して処理する技術も、簡単なレパートリーであると明言する。
また、本発明では、繰り返し処理に、インデックスを使用する繰り返し処理を使用している。再帰処理と呼ばれる処理や、goto文と呼ばれる処理や、インデックスを使用しない繰り返し処理を使用しても、本発明の処理と同じ処理が出来ると考えられる。しかし、再帰処理と呼ばれる処理や、goto文と呼ばれる処理や、インデックスを使用しない繰り返し処理で本発明と同じ処理を行うと言う処理は、簡単なレパートリーであるから、全て本発明の符号符号分類検索ソフトウェアを記録した記録媒体である事を明言する。
【0102】
人間が読む事が出来ない数値のデーターを配列に代入するには、普通は、全てのデーターを1byteずつ代入できるサイズで、人間が読む事が出来ない数値のデーターを代入できる配列を作成して、作成した配列に1byteずつ代入する。しかし、String型の人間が読む事が出来る文字列を代入できる変数に、人間が読む事が出来ない数値のデーターを代入する技術がある。このString型の人間が読む事が出来る文字列を代入できる変数に、人間が読む事が出来ない数値のデーターを代入する技術をCSV処理と呼ぶ事とする。
CSV処理は、人間が読む事が出来ない数値を1byteずつ、String型の人間が読む事が出来る数値に変換して、変換した数値と数値の間に、任意の文字を区切りマークとして挿入する事でString型の変数に全てのデーターを代入すると言う技術である。
CSV処理を使用する事で、人間が読む事が出来ない数値を扱う場合でも、全てのデーターを変数に代入できるので、人間が読む事が出来ない数値でも、出来るだけ配列を使用しないで処理を行う事が出来る。
出来るだけ配列を使用しないで、String型の変数に全てのデーターを代入する事で繰り返し処理の中で繰り返し処理をしないで済む処理工程にする事で、処理を高速化すると言う技術は、既に知られている技術の利用であり、簡単なレパートリーであると言い得る技術である。従って、出来るだけ配列を使用せずに、String型の変数に全てのデーターを代入する事で、繰り返し処理の中で繰り返し処理をしないで済む処理工程に変更したとしても、本発明のコード自動記述ソフトウェアを記録した記録媒体である事を明言する。
【0103】
〔実施例1〕の詳しい処理工程の説明を行う。
図1の<コード自動記述ソフトウェアのフローチャート図>を参照の事。図符号Rの人為的な手動による操作または入力処理工程と図符号Sのコード自動記述ソフトウェアとコンピューターによる自動処理工程には、ステップ番号を右肩位置に付してあるが、その右肩位置に付したステップ番号順に説明する事とする。まず、本発明のコード自動記述ソフトウェアを記録した記録媒体を起動すると、
図3の<コード自動記述ソフトウェアのIF文やその他の操作画面図>の様な操作画面が図符号Aのモニターに表示される。
【0104】
図符号Fのコード文の選択ボタンを図符号Dのマウスなどでクリックすると図符号Eのコード文の選択画面に「IF文やその他」と、「Switch文」と、「組合せ分岐」のいずれかを選択できる様になっている。
また、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているが、人為的な入力処理によって、任意の文字を指定する事が出来る。任意の文字にを指定する場合は、図符号Gのブロック指定名テキストボックスに、図符号Cのキーボードを使用して任意の文字を入力する事で任意の文字を指定する事が出来る。
【0105】
ステップ100の「図符号Cのキーボードを使用して図符号Jのコード記述テキストボックスに自動的に記述させたいプログラムを入力して図符号Kの実行ボタンを図符号Dのマウスでクリックする」処理工程を行う。ステップ100の処理は、人為的な手動による操作または入力処理工程である。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「IF文やその他」または、「Switch文」または、「組合せ分岐」のいずれかに選択設定する。図符号Eのコード文の選択画面を「IF文やその他」に選択設定すると、
図3の<コード自動記述ソフトウェアのIF文やその他の操作画面図>の様な操作画面が図符号Aのモニターに表示される。図符号Eのコード文の選択画面を「Switch文」に選択設定すると、
図4の<コード自動記述ソフトウェアのSwitch文の操作画面図>の様な操作画面が図符号Aのモニターに表示される。図符号Eのコード文の選択画面を「組合せ分岐」に選択設定すると、
図5の<コード自動記述ソフトウェアの組合せ分岐の操作画面図>の様な操作画面が図符号Aのモニターに表示される。
【0106】
図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合と、図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合とでは、操作画面が違う為、ステップ100で行う人為的な手動による操作または入力処理が違ってくる。図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合と、図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合の二つに分けて説明する。
図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合のステップ100で行う人為的な手動による操作または入力処理は、以下の様な処理を行う。
図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているが、図符号Gのブロック指定名テキストボックスの文字を変更したい場合は、任意の文字に指定変更する事が出来る様になっている。図符号Gのブロック指定名テキストボックスの文字列を変更したい場合は、図符号Cのキーボードを使用して、図符号Gのブロック指定名テキストボックスに任意の文字列を入力する。図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして任意の数値に設定する。図符号Hのブロック数指定画面に入力された数値をブロック数と呼ぶ。
【0107】
図符号Eのコード文の選択画面を「IF文やその他」に設定した場合は、図符号Cのキーボードを使用して、図符号Gのブロック指定名テキストボックスに、図符号Gのブロック指定名テキストボックスに入力されたブロック指定名を、プログラムで使用する変数や配列の名前の前後のどちらかの位置または、変数や配列の名前の任意の位置に使用して「配列の初期化を行う処理の変数や配列の1個分のプログラム」や、「配列や変数を作成する処理の変数や配列の1個分のプログラム」や、「IF文による分岐処理の1ブロック分のプログラム」などの自動的に記述させたい処理を行うプログラムを、図符号Jのコード記述テキストボックスに入力する。
図符号Eのコード文の選択画面を「Switch文」に選択設定した場合は、「Switch文による分岐処理の1ブロック分のプログラム」を記述する。「Switch文による分岐処理の1ブロック分のプログラム」を記述するには、「case条件の答え」の条件の答えの部分にブロック指定名を必ず記述して、「Switch文による分岐処理の1ブロック分のプログラム」の自動的に記述させたい処理を行うプログラムを図符号Jのコード記述テキストボックスに入力する。
図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合のステップ100で行う人為的な手動による操作または入力処理の説明を終わる。
【0108】
図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合のステップ100で行う人為的な手動による操作または入力処理は、以下の様な処理を行う。
図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているが、図符号Gのブロック指定名テキストボックスの文字を変更したい場合は、任意の文字に指定変更する事が出来る様になっている。図符号Gのブロック指定名テキストボックスの文字を変更したい場合は、図符号Cのキーボードを使用して、図符号Gのブロック指定名テキストボックスに任意の文字を入力する。図符号Nの行数指定ボタンを図符号Dのマウスでクリックして図符号Mの行数指定画面の行数を任意の数値に設定する。但し、図符号Mの行数指定画面の行数は、最低値が2である。図符号Pの列数指定ボタンを図符号Dのマウスでクリックして図符号Oの列数指定画面の列数を任意の数値に設定する。但し、図符号Oの列数指定画面の列数は、最低値が2である。図符号Qの回答指定名テキストボックスには、予め「d」が入力されているが、変更したい場合は、変更できるようになっている。図符号Qの回答指定名テキストボックスに入力されている文字列を、回答指定名と呼ぶ事とする。図符号Qの回答指定名テキストボックスに入力されている文字列を変更したい場合は、図符号Cのキーボードを使用して、任意の文字列に変更する。
「組合せ分岐の場合のIF文による1ブロック分の処理のプログラム」を記述する。「組合せ分岐の場合のIF文による1ブロック分の処理のプログラム」を記述するには、図符号Oの列数指定画面の列数と同じ数の複数個の変数や配列を記述して、記述した変数や配列の数と同じ数の変数や、配列に代入された数値を示す為の数値を記述する部分に、図符号Qの回答指定名テキストボックスで指定された回答指定名を記述して、変数や、配列と、回答指定名の中間の位置に、「==」などの記号を記述して、「条件が真である場合の処理するプログラムを記述する」部分に処理をするプログラムを記述し、IF文の必要な部分に必要に応じてブロック指定名を記述して、「}」までのIF文による1ブロック分の処理のプログラムを図符号Jのコード記述テキストボックスに入力する。
図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合のステップ100で行う人為的な手動による操作または入力処理の説明を終わる。
【0109】
自動的に記述させたい処理を行うプログラムの説明を行う。
自動的に記述させたい処理を行うプログラムとは、変数や配列を作成するプログラムを記述させたい場合は、変数や配列を作成するプログラムの変数や配列の1個分の記述であり、配列の初期化をするプログラムを記述させたい場合は、配列を初期化するプログラムの配列の1個分の記述であり、IF文やSwitch文による分岐処理を行うプログラムを記述させたい場合は、IF文やSwitch文による分岐処理を行うプログラムの例としての1ブロック分の処理のプログラムを記述したプログラムであり、1ブロック毎に変えたい変数の名前や配列の名前には、必ず、ブロック指定名を使用して記述する事が必要であり、Switch文による分岐処理を行うプログラムの場合は、必ず、「case 条件の答え」の条件の答えの部分に必ず、ブロック指定名を使用して記述する事が必要であり、組合せ分岐のIF文の1ブロック分の処理のプログラムの場合は、複数個の変数の組合せによる分岐処理を記述したIF文の1ブロック分の処理のプログラムであり、IF文の条件式の部分に必ず、複数個の変数や配列と、変数や配列と同じ数の回答指定名が必要となるプログラムである。
組合せ分岐のIF文の1ブロック分の処理のプログラムの場合を言い換えると、複数個の変数や配列の組合せを回答指定名を使用して分岐処理の分岐条件として記述し、ブロック指定名を指定したい場合は、ブロック指定名を使用したい部分にブロック指定名を記述したプログラムを、例として1ブロック分だけ記述したプログラムである。この1ブロック分のプログラムを図符号Jのコード記述テキストボックスに人為的な入力処理で入力するのである。
また、ブロック指定名は、連続番号の数値に置換する必要のない部分には、絶対に使用してはならない文字列であると言う事を記述条件とする。
また、回答指定名も、作成した数値の組合せの数値に置換する必要のない部分には、絶対に使用してはならない文字列である事を条件とする。
また、「case 条件の答え」の条件の答えの部分に必ず、ブロック指定名を使用して記述する事が必要であると記述しているが、「case」の後には、必ず、連続番号の数値を入れる事になるので、コンピューターとソフトウェアによる自動処理で連続番号の数値を記述させる事も可能である。従って、自動で「case」の後に、連続番号の数値を記述させる場合は、人為的な入力処理でブロック指定名を使って指定する必要はない。この様なコンピューターとソフトウェアによる自動処理で「case」の後に、連続番号の数値を記述させる技術を使用しても、本発明の簡単なレパートリーである事を明記する。
自動的に記述させたい処理を行うプログラムの説明を終わる。
【0110】
図符号Eのコード文の選択画面の選択についての説明を行う。
図符号Eのコード文の選択画面を「IF文やその他」に選択設定した場合は、自動的に記述させたいプログラムは、「配列の初期化を行う処理の変数や配列の1個分のプログラム」と「変数や配列を作成する処理の変数や配列の1個分のプログラム」と「IF文による分岐処理の1ブロック分のプログラム」の3種類が記述可能なプログラムである。
図符号Eのコード文の選択画面を「Switch文」に選択設定した場合は、自動的に記述させたいプログラムは、「Switch文による分岐処理の1ブロック分のプログラム」だけが記述可能なプログラムである。
図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合は、自動的に記述させたいプログラムは、「組合せ分岐の場合のIF文による1ブロック分の処理のプログラム」だけが記述可能なプログラムである。
図符号Eのコード文の選択画面の選択についての説明を終わる。
【0111】
次に、ステップ101の「図符号Jのコードをファイルに保存して、保存したファイルから一行ずつ配列に読み込む」処理工程の処理を行う。ステップ101は、コード自動記述ソフトウェアとコンピューターによる自動処理工程である。
図符号Jのコード記述テキストボックスに入力された自動的に記述させたいプログラムを1byteずつ全て代入できるbyte数でString型の変数を作成する。この変数をコントロール変数と呼ぶ。コントロール変数に図符号Jのコード記述テキストボックスに入力された自動的に記述させたいプログラムの1ブロック分の処理を記述したプログラムを1byteずつ全て代入する。コントロール変数に代入力された文字列を全て1byteずつテキスト形式でファイルに記録して保存する。保存したファイルをコントロール1ファイルと呼ぶ。
【0112】
コントロール1ファイルに記述されている内容の説明を行う。
コントロール1ファイルには、「組合せ分岐」の場合は、複数個の変数や配列の組合せを回答指定名を使用して分岐処理の分岐条件として記述し、ブロック指定名を指定したい場合は、ブロック指定名を使用したい部分にブロック指定名を記述したプログラムを、例として1ブロック分だけ記述したプログラムを記述したテキスト形式の文字列が記述されている。
また、コントロール1ファイルには、「Switch文」や、「IF文やその他」による分岐処理の場合は、数値を記述する位置にブロック指定名を記述していたり、変数や配列の名前の任意の位置にブロック指定名を使用していたりする分岐処理の1ブロック分のプログラムを例として記述されている。
また、配列や変数を作成したり、初期化する場合は、配列や変数の一個分の作成をしたり、配列や変数の一個分を初期化するプログラムをブロック指定名を変数や配列の名前の任意の位置に記述したプログラムが記述されている。
コントロール1ファイルに記述されている内容の説明を終わる。
【0113】
コントロール1ファイルに記述されている文字列を1行分ずつ全て代入できる配列サイズでString型の200byteの配列を作成する。作成した配列をコントロールライン配列と呼ぶ。コントロール1ファイルをテキスト形式で開いて、1行分ずつの200byteずつ、全てのデーターをコントロールライン配列の末尾に代入する。
16bitの変数を作成する。作成した変数を回数変数と呼ぶ。回数変数に、図符号Hのブロック数指定画面に入力されている任意の分岐の数に相当するブロック数の数値を代入する。String型の100byteの変数を作成する。作成した変数をブロック指定名変数と呼ぶ。ブロック指定名変数に図符号Gのブロック指定名テキストボックスに入力されている任意の文字列を代入する。100byteのString型の変数を作成する。作成した変数を設定変数と呼ぶ。設定変数には、図符号Eのコード文の選択画面で設定された文字列を図符号Eのコード文の選択画面から取得して代入する。図符号Eのコード文の選択画面で設定された文字列とは、「IF文やその他」と、「Switch文」と、「組合せ分岐」と言う設定された設定の文字列の事である。
以下に分岐処理を行う。この選択設定1分岐処理と呼ぶ。
選択設定1分岐で、図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合は、ステップ102に進む。
選択設定1分岐で、図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合は、ステップ104に進む。
【0114】
次に、ステップ102の「図符号Gの文字列を探して数値に置換して図符号Eの設定によって分岐する」処理工程の処理を行う。ステップ102は、コード自動記述ソフトウェアとコンピューターによる自動処理工程である。
コントロールライン配列の配列サイズと同じ配列サイズでString型の200byteの配列を作成する。作成した配列を仮データ1配列と呼ぶ。コントロールライン配列の配列サイズを、回数変数に代入されている数値で乗算して算出された数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を記述文配列と呼ぶ。200byteのString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。String型の100byteの変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。
【0115】
以下に、繰り返し処理を行う。この繰り返し処理をプログラム記述繰り返し処理と呼ぶ。
プログラム記述繰り返し処理では、以下の処理を一回行う毎にカウント変数に1を加算すると言う処理を行って、カウント変数に代入された数値が回数変数に代入された数値になるまで処理を繰り返し行う。
以下に、繰り返し処理を行う。この繰り返し処理をサーチ繰り返し処理と呼ぶ。
サーチ繰り返し処理では、コントロールライン配列の最初の位置から最後の位置までに代入されている文字列に対して以下の処理を行う。コントロールライン配列のインデックスは、最初は、0である。コントロールライン配列のインデックスを使用してコントロールライン配列のデーターを取得して仮ダット1変数に代入する。
【0116】
以下に、分岐処理を行う。この分岐処理を発見分岐処理と呼ぶ。
発見分岐処理では、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が有る場合と無い場合とに分岐する。
発見分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が有る場合は、以下の処理を行う。
カウント変数に代入された数値を仮ダット2変数に上書きで代入する。
文字列操作関数のリプレース関数を使用して、仮ダット1変数に代入されている文字列の中に、複数個のブロック指定名が有る場合は、複数個のブロック指定名を全て仮ダット2変数に代入されている数値に置換して、置換した文字列を仮ダット1変数に上書きで代入する。
発見分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が無い場合は、以下の処理を行う。
何も行わない。
発見分岐処理を終わる。
仮データー1配列のインデックスに、コントロールライン配列のインデックスを使用して、仮データー1配列に、仮ダット1変数に代入された文字列を代入する。
コントロールライン配列のインデックスに1を加算してサーチ繰り返し処理の最初に戻って処理を繰り返し行う。コントロールライン配列の全てのデーターに処理を行い終わったら、サーチ繰り返し処理を終わる。
【0117】
以下に、繰り返し処理を行う。この繰り返し処理を回数記述繰り返し処理と呼ぶ。
回数記述繰り返し処理では、以下の処理を行う。
仮ダット1配列のインデックスは、最初は、0である。仮ダット1配列のインデックスを使用して、仮データー1配列の文字列を取得して、インデックス1変数に代入されている数値を記述文配列のインデックスとして使用して、取得した仮データー1配列の文字列を記述文配列に代入する。インデックス1変数に、1を加算する。
仮ダット1配列の最後の位置の文字列の処理が終わるまで、回数記述繰り返し処理を繰り返し処理を行い、仮ダット1配列の最後の位置の文字列の処理が終わったら、回数記述繰り返し処理を終わる。
カウント変数に1を加算する。
プログラム記述繰り返し処理の最初の処理に戻って、処理を繰り返して、カウント変数に代入された数値が、回数変数に代入された数値になるまで処理を繰り返して、カウント変数の数値が回数変数に代入された数値になったら、プログラム記述繰り返し処理を終わる。
コントロールライン配列の配列サイズを、記述文配列の配列サイズを取得して、記述文配列と同じ配列サイズに変更して、記述文配列の最初から最後までの位置に代入されている200byteずつの文字列を全て、コントロールライン配列の最初から最後の位置に、コピーする。
【0118】
文字列操作関数のリプレース関数についての説明を行う。
文字列操作関数のリプレース関数は、コンパイラに付属された関数である。本発明に使用したコンパイラ以外のコンパイラには、文字列操作関数のリプレース関数と同等の処理を行う文字列操作関数が付属していない場合がある。従って、文字列操作関数のリプレース関数を使用しない処理に書き換えても、コンパイラの仕様の為の違いであって、書き方の違い程度の変更であるから、簡単なレパートリーであると言える。独自に文字列の中から、任意の文字列を検索して、任意の文字列を挿入する処理を行わせても本発明のコード自動記述ソフトウェアを記録した記録媒体であると言う事を明記する。
また、文字列操作関数には、検索対象文字列の中から任意の文字列が有った場合に、任意の文字列の先頭の位置を調べると言う処理を行うインデックスオフ関数と言う関数がある。インデックスオフ関数を使用して文字列の先頭位置を探させて、もしも、検索対象文字列の中に、任意の文字列が無かった場合は、インデックスオフ関数は、-1と言う数値を答えとして返す様に作られている。また、文字列の任意の位置に任意の文字列を層に有すると言う処理を行うインサート関数と言う関数がある。また、文字列の任意の位置から何文字を削除すると言うリムーブ関数と言う関数がある。これらの、文字列操作関数のインデックスオフ関数と、リムーブ関数と、インサート関数を使用しても、リプレース関数を使用したのと同じ処理が出来る。文字列操作関数のインデックスオフ関数と、リムーブ関数と、インサート関数を使用した処理に書き換えても、本発明のコード自動記述ソフトウェアを記録した記録媒体であると言う事を明記する。
文字列操作関数のリプレース関数についての説明を終わる。
【0119】
プログラム記述繰り返し処理の補足説明。
プログラム記述繰り返し処理では、プログラム記述繰り返し処理の中で、サーチ繰り返し処理を行い、サーチ繰り返し処理が終わってから、回数記述繰り返し処理を行っている。サーチ繰り返し処理と回数記述繰り返し処理が並列に並んだ処理で、全体としては、二重ループである。
この様に繰り返し処理の中で繰り返し処理を行うと言う様な処理は、繰り返し処理の中で繰り返し処理を行えば行う程、処理速度が著しく低下すると言う現象が確認されている。この処理速度の低下の問題は、繰り返し処理の中で繰り返し処理を行う事を極力行わない事で問題を回避する事が出来る。
繰り返し処理の中で繰り返し処理を行った結果を配列に記録して処理を終了して、再度、記録した配列を繰り返し処理で参照して処理を行う事で三重ループを二重ループに変更する事が出来る。この繰り返し処理の中で繰り返し処理を行った結果を配列に記録して処理を終了して、再度、記録した配列を繰り返し処理で参照して処理を行う事で三重ループを二重ループに変更する処理技術を処理分断回避処理工程と呼ぶ。
【0120】
プログラム記述繰り返し処理で行っている処理を処理分断技術を使って、処理を分断して二重ループをシングルループに変更する事ができない処理である。しかし、違う処理技術を使ってシングルに変更できたので、詳しく説明する。
第一IF文ループ処理、第二IF文ループ処理と呼ぶ。
また、第一IF文ループ処理、第二IF文ループ処理などの処理技術は、特殊な例である。二重ループをシングルループに変更する為に、繰り返し処理の中で繰り返し処理のインデックスの数値をIF文で制御する事で繰り返し処理を減らす技術をIF文ループ回避処理工程と呼ぶ。IF文ループ回避処理工程は、二重ループをシングルループにする記述であるが、IF文ループ回避処理工程を使用して、三重ループの処理から、二重ループや、シングルループに変更する技術も、第一IF文ループ処理、第二IF文ループ処理を参考にすれば簡単に記述できる処理工程であると思われる。本発明のコード自動記述ソフトウェアを記録した記録媒体では、三重ループになっている箇所が二か所だけ有る。その三重ループになっていると言う二か所か所は、「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理の部分と、「組合せ分岐」のステップ104の以降組合せ配列作成繰り返し処理の部分である。
【0121】
以降組合せ配列作成繰り返し処理の部分は、2列組合せ配列作成繰り返し処理を行った後で、3列目以降の組合せを作成する処理を行うと言う処理を行っている部分である。2列組合せ配列作成繰り返し処理を行なわずに、最初から全ての繰り返し処理を繰り返し処理の中で行おうとすると、四重ループになるところを分割処理して三重ループで処理している部分である。以降組合せ配列作成繰り返し処理の部分は、これ以上、処理分断回避処理工程を使用して、返し処理の中で繰り返し処理をできるだけしないで処理を行う処理工程にする事が出来ないであろうから記述しない。
しかし、「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理の部分は、第一IF文ループ処理や、第二IF文ループ処理を参考に三重ループを二重ループや、シングルループに変更可能である。「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理部分をIF文ループ回避処理工程を使用して二重ループや、シングルループに書き換えても、本発明の簡単なレパートリーであると言い得るので、本発明のコード自動記述ソフトウェアを記録した記録媒体である事を明記する。また、「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理処理の部分を処理分断回避処理工程を使用する事で、三重ループを二重ループに変更したとしても、本発明の簡単なレパートリーと言い得る変更であるから、本発明のコード自動記述ソフトウェアを記録した記録媒体である事を明記する。
【0122】
第一IF文ループ処理の詳しい説明を行う。
コントロールライン配列の配列サイズと同じ配列サイズでString型の200byteの配列を作成する。作成した配列を仮データ1配列と呼ぶ。コントロールライン配列の配列サイズを、回数変数に代入されている数値で乗算して算出された数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を記述文配列と呼ぶ。200byteのString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。String型の100byteの変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。記述文配列の配列サイズと同じ配列サイズで、String型の200byteの配列を作成する。作成した配列を総ブロック配列と呼ぶ。
【0123】
以下に繰り返し処理を行う。この繰り返し処理を仮総ブロック作成繰り返し処理と呼ぶ。
仮総ブロック作成繰り返し処理では、コントロールライン配列のインデックスとして、インデックス1変数を使用して、コントロールライン配列に代入されている文字列を、一行分の200byteずつ取得して、総ブロック配列のインデックスは、最初は、0であるとして、総ブロック配列のインデックスを使用して、取得したコントロールライン配列に代入されている一行分の200byteずつの文字列を総ブロック配列に代入する。インデックス1変数に1を加算する。
以下に分岐処理を行う。この分岐処理をブロック数分岐処理と呼ぶ。
ブロック数分岐処理では、以下の処理を行う。
ブロック数分岐処理で、インデックス1変数に代入されている数値が、コントロールライン配列の配列サイズと等しい場合は、インデックス1変数に0を代入する。
ブロック数分岐処理で、インデックス1変数に代入されている数値が、コントロールライン配列の配列サイズと等しくない場合は、何もしない。
ブロック数分岐処理を終わる。
総ブロック配列のインデックスに1を加算して、仮総ブロック作成繰り返し処理の最初に戻って、処理を繰り返し行う。仮ブロック作成繰り返し処理で、総ブロック配列の最初から最後までの位置に、文字列を代入し終わったら、仮総ブロック作成繰り返し処理を終了する。
【0124】
インデックス1変数に0を代入する。
以下に繰り返し処理を行う。この繰り返し処理を総ブロック指定名置換繰り返し処理と呼ぶ。
総ブロック指定名置換繰り返し処理では、総ブロック配列のインデックスが最初は、0であるとして、総ブロック配列のインデックスを使用して、総ブロック配列の文字列を取得して、取得した文字列を仮ダット1変数に代入する。
以下に分岐処理を行う。この分岐処理を各ブロック名置換分岐処理と呼ぶ。各ブロック名置換分岐処理では、以下の処理を行う。
各ブロック名置換分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入されている文字列の中に、ブロック指定名変数に代入されているブロック指定名の文字列があるかどうかの検査を行った結果、仮ダット1変数に代入されている文字列の中に、ブロック指定名の文字列が有った場合は、以下の処理を行う。
仮ダット2変数に、カウント変数に代入されている数値を代入する。
文字列操作関数のリプレース関数を使用して、仮ダット1変数に代入されている文字列の中に、ブロック指定名が有ったら、複数個あるなら、複数個のブロック指定名を全てを仮ダット2変数に代入された数値に置換して、記述文配列のインデックスとして総ブロック配列のインデックスを使用して、置換し終わった文字列を記述文配列に代入する。
各ブロック名置換分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入されている文字列の中に、ブロック指定名の文字列があるかどうかの検査を行った結果、仮ダット1変数に代入されている文字列の中に、ブロック指定名の文字列が無い場合は、以下の処理を行う。
記述文配列のインデックスとして総ブロック配列のインデックスを使用して、仮ダット1変数に代入されている文字列を記述文配列に代入する。
各ブロック名置換分岐処理を終了する。
【0125】
インデックス1変数に1を加算する。
以下に分岐処理を行う。この分岐処理をカウント分岐処理と呼ぶ。
カウント分岐処理では、インデックス1変数に代入された数値がコントロールライン配列の配列サイズと等しい場合は、インデックス1変数に0を代入して、カウント変数に、1を加算する。
カウント分岐処理では、インデックス1変数に代入された数値がコントロールライン配列の配列サイズと等しくない場合は、何もしない。
カウント分岐処理を終わる。
総ブロック配列のインデックスに1を加算する。
総ブロック指定名置換繰り返し処理の最初に戻って処理を繰り返し行う。総ブロック配列の最後のデーターの処理がおわったら、総ブロック指定名置換繰り返し処理を終了する。
第一IF文ループ処理の詳しい説明を終わる。
【0126】
第二IF文ループ処理の詳しい説明を行う。
コントロールライン配列の配列サイズと同じ配列サイズでString型の200byteの配列を作成する。作成した配列を仮データ1配列と呼ぶ。コントロールライン配列の配列サイズを、回数変数に代入されている数値で乗算して算出された数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を記述文配列と呼ぶ。200byteのString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。String型の100byteの変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。
【0127】
以下に繰り返し処理を行う。この繰り返し処理を記述文作成繰り返し処理と呼ぶ。
記述文作成繰り返し処理では、記述文配列のインデックスの最初は、0であるとして、コントロール配列のインデックスとして、インデックス1変数に代入された数値を使用してコントロール配列の文字列を一行分の200byte分の文字列を取得して、仮ダット1変数に代入する。
以下に、分岐処理を行う。この分岐処理をブロック指定名検査分岐処理と呼ぶ。
ブロック指定名検査分岐処理では、以下の処理を行う。
ブロック指定名検査分岐処理で、仮ダット1変数に代入されている文字列の中に、ブロック指定名変数に代入されているブロック指定名の文字列が有る場合は、以下の処理を行う。
仮ダット2変数にカウント変数に代入されている数値を代入する。
文字列操作関数のリプレース関数を使用して、仮ダット1変数に代入されている文字列の中に、複数個のブロック指定名が有る場合は、複数個のブロック指定名を全て仮ダット2変数に代入されている数値に置換して、置換した文字列を仮ダット1変数に代入する。記述文配列のインデックスを使用して、記述文配列に、仮ダット1変数に代入された文字列を代入する。
ブロック指定名検査分岐処理で、仮ダット1変数に代入されている文字列の中に、ブロック指定名変数に代入されているブロック指定名の文字列が無い場合は、以下の処理を行う。
記述文配列のインデックスを使用して、記述文配列に、仮ダット1変数に代入された文字列を代入する。
ブロック指定名検査分岐処理を終わる。
【0128】
インデックス1変数に1を加算する。
以下に分岐処理を行う。この分岐処理をカウント2分岐処理と呼ぶ。
カウント2分岐処理では、以下の処理を行う。
カウント2分岐処理で、インデックス1変数に代入された数値が、コントロールライン配列の配列サイズと等しい場合は、インデックス1変数に0を代入して、カウント変数に1を加算する。
カウント2分岐処理で、インデックス1変数に代入された数値が、コントロールライン配列の配列サイズと等しくない場合は、何も行わない。
カウント2分岐処理を終わる。
記述文配列のインデックスに1を加算して、記述文作成繰り返し処理の最初に戻って処理を繰り返し行う。記述文配列の最後のデーターを代入し終わったら、記述文作成繰り返し処理を終了する。
第二IF文ループ処理の詳しい説明を終わる。
【0129】
また、サーチ繰り返し処理では、コントロールライン配列の最初の位置から最後の位置までに代入されている一行分の200byte分の文字列に対して繰り返し処理を行うと言う処理になっている。コントロールライン配列に代入されているデーターが一行ずつ配列の要素に代入されているのが原因でコントロールライン配列の最初から最後の位置に代入されている文字列を繰り返し処理で処理しなければならなくなっているのである。コントロールライン配列を使用しせずに、コントロール変数に代入された文字列を対象に、発見分岐処理や、回数記述繰り返し処理を行う処理工程に変更すれば、サーチ繰り返し処理を何度も繰り返して処理を行う必要がなくなるのである。結果、処理工程は、プログラム記述繰り返し処理の中で、発見分岐処理を行い、回数記述繰り返し処理を行って、プログラム記述繰り返し処理を終わる処理工程となる。繰返し処理する処理回数が大きく減る処理工程になるのである。この様な、基本的に処理対象とする文字列を変数に代入して処理する問題回避処理技術を変数回避処理工程と呼ぶ。
IF文ループ配列回避処理工程や、変数回避処理工程や、処理分断回避処理工程を使用して、本発明のコード自動記述ソフトウェアを記録した記録媒体のどこの処理であっても、二重の繰り返し処理や、三重の繰り返し処理である部分をシングルループや二重ループに回避した処理に変更したとしても、本発明の簡単なレパートリーであるので、本発明のコード自動記述ソフトウェアを記録した記録媒体であると明言する。
問題回避処理技術の変数回避処理工程と、IF文ループ配列回避処理工程と、処理分断回避処理工程は、本発明の一部分でのみ有効な処理技術ではなく、一般的に広く利用できる技術である事を明言する。
余談であるが、IF文ループ配列回避処理工程は、二重ループよりも、ほんの少し、処理スピードが遅い事を確認した事を記述する事にした。IF文ループ配列回避処理工程は、本発明の簡単なレパートリーとしての記述である。
【0130】
変数回避処理工程の詳しい処理工程のを説明行う。
コントロール変数と同じbyte数でString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。コントロール変数と同じbyte数に、回数変数に代入されている数値で掛けたて算出された数値のbyte数でString型の変数を作成する。作成した変数を記述文変数と呼ぶ。仮ダット1変数と同じbyte数でString型の変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。
以下に、繰り返し処理を行う。この繰り返し処理をプログラム記述繰り返し処理と呼ぶ。
プログラム記述繰り返し処理では、以下の処理を一回行う毎にカウント変数に1を加算すると言う処理を行って、カウント変数に代入された数値が回数変数に代入された数値になるまで処理を繰り返し行う。
【0131】
以下に、分岐処理を行う。この分岐処理を発見分岐処理と呼ぶ。
発見分岐処理では、文字列操作関数を使用して、コントロール変数に代入された文字列の中にブロック指定名変数に代入されたブロック指定名の文字列が有るかどうかを検査して、文字列が有る場合と無い場合とに分岐する。
発見分岐処理で、文字列操作関数を使用して、コントロール変数に代入された文字列の中にブロック指定名変数に代入されたブロック指定名の文字列が有るかどうかを検査して、文字列が有る場合は、以下の処理を行う。
仮ダット2変数にカウント変数に代入された数値を代入する。
文字列操作関数のリプレース関数を使用して、コントロール変数の中に、ブロック指定名変数に代入されたブロック指定名の文字列が、複数個あったら、複数個の全てを仮ダット2変数に代入された数値に置換して、仮ダット1変数に代入する。
発見分岐処理で、文字列操作関数を使用して、コントロール変数に代入された文字列の中にブロック指定名変数に代入されたブロック指定名の文字列が有るかどうかを検査して、文字列が無い場合は、何も処理しない。
発見分岐処理を終了する。
【0132】
記述文変数に代入されている文字列と仮ダット1変数に代入されている文字列を記述文変数に代入されている文字列の後方に連結して文字列を作成して、作成した文字列を記述文変数に代入する。カウント変数に1を加算する。
プログラム記述繰り返し処理の最初に戻って処理を繰り返して、カウント変数に代入された数値が回数変数に代入された数値になったら、プログラム記述繰り返し処理を終わる。
変数回避処理工程の詳しい処理工程の説明を終わる。
変数回避処理工程は、出来るだけ配列を使用しないで変数を使用する事で処理を高速化する事と、繰り返し処理の中で繰り返し処理をすると言う処理をできるだけ少なくする技術であり、一般的に知られている常識的な技術である。繰り返し処理の中で繰り返し処理をしなければならないような処理をしている場合に利用できる技術である。
また、処理分断回避処理工程も、一般的に知られている常識的技術である。繰り返し処理の中で繰り返し処理を行い、更に、繰り返し処理の中で繰り返し処理を行うと言う様な三重の繰り返し処理を繰り返し処理の中で繰り返し処理を行うと言う、二重の繰り返し処理程度に繰り返し処理を減らす技術である。
プログラム記述繰り返し処理の補足説明を終わる。
【0133】
以下に、分岐処理を行う。この分岐処理を選択設定2分岐と呼ぶ。
選択設定2分岐では、設定変数に代入された文字列が、「Switch文」の場合と「IF文やその他」に分岐する。
選択設定2分岐で、設定変数に代入された文字列が、「Switch文」の場合は、ステップ103の処理に進む。選択設定2分岐で、設定変数に代入された文字列が、「IF文やその他」の場合は、ステップ105に進む。
【0134】
ステップ103の「Case文の前後の文を付加してSwitch文を完成させる」処理工程の処理を行う。ステップ103は、コード自動記述ソフトウェアとコンピューターによる自動処理工程である。
テップ103は、選択設定分岐で、図符号Eのコード文の選択画面を「Switch文」に選択設定した場合の処理工程である。
コントロールライン配列の配列サイズに4個を加算した数値を配列サイズとして、200byteのString型の配列を作成する。作成した配列をスイッチ配列と呼ぶ。スイッチ配列の最初の位置に「switch (n)」と言うSwitch文の最初の行に必要な文字列を代入する。スイッチ配列の末尾に「{」と言うSwitch文の二行目の行に必要な文字列を代入する。
以下に、繰り返し処理を行う。この繰り返し処理をケース代入繰り返し処理と呼ぶ。
ケース代入繰り返し処理では、コントロールライン配列の最初から最後までの位置に代入された一行分ずつの200byteずつの文字列を順番通りに取得して、スイッチ配列の末尾に一行分ずつの200byteずつ代入する。
ケース代入繰り返し処理を終了する。
ケース配列の末尾に、「default:」と言うSwitch文の最後から二行目の行に必要な文字列を代入する。
ケース配列の末尾に、「}」と言うSwitch文の最後の行に必要な文字列を代入する。
コントロールライン配列の配列サイズをスイッチ配列の配列サイズに変更する。スイッチ配列の最初から最後の位置に代入されている一行ずつの200byteずつの文字列を全て、コントロールライン配列の最初の位置から最後の位置までの位置に、コピーする。
次に、ステップ105に進む。
【0135】
ステップ104の「図符号Gの文字列と図符号Qの文字列を探して数値に置換する」処理工程の処理を行う。104は、コード自動記述ソフトウェアとコンピューターによる自動処理工程である。
16bitの変数を作成する。作成した変数を行数指定変数と呼ぶ。
図符号Mの行数指定画面で指定された任意の行数に相当する任意の数値を取得して、取得した任意の数値を行数指定変数に代入する。16bitの変数を作成する。作成した変数を列数指定変数と呼ぶ。図符号Oの列数指定画面で指定された変数や配列の数に相当する列数の数値を取得して、取得した列数の数値を列数指定変数に代入する。100byteのString型の変数を作成する。作成した変数を回答指定名変数と呼ぶ。図符号Qの回答指定名テキストボックスに指定されている任意の文字列を取得して、回答指定名変数に代入する。String型の100byteの変数を作成する。作成した変数をブロック指定名変数と呼ぶ。ブロック指定名変数に図符号Gのブロック指定名テキストボックスに入力されている任意の文字列を代入する。16bitの変数を作成する。作成した変数を組合せ数1変数と呼ぶ。組合せ数1変数に0を代入する。16bitの変数を作成する。作成した変数を組合せ数2変数と呼ぶ。組合せ数2変数に0を代入する。200byteのString型の組合せ変数に代入されている数値を配列サイズとして、配列を作成する。作成した配列を、組合せ配列と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を2個作成する。作成した変数をそれぞれ、A数値変数、B数値変数と呼ぶ。
【0136】
以下に分岐処理を行う。この分岐処理を列数分岐処理と呼ぶ。
列数分岐処理では、以下の処理を行う。
列数分岐処理で、列数変数に代入された数値が2の場合は、以下の処理を行う。
行数指定変数に代入されている数値を二乗した数値を算出させて、組合せ変数に代入する。
String型の200byteの組合せ変数に代入された数値を配列サイズとして、配列を作成する。作成した配列を新組合せ1配列と呼ぶ。
【0137】
以下に繰り返し処理を行う。以下の繰り返し処理を2列組合せ配列作成繰り返し処理と呼ぶ。
2列組合せ配列作成繰り返し処理では、A数値変数に代入された数値が、行数指定変数に代入された数値になるまで、A数値変数に、1を加算して処理を繰り返し行う。
以下に繰り返し処理を行う。以下の繰り返し処理を行数繰り返し処理と呼ぶ。
行数繰り返し処理では、行数指定変数に代入された数値を行数繰り返し処理の繰り返し回数として処理を繰り返し行う。
任意の文字の一文字を記号として決めて、決めた記号を区切り記号と呼ぶ事とする。A数値変数に代入された数値に、区切り記号を連結して文字列を作成して、作成した文字列に、B数値変数に代入された数値を連結して文字列を作成して、作成した文字列を新組合せ1配列のインデックスに、インデックス1変数に代入された数値を使用して、新組合せ1配列に代入する。
B数値変数に、1を加算する。インデックス1変数に、1を加算する。
行数繰り返し処理の最初に戻って処理を繰り返し行う。
行数指定変数に代入されている数値まで行数繰り返し処理を行ったら、行数繰り返し処理を終了する。
【0138】
A数値変数に、1を加算する。
B数値変数に、0を代入する。
2列組合せ配列作成繰り返し処理の最初に戻って、2列組合せ配列作成繰り返し処理を繰り返し行う。A数値変数に代入された数値が、行数指定変数に代入された数値になったら、2列組合せ配列作成繰り返し処理を終了する。
組合せ配列の配列サイズを新組合せ1配列の配列サイズと同じサイズに変更して、新組合せ1配列に代入されている200byteずつの全ての文字列を、組合せ配列の最初から最後までの位置に、コピーする。
区切り記号の説明を行う。
〔実施例1〕では、任意の文字を区切り記号とする場合、「,」を記号として使用した。
区切り記号の説明を終わる。
【0139】
列数分岐処理で、列数変数に代入された数値が3以上の場合は、以下の処理を行う。
行数指定変数に代入されている数値を二乗して算出した数値を、組合せ変数に代入する。
組合せ変数に代入された数値に行数指定変数に代入された数値を乗算した数値を組合せ数2変数に代入する。
String型の200byteの組合せ2変数に代入された数値を配列サイズとして、配列を作成する。作成した配列を新組合せ2配列と呼ぶ。
【0140】
以下に、2列組合せ配列作成繰り返し処理を行う。
新組合せ2配列の配列サイズと同じ配列サイズに、組合せ配列の配列サイズを変更して、新組合せ2配列の最初から最後の位置に代入されている200byteずつの文字列を、組合せ配列の最初から最後までの位置に、全て、コピーする。
以下に、繰り返し処理を行う。以下の繰り返し処理を、以降組合せ配列作成繰り返し処理と呼ぶ。
以降組合せ配列作成繰り返し処理では、列数指定変数に代入されている数値から2を減算した回数以下の処理を繰り返し行う。
【0141】
以下に繰り返し処理を行う。以下の繰り返し処理を、以降組合せ配列作成2繰り返し処理と呼ぶ。
以降組合せ配列作成2繰り返し処理では、組合せ数2変数に代入された数値を配列サイズとして、新組合せ2配列の配列サイズを変更する。A数値変数に、0を代入する。B数値変数に、0を代入する。インデックス1変数に、0を代入する。16bitの変数を作成して、作成した変数を旧組合せ数変数と呼ぶ。組合せ数配列の配列サイズを取得して、旧組合せ数変数に代入する。
以下に繰り返し処理を行う。以下の繰り返し処理を組合せ3繰り返し処理と呼ぶ。
組合せ3繰り返し処理では、A数値変数に代入された数値が、旧組合せ数変数に代入された数値になるまで処理を繰り返し行う。
以下に繰り返し処理を行う。以下の繰り返し処理を行数2繰り返し処理と呼ぶ。
行数2繰り返し処理では、行数指定変数に代入された数値を行数2繰り返し処理の繰り返し処理回数の上限値として処理を繰り返し行う。
行数2繰り返し処理では、A数値変数に代入された数値に、区切り記号を連結して文字列を作成して、作成した文字列に、B数値変数に代入された数値を連結して文字列を作成して、新組合せ2配列のインデックスに、インデックス1変数に代入された数値を使用して、新組合せ2配列に作成した文字列を代入する。
B数値変数に、1を加算する。インデックス1変数に、1を加算する。
行数2繰り返し処理の最初に戻って処理を繰り返し行う。
行数指定変数に代入されている数値を繰り返し処理回数上限値として使用して、繰り返し処理回数が行数指定変数に代入されている数値まで行数2繰り返し処理を行ったら、行数2繰り返し処理を終了する。
【0142】
A数値変数に、1を加算する。
B数値変数に、0を代入する。
組合せ3繰り返し処理の最初に戻って処理を繰り返し行う。A数値変数に代入された数値が、旧組合せ数変数に代入された数値になるまで処理を繰り返し終わったら、組合せ3繰り返し処理を終わる。
新組合せ2配列の配列サイズを、組合せ配列の配列サイズを変更する。新組合せ2配列の最初から最後までの位置に代入された200byteずつの文字列を、全て、組合せ配列の最初から最後の位置までに、コピーする。
組合せ数2変数に、組合せ配列の配列サイズを取得して代入する。
組合せ数2変数に代入された数値を、行数指定変数に代入された数値で、乗算した数値を算出して、算出した数値を組合せ数2変数に代入する。
以降組合せ配列作成繰り返し処理を、列数指定変数に代入されている数値から2を減算した回数処理を繰り返し終わったら、以降組合せ配列作成繰り返し処理を終了する。
列数分岐処理を終了する。
【0143】
組合せ数2変数に、組合せ配列の配列サイズを取得して代入する。
図符号Lのブロック数表示テキストボックスに、組合せ数2変数に代入された数値を表示する。
200byteのString型の配列サイズが、コントロールライン配列の配列サイズと同じ配列サイズの配列を作成する。作成した配列を仮プログラム配列と呼ぶ。200byteのString型のコントロールライン配列の配列サイズの数値を、組合せ数2変数に代入された数値で乗算した数値を、配列サイズとして配列を作成する。作成した配列をプログラム配列と呼ぶ。String型の200byteの変数を2個作成する。作成した2個の変数をそれぞれ、仮データ1変数、仮データ2変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント2変数と呼ぶ。16bitの変数を作成する。作成した変数をインデックス2変数と呼ぶ。
【0144】
以下に繰り返し処理を行う。この繰り返し処理を組合せ分岐文作成繰り返し処理と呼ぶ。
組合せ分岐文作成繰り返し処理では、カウント2変数に代入されている数値が、組合せ数2変数に代入されている数値になるまで、以下の処理を繰り返し行う。
以下に繰り返し処理を行う。以下の繰り返し処理をプログラム配列作成繰り返し処理と呼ぶ。
コントロールライン配列のインデックスが、最初は、0であるとして、コントロールライン配列のインデックスを使用して、コントロールライン配列の200byteの文字列を、仮データ1変数に代入する。
【0145】
以下に分岐処理を行う。この分岐処理を回答分岐処理と呼ぶ。
回答分岐処理で、仮データ1変数に代入された200byteの文字列の中に、回答指定名変数に代入された回答指定名に指定された文字列が有った場合は、以下の処理を行う。
16bitの変数を2個作成する。作成した2個の変数をそれぞれ、インデックス3変数、インデックス4変数と呼ぶ。インデックス3変数に、0を代入する。インデックス4変数に、0を代入する。8bitの変数を作成する。作成した変数をアンサー変数と呼ぶ。アンサー変数に、0を代入する。組合せ配列に代入されたデーターを区切り記号で分割したデーターを全て代入できる配列サイズでString型の4byteの配列を作成する。作成した配列を区切り分割配列と呼ぶ。文字列操作関数のスピリット関数と言う、任意の文字で文字列を分割する処理を行う関数を使用して、組合せ配列のインデックスとして、インデックス2変数に代入された数値を使用して、組合せ配列に代入された文字列を取得して、取得した文字列を区切り記号で分割して、分割した文字列を区切り分割配列に代入する。
16bitの変数を作成する。作成した変数を回答文字数変数と呼ぶ。回答指定名変数に代入された回答指定名に指定された文字列の文字数を取得して、回答文字数変数に代入する。
【0146】
以下に繰り返し処理を行う。以下の繰り返し処理を回答置換繰り返し処理と呼ぶ。
回答置換繰り返し処理では、アンサー変数に代入された数値が、0以外の数値になるまで処理を繰り返し行う。
文字列操作関数のインデックスオフ関数を使用して、仮データ1変数に代入されている文字列の中に有る、回答指定名変数に代入された回答指定名に指定された文字列の先頭位置を取得して、インデックス3変数に代入する。
以下に分岐処理を行う。この分岐処理を最終回答分岐処理と呼ぶ。
最終回答分岐処理で、インデックス3変数に代入された数値が0より大きい数値の場合は、以下の処理を行う。
文字列操作関数のリムーブ関数を使用して、インデックス3変数に代入された数値を仮データ1変数に代入されている文字列の先頭位置として使用して、回答文字数変数に代入された数値を文字数として使用して、文字数分の文字列を、仮データ1変数に代入された文字列から削除した文字列を作成して、作成した文字列を仮データ1変数に代入する。
【0147】
文字列操作関数のインサート関数を使用して、区切り分割配列のインデックスとして、インデックス4変数に代入された数値を使用して、区切り分割配列に代入された文字列を取得して、インデックス3変数に代入された数値を、仮データ1変数に代入された文字列の位置として使用して、仮データ1変数に代入された文字列の位置に、区切り分割配列から取得した文字列を、挿入した文字列を作成して、仮データ1変数に代入する。
インデックス4変数に、1を加算する。
以下に分岐処理を行う。この分岐処理をアンサー代入分岐と呼ぶ。
アンサー代入分岐で、インデックス3変数に代入された数値が-1と等しい場合は、アンサー変数に、1を代入する。
アンサー代入分岐で、インデックス3変数に代入された数値が-1と等しくない場合は、何も行わない。
アンサー代入分岐を終わる。
最終回答分岐処理を終了する。
回答置換繰り返し処理の最初に戻って、アンサー変数に代入された数値が、0以外の数値になるまで回答置換繰り返し処理を繰り返して、アンサー変数に代入された数値が-1になったら、回答置換繰り返し処理を終わる。
回答分岐処理で、仮データ1変数に代入された200byteの文字列の中に回答指定名変数に代入された回答指定名に指定された文字列が無かった場合は、何も処理を行なわない。
回答分岐処理を終了する。
【0148】
以下に分岐処理を行う。この分岐処理をブロック分岐処理と呼ぶ。
ブロック分岐処理で、仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が有る場合は、以下の処理を行う。
カウント2変数に代入されている数値を仮データ2変数に代入する。
仮データ1変数に代入された文字列の中に有ったブロック指定名変数に代入されたブロック指定名の文字列をカウント2変数に代入された数値に置換した文字列を作成して、仮データ1変数に代入する。
ブロック分岐処理で、仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が無い場合は、何も行わない。
ブロック分岐処理を終了する。
仮ブロック配列のインデックスに、コントロールライン配列のインデックスを使用して、仮データ1変数に代入されている文字列を仮ブロック配列に代入する。
【0149】
以下に繰り返し処理を行う。この繰り返し処理を組合せ記述繰り返し処理と呼ぶ。
組合せ記述繰り返し処理で、仮プログラム配列のインデックスは、最初は、0であるとして、仮プログラム配列の文字列を取得して、プログラム配列のインデックスに、インデックス1変数に代入された数値を使用して、取得した文字列をプログラム配列に代入する。
インデックス1変数に、1を加算する。
仮プログラム配列のインデックスに、1を加算して、組合せ記述繰り返し処理の最初に戻って、処理を繰り返し行う。仮プログラム配列の最後の位置に代入された文字列まで、全ての処理が終わったら、組合せ記述繰り返し処理を終了する。
カウント2変数に、1を加算する。
カウント2変数に代入された数値が、組合せ2変数の数値になるまで、組合せ分岐文作成繰り返し処理を繰り返し行う。カウント2変数に代入された数値が、組合せ2変数の数値になったら、組合せ分岐文作成繰り返し処理を終わる。
コントロールライン配列の配列サイズをプログラム配列の配列サイズに変更する。
プログラム配列の最初から最後までの位置に代入されている文字列を一行分ずつの200byteずつ取得して、コントロールライン配列の最初の位置から最後の位置までにコピーする。
次にステップ105に進む。
【0150】
次に、ステップ105の「自動記述したプログラムコードをファイルに保存する」処理工程の処理を行う。ステップ105は、コード自動記述ソフトウェアとコンピューターによる自動処理工程である。
コントロールライン配列の最初の位置から最後の位置に代入されている文字列を一行分ずつの200byteずつテキスト形式でファイルに保存する。
〔実施例1〕の詳しい処理工程の説明を終わる。