図1は、本発明の実施例にかかる通信端末装置の構成を示すブロック図である。通信端末装置10は、制御部11、表示・操作部12、モデム部13、メモリ部14、ダイヤラー部15、NCU部16、スピーチネットワーク部17、電源部18などを備えて構成されている。
なお、制御部11は本発明の照合手段と制御手段に相当し、表示・操作部12は本発明の設定手段に相当し、モデム部13は本発明の取得手段に相当し、メモリ部14は本発明の記憶手段に相当する。
制御部11は、マイクロプロセッサを中心に構成され、一般的なコンピュータ装置と同様にROMなどのメモリを備えており、ROMに格納されている各種制御プログラムを読み出し、後述するメモリ部14内の演算用メモリ領域に展開し、該制御プログラムに従って各部の動作を制御する。
表示・操作部12は、例えば、LCDや有機ELDなどのディスプレイパネルなどから構成される表示ユニットと、テンキーや各種機能キーなどを備えた操作ボタンや抵抗膜方式やセンサ方式などのタッチパネルなどから構成される操作ユニットからなり、制御部11からの制御信号に応じて、ダイヤル入力時の相手先番号など各種の情報が表示される。
また、表示・操作部12は、操作ボタンから所要の英数字や文字記号を入力したり、タッチパネル上に表示されたキーパッドを指やペンなどで押圧あるいは接触したりすることで相手先番号入力やメモリ部14に格納されている電話帳データの中からユーザが所望するデータの呼び出しなどの操作指示などを受け付け、その受け付けた各種の操作指示を動作制御信号として制御手段11へ出力するなどの各種操作が行えるようになっている。
モデム部13は、NCU部16と接続されており、制御部11からの制御によりNCU部を介して通信を行うとともに、発信者電話番号案内サービスなどに用いられる信号を受信して制御部11に通知する。また、NCU部16を介して送受信されるファクシミリ通信に用いる画情報などの各種信号を変復調する。
メモリ部14は、制御部11によって使用される演算用メモリ領域、装置の設定情報や短縮ダイヤルなどの各種データが保存される保存用メモリ領域などからなるフラッシュメモリなどの読み書き可能な不揮発性メモリで構成されている。
本発明では、照合番号設定処理や番号照合処理の際に、フラグやレジスタ(テーブルポインタ)などを設定するための作業用メモリ領域としてメモリ部14を用いている。また本発明では、メモリ部14には、表示・操作部12のテンキーなどにより入力設定された発着信制御用の照合番号が照合番号テーブルとして記憶されている。この照合番号テーブルは、相手先番号のうちの所定の桁数の番号と所定の発着信動作との関係を示している。
図7は、本実施例にかかる照合番号テーブルの一例を示している。この照合番号テーブルには、照合番号との照合を行う場合、着信拒否などの動作制御の使用目的により先頭または末尾からの照合が存在するが、どちらの方向においても設定する照合番号は相手先番号を特定するために必要な部分を必要な桁数だけ入力設定するものであり、通常は、例えば、加入者番号の末尾4桁程度を設定したり、相手先加入者番号の全桁を設定したりする。
本発明では、照合番号設定時に、数字情報とともに特殊記号の入力が可能である。この特殊記号は不特定桁数の数字列や照合方向を意味するものであり、例えば「*」などを割り当てる。この特殊記号の有無によって、図7に示すように、様々な動作制御と照合条件を設定することができる。
例えば、図7に示すように、(2)では、不特定数字列で始まるため、無条件に末尾4桁「1234」を照合し、一致すると所定の呼び出し音1で着信を報せることができる。また、(3)や(4)では、不特定番号列で終わるため、無条件に先頭4桁「0120」または3桁「090」を照合し、一致すると「0120」の場合にはフリーダイヤルからの着信を一括拒否し、また「090」の場合には携帯電話への発信のみ選択することができる。さらに、(5)では、不特定数字列を挟んでいるため、末尾4桁の加入者番号が同じ「1234」であっても先頭3桁「050」で識別することができるため、IP電話からの発信であることを識別して通知することができる。
ダイヤラー部15は、制御部11からの制御により表示・操作部12のテンキーなどにより入力された電話番号情報に基づいてパルスあるいはDTMFからなるダイヤル信号を電話回線LへNCU部16を介して送出させる。NCU部16は、制御部11からの制御により電話回線Lとモデム部13との接続を制御するために、着信信号をパルス信号に波形整形して着信を検出し、回線の解放・閉結を行い、通信相手を呼び出すためにダイヤラー部15からのダイヤル信号を送出する。
スピーチネットワーク部17は、受話器17aと接続されており、受話器17aのオンフックやオフフックを検出するとともに、受話器17aに設けられたスピーカやマイクを介して音声信号の入出力とその増幅などを行い、会話を行うためのものである。電源部18は、商用電源と接続されており、通信端末装置10全体に電源供給を行うためのものである。
通信端末装置10は、表示・操作部12から着信時の動作制御として着信拒否やセレクト受信などの指定とともに、特殊記号と下4桁の照合番号の設定要求があると、制御部11はメモリ部14の照合番号テーブルに保持する。そして、モデム部13から発信者電話番号案内サービスなどに用いられる信号を受信すると、制御部11は、照合番号テーブルを参照して着信を受けた相手先電話番号に対する着信時の動作制御を有効にするか無効にするか判定する。
また、通信端末装置は、表示・操作部12から発信時の動作制御としてLCR(最低料金回線自動選択)機能発信や携帯電話事業者選択発信などの指定とともに、特殊記号と上3〜4桁の照合番号の設定要求があると、制御部11はメモリ部14の照合番号テーブルに保持する。そして、表示・操作部12から電話番号情報が入力されると、制御部11は、照合番号テーブルを参照して発信要求を受けた相手先電話番号に対する発信時の動作制御を有効にするか無効にするか判定する。
次に、本発明にかかる通信端末装置が照合番号を照合番号テーブルに設定する動作について説明する。
図2は、本実施例にかかる通信端末装置が照合番号テーブルを設定する手順を示すフローチャートである。なお、図2に示す動作は制御部11に備えられたROMに記憶されているシステムプログラムを実行することで実現される。
図2のフローチャートにおいて、先ずステップS201において、照合番号テーブルポインタ(CPNO)を「0」に設定して、複数ある照合番号テーブルの先頭にポインタを合わせた後に、ステップS202において、ポインタ(CPNO)が示す照合番号テーブル(ここでは0番目の照合番号テーブル)1件分を読み出して、照合する番号を格納するための照合バッファ(CPBUF)にコピーし、同時に照合番号桁数カウンタ(CPNM)と数字桁数カウンタ(NUM)に、それぞれ総桁数と数字のみの桁数を取得する。
そして、ステップS203において、現在の照合番号テーブル1件分を表示・操作部12に表示して、表示・操作部12からのキー入力があるか否かを監視し、ステップS204において、キー入力操作が設定キーであるか否かを判定し、キー入力操作が設定キーであると判断した場合には、ステップS205の照合番号1件入力処理サブルーチンへ進む。
この入力処理サブルーチン(図3参照して後述する)を実行後、ステップS206において、設定結果の有効性を判定し、設定処理が有効であると判断した場合には、ステップS207において、照合バッファ(CPBUF)の内容をポインタ(CPNO)が示す照合番号テーブル1件分へ保存する。
その後、ステップS208へ進み、照合番号テーブルポインタ(CPNO)を次のテーブル番号(+1)に進め、ステップS209において、照合番号テーブルポインタ(CPNO)の上限を超えたか否かを判定し、上限を超えていないと判断した場合には、そのままステップS202の処理に戻り、次の照合番号テーブル入力処理に進み、一方、上限を超えていると判断した場合には、ステップS210において、初期化を行って照合番号テーブルポインタ(CPNO)を「0」に戻し、ステップS202の処理に戻る。
一方、ステップS206の処理において、ステップS205の照合番号1件入力処理サブルーチンが無効であると判断した場合には、ステップS202の処理に戻り、現在の照合番号テーブルを再び取得して表示後、次の操作待ちとなる。
また、ステップS204において、キー入力操作が設定キーでないと判断した場合には、ステップS211へ進み、キー入力操作が消去キーであるか否かを判定し、キー入力操作が消去キーであると判断した場合には、ステップS212の照合番号1件消去処理サブルーチンへ進む。この1件消去処理サブルーチンでは、照合番号1件消去の再確認と消去実行または中断の処理を行う。
そして、この消去処理サブルーチンを実行後、ステップS213において、消去結果の有効性を判定し、消去処理が有効であると判断した場合には、ステップS214において、照合番号テーブルポインタ(CPNO)を1件前のテーブル番号(−1)に戻し、ステップS215において、照合番号テーブルポインタ(CPNO)の下限を超えたか否かを判定する。
下限を超えていないと判断した場合には、そのままステップS202の処理に戻り、次の照合番号テーブル入力処理に進み、一方、下限を超えていると判断した場合には、ステップS216において、照合番号テーブルポインタ(CPNO)を「最大」にして、ステップS202の処理に戻り、次の照合番号テーブルを取得して表示後、次の操作待ちとなる。
一方、ステップS213の処理において、ステップS212の照合番号1件消去処理サブルーチンが無効であると判断した場合には、そのままステップS202の処理に戻り、現在の照合番号テーブルを再び取得して表示後、次の操作待ちとなる。
また、ステップS211において、キー入力操作が消去キーでないと判断した場合には、ステップS217へ進み、キー入力操作がダウンキーであるか否かを判定し、キー入力操作がダウンキーであると判断した場合には、ステップS208へ進み、上述したように、照合番号テーブルポインタ(CPNO)を次のテーブル番号(+1)に進め、ステップS209において、照合番号テーブルポインタ(CPNO)の上限を超えたか否かを判定し、上限を超えていないと判断した場合には、そのままステップS202の処理に戻り、一方、上限を超えていると判断した場合には、ステップS210において、初期化を行ってステップS202の処理に戻り、次の照合番号テーブルを取得して表示後、次の操作待ちとなる。
また、ステップS217において、キー入力操作がダウンキーでないと判断した場合には、ステップS218へ進み、キー入力操作がアップキーであるか否かを判定し、キー入力操作がアップキーであると判断した場合には、ステップS214へ進み、上述したように、照合番号テーブルポインタ(CPNO)を1件前のテーブル番号(−1)に戻し、ステップS215において、照合番号テーブルポインタ(CPNO)の下限を超えたか否かを判定し、下限を超えていないと判断した場合には、そのままステップS202の処理に戻り、一方、下限を超えていると判断した場合には、ステップS216において、照合番号テーブルポインタ(CPNO)を「最大」にしステップS202の処理に戻り、次の照合番号テーブルを取得して表示後、次の操作待ちとなる。
また、ステップS218において、キー入力操作がアップキーでないと判断した場合には、ステップS219へ進み、キー入力操作が停止キーであるか否かを判定し、キー入力操作が停止キーであると判断した場合には、全ての処理を終了し、一方、ステップS219において、キー入力操作が停止キーでないと判断した場合には、ステップS220へ進む。
ステップS220では、所定の待ち時間が経過したか否かを監視し、キー入力操作がなく所定時間が経過(タイムアウト)した場合には、設定処理は中断となり更新なく処理は終了し、一方、所定時間が経過するまではステップS204の処理に戻る。
図3は、図2における照合番号1件入力処理の動作手順を示すフローチャートである。なお、図3に示す動作は制御部11に備えられたROMに記憶されているシステムプログラムを実行することで実現される。
図3のフローチャートにおいて、先ずステップS301において、カーソル位置を末尾にセットするため、カーソル位置ポインタ(CRPS)を照合番号桁数カウンタ(CPNM)に一致させた後に、ステップS302において、現在の照合番号テーブル1件分を取得した照合バッファ(CPBUF)の内容とカーソル位置ポインタ(CRPS)が示す位置にカーソルを表示・操作部12に表示して、表示・操作部12からのキー入力があるか否かを監視する。
そして、ステップS303において、キー入力操作が数字キーであるか否かを判定し、キー入力操作が数字キーであると判断した場合には、ステップS304において、その数字を照合バッファ(CPBUF)のカーソル位置ポインタ(CRPS)が示す位置に1桁セットし、ステップS305において、現在のカーソル位置が照合バッファ(CPBUF)の限界位置か否かを判定する。
ステップS305において、限界位置に達していないと判断した場合には、ステップS306において、数字桁数カウンタ(NUM)を加算(+1)し、ステップS307において、カーソル位置ポインタ(CRPS)を次の桁(+1)に移動させて、ステップS308に進み、一方、限界位置に達していると判断した場合には、そのままステップS308に進む。
ステップS308では、カーソル位置ポインタ(CRPS)が総桁数カウンタ(CPNM)を超えているか否かを判定し、超えていると判断した場合には、ステップS309において、総桁数カウンタ(CPNM)をカーソル位置ポインタ(CRPS)に更新してステップS302に戻り、一方、カーソル位置ポインタ(CRPS)が総桁数カウンタ(CPNM)を超えていないと判断した場合には、そのままステップS302に戻り、最新状態を表示した後、再びキー入力待ちとなる。
また、ステップS303において、キー入力操作が数字キーでないと判断した場合には、ステップS310へ進み、キー入力操作が特殊記号「*」キーであるか否かを判定し、キー入力操作が特殊記号キーであると判断した場合には、ステップS311において、特殊記号キーの連続入力を防止するため既に前桁が「*」であるか否か判定し、重複入力である場合には、今回の特殊記号の入力操作を無視してステップS303の処理に戻り、キー入力待ちとなる。
一方、重複入力ではない場合には、数字入力の場合と同様に、ステップS312において、その特殊記号「*」数字を照合バッファ(CPBUF)のカーソル位置ポインタ(CRPS)が示す位置に1桁セットし、ステップS313において、現在のカーソル位置が照合バッファ(CPBUF)の限界位置か否かを判定する。
ステップS313において、限界位置に達していないと判断した場合には、ステップS307において、カーソル位置ポインタ(CRPS)を次の桁に移動させて、ステップS308に進み、一方、限界位置に達していると判断した場合には、そのままステップS308に進む。
ステップS308以降は、数字入力の場合同様に、カーソル位置ポインタ(CRPS)が総桁数カウンタ(CPNM)を超えているか否かを判定し、超えていると判断した場合には、総桁数カウンタ(CPNM)をカーソル位置ポインタ(CRPS)に更新してステップS302に戻り、最新状態を表示した後、再びキー入力待ちとなる。
また、ステップS310において、キー入力操作が特殊記号「*」キーでないと判断した場合には、ステップS314へ進み、キー入力操作が削除キーであるか否かを判定し、キー入力操作が削除キーであると判断した場合には、ステップS315において、削除桁が特殊記号「*」であるか否かを判定し、削除桁が数字であると判断した場合には、ステップS316において、数字桁数カウンタ(NUM)を減算(−1)後、ステップS317に進み、一方、削除桁が特殊記号であると判断した場合には、そのままステップS317に進む。
そして、ステップS317において、照合バッファ(CPBUF)のカーソル位置ポインタ(CRPS)が示す位置以降にある次桁(CRPS+1)から残り全桁を左シフトさせた後、末尾に空白桁を付加することによりカーソル位置ポインタ(CRPS)が示す位置の1桁削除の処理を終えて、ステップS318において、総桁数カウンタ(CPNM)を減算(−1)後、ステップS302に戻り、再びキー入力待ちとなる。
また、ステップS314において、キー入力操作が削除キーでないと判断した場合には、ステップS319へ進み、キー入力操作がダウンキーであるか否かを判定し、キー入力操作がダウンキーであると判断した場合には、ステップS320において、カーソル位置ポインタ(CRPS)が示す位置が入力限界位置であるか否かを判定する。
ステップS320において、入力限界位置に達していないと判断した場合には、ステップS321において、カーソル位置ポインタ(CRPS)が示す位置が末尾であるか否かを判定し、末尾に達していないと判断した場合には、ステップS322において、カーソル位置ポインタ(CRPS)を次の桁(+1)に移動させて、ステップS302に戻り、表示更新後、再びキー入力待ちとなる。
一方、ステップS320において、入力限界位置に達していると判断した場合、あるいは、ステップS321において、カーソル位置ポインタ(CRPS)が示す位置が末尾に達していると判断した場合には、ダウンキーの入力操作を無効とし、ステップS303の処理に戻り、キー入力待ちとなる。
また、ステップS319において、キー入力操作がダウンキーでないと判断した場合には、ステップS323へ進み、キー入力操作がアップキーであるか否かを判定し、キー入力操作がアップキーであると判断した場合には、ステップS324において、カーソル位置ポインタ(CRPS)が示す位置が先頭であるか否かを判定し、先頭に達していないと判断した場合には、ステップS325において、カーソル位置ポインタ(CRPS)を前の桁(−1)に移動させて、ステップS302に戻り、表示更新後、再びキー入力待ちとなる。一方、ステップS324において、カーソル位置ポインタ(CRPS)が示す位置が既に先頭に達していると判断した場合には、アップキーの入力操作を無効とし、ステップS303の処理に戻り、キー入力待ちとなる。
また、ステップS323において、キー入力操作がアップキーでないと判断した場合には、ステップS326へ進み、キー入力操作が設定キーであるか否かを判定し、キー入力操作が設定キーであると判断した場合には、ステップS327において、数字桁数カウンタ(NUM)が規定の有効桁数に達したか否か判定し、有効桁数に達していない場合には、ステップS303の処理に戻り、更なるキー入力待ちとなるが、有効桁数に達している場合には、有効終了として照合番号1件入力処理サブルーチンを終了する。
また、ステップS326において、キー入力操作が設定キーでないと判断した場合には、ステップS328へ進み、キー入力操作が停止キーであるか否かを判定し、キー入力操作が停止キーであると判断した場合には、照合番号1件入力処理サブルーチンを中断して無効終了とし、一方、ステップS328において、キー入力操作が停止キーでないと判断した場合には、ステップS329へ進む。
ステップS329では、所定の待ち時間が経過したか否かを監視し、キー入力操作がなく所定時間が経過(タイムアウト)した場合には、照合番号1件入力処理サブルーチンを中断して無効終了とし、一方、所定時間が経過するまではステップS303の処理に戻り、キー入力待ちとなる。
次に、本発明にかかる通信端末装置が被照合番号である取得した相手先番号を照合番号テーブルの照合番号と照合する動作について説明する。
図4は、本実施例にかかる通信端末装置が取得した相手先番号を複数の照合番号と照合する手順を示すフローチャートである。なお、図4に示す動作は制御部11に備えられたROMに記憶されているシステムプログラムを実行することで実現される。
図4のフローチャートにおいて、先ずステップS401において、番号照合を開始すると、取得した相手先番号を相手先バッファ(PTBUF)にコピーし、同時に相手先番号桁数カウンタ(PTNM)に総桁数を取得する。そして、ステップS402において、初期化を行って照合番号テーブルポインタ(CPNO)を「0」に戻す。
次に、ステップS403において、指定された照合番号テーブルポインタ(CPNO)が示す照合番号テーブルが登録済みか否かを判定し、登録があると判断した場合には、ステップS404に進み、登録がないと判断した場合には、ステップS408に進む。
ステップS404では、ポインタ(CPNO)が示す照合番号テーブル(ここでは0番目の照合番号テーブル)に登録されている照合番号1件分を照合バッファ(CPBUF)にコピーし、同時に照合番号桁数カウンタ(CPNM)に総桁数を取得し、ステップS405の番号照合用フラグ、レジスタの初期化ルーチンへ進む。
この番号照合用フラグ、レジスタの初期化処理ルーチン(図5を参照して後述する)を実行後、ステップS406において、番号照合1件処理ルーチン(図6を参照して後述する)を実行すると、ステップS407において、ステップS406の照合結果が該当ありか否かを判定し、該当ありと判断した場合には、該当終了として照合処理を終了する。
一方、ステップS403において、照合番号テーブルの登録がないと判断した場合、あるいは、ステップS407において、照合結果が該当なしと判断した場合には、ステップS408に進み、照合番号テーブルポインタ(CPNO)を次のテーブル番号(+1)に進め、ステップS409において、最終の照合番号テーブルの照合が終了したか否かを判定し、残りの照合番号テーブルがあると判断した場合には、ステップS403の処理に戻り、処理を続行するが、全ての照合番号テーブルの照合を完了したと判断した場合には、非該当終了として照合処理を終了する。
図5は、図4における番号照合用フラグ、レジスタの初期化処理の動作手順を示すフローチャートである。なお、図5に示す動作は制御部11に備えられたROMに記憶されているシステムプログラムを実行することで実現される。
図5のフローチャートにおいて、先ずステップS501において、初期化を行って各種フラグと一致桁数カウンタ(NUM)を「0」に設定する。ここで、設定されるフラグは、特殊記号「*」による部分照合を行うことを示す部分フラグと、特殊記号に続く数字の検索中であることを示す検索フラグと、照合対象となる数字を発見したことを示す同期フラグである。
部分フラグは、一度でも特殊記号「*」を読み出された場合に、「1」にセットされ、このときの照合番号は不特定数字列を含むため、先頭末尾の両端が相手先番号の両端に揃う長さと仮定し、一致照合する数字部分は「*」との位置関係により相対的に特定されることを示している。
また、検索フラグは、特殊記号「*」が読み出される度に「1」にセットされ、一致照合を開始する基点となる「*」に続く数字を相手先番号の中から検索中であることを示している。さらに、同期フラグは、その数字が相手先番号の中から発見され、一致状態が続いていることを示している。
次に、ステップS502において、照合方法が末尾からか先頭からかを判定し、末尾からの照合であると判断した場合には、ステップS503において、方向フラグを「1」にセットし、ステップS504において、相手先バッファポインタ(PTP)を末尾「PTNM−1」にセットし、ステップS505において、照合バッファポインタ(CPP)を末尾「CPNM−1」にセットして、番号照合用フラグ、レジスタの初期化処理サブルーチンを終了する。
一方、ステップS502において、先頭からの照合であると判断した場合には、ステップS506において、方向フラグを「0」にセットし、ステップS507において、相手先バッファポインタ(PTP)を先頭「0」にセットし、ステップS505において、照合バッファポインタ(CPP)を先頭「0」にセットして、番号照合用フラグ、レジスタの初期化処理サブルーチンを終了する。
図6は、図4における番号照合1件処理の動作手順を示すフローチャートである。なお、図6に示す動作は制御部11に備えられたROMに記憶されているシステムプログラムを実行することで実現される。
図6のフローチャートにおいて、先ずステップS601において、照合バッファ(CPBUF)に取得された照合番号から、照合バッファポインタ(CPP)が示す位置にある1桁が読み出され、その後、照合バッファポインタ(CPP)の位置を方向フラグの状態に応じて移動させる。ここで、方向フラグ=0の場合には、先頭からの照合であるため、照合バッファポインタ(CPP)を次の桁(+1)に移動させ、方向フラグ=1の場合には、末尾からの照合であるため、照合バッファポインタ(CPP)を前の桁(−1)に移動させる。
そして、ステップS602において、読み出した照合番号1桁が特殊記号「*」であるか否かを判定し、数字が読み出された場合には、ステップS603に進み、相手先番号一致照合または照合位置検索を行う。ここで、これら番号一致照合と照合位置検索の何れを行うかは、前桁において特殊記号「*」が読み出されたか否かの判定によって部分フラグ、検索フラグ、同期フラグの各状態が後述するステップS618において決定されることにより切り分けられる。
ステップS603では、相手先バッファ(PTBUF)に未照合桁が残っているか否かを判定し、相手先バッファ(PTBUF)に未照合桁が残っていないと判断した場合には、相手先番号が照合番号より桁数が短いことになるため不一致となり、非該当終了として番号照合1件処理ルーチンを終了する。
一方、ステップS603において、相手先バッファ(PTBUF)に未照合桁が残っていると判断した場合には、ステップS604において、相手先バッファ(PTBUF)に取得された相手先番号から、相手先バッファポインタ(PTP)が示す位置にある1桁が読み出され、その後、相手先バッファポインタ(PTP)の位置を方向フラグの状態に応じて移動させる。ここで、方向フラグ=0の場合には、先頭からの照合であるため、相手先バッファポインタ(PTP)を次の桁(+1)に移動させ、方向フラグ=1の場合には、末尾からの照合であるため、相手先バッファポインタ(PTP)を前の桁(−1)に移動させる。
そして、ステップS605において、読み出した照合番号1桁が数字であるか否かを判定し、数字が読み出されるまでステップS603に戻り、数字が読み出された場合には、ステップS606に進み、照合バッファ(CPBUF)と相手先バッファ(PTBUF)とからそれぞれ読み出された1桁が一致するか否かを判定し、一致すると判断した場合には、ステップS607に進み、一方、一致しないと判断した場合には、ステップS614に進む。
ステップS607では、検索フラグが「1」にセットされているか否かを判定し、検索フラグ「1」がセットされていると判断した場合には、特殊記号「*」が検出された後の番号一致箇所検索中であることを示しており、ステップS608に進む。
ステップS608では、同期フラグ「0」がセットされているか否かを判定し、同期フラグ「0」がセットされているならば、検索中の最初の数字が現れたと判断して、ステップS609において、同期フラグを「1」にセットし、検索中の照合不一致による再検索に備え、相手先ポインタバッファ(PTPB)に相手先バッファポインタ(PTP)を保存し、桁数バッファ(NUMB)に一致桁数カウンタ(NUM)を保存して、ステップS610に進む。
一方、ステップS607において、検索フラグ「1」がセットされていなければ、単なる照合中であると判断し、そのままステップS610に進み、また、ステップS608において、同期フラグ「0」がセットされていなければ、既に部分照合一致中であり、照合対象の数字があると判断し、そのままステップS610に進む。
ステップS610では、一致桁数カウンタ(NUM)を次の桁(+1)に進め、ステップS611において、照合バッファ(CPBUF)に照合すべき未照合桁が残っているか否かを判定し、照合バッファ(CPBUF)に未照合桁が残っていないと判断した場合には、照合バッファ(CPBUF)の最終桁は数字であり、ステップS612において、部分フラグが「1」にセットされているか否かを判定する。
ステップS612において、部分フラグ「1」がセットされている場合には、照合バッファ(CPBUF)には特殊文字「*」を含む数字列が読み出されて照合を行ったのであるから、ステップS613において、相手先バッファ(PTBUF)に照合すべき未照合桁が残っているか否かを判定し、相手先バッファ(PTBUF)に未照合桁が残っていると判断した場合には相手先番号が終端に達していないため、非該当終了として番号照合1件処理ルーチンを終了し、一方、未照合桁が残っていないと判断した場合には、両バッファの番号数字列が最終桁であるため、該当終了として番号照合1件処理ルーチンを終了する。
また、ステップS612において、部分フラグ「1」がセットされていない場合には、照合バッファ(CPBUF)には特殊文字「*」を含まない数字列が読み出されて数字のみの照合を行ったのであるから、先頭照合または末尾照合が一致したと判断し、該当終了として番号照合1件処理ルーチンを終了する。さらに、ステップS611において、照合バッファ(CPBUF)に未照合桁が残っていると判断した場合には、ステップS601の処理に戻る。
一方、ステップS614では、検索フラグが「1」にセットされているか否かを判定し、検索フラグ「1」がセットされていないと判断した場合には、照合中であり不一致となるから非該当終了として番号照合1件処理ルーチンを終了し、検索フラグ「1」がセットされていると判断した場合には、検索中であることを示しているため、ステップS615において、同期フラグ「0」がセットされているか否かを判定する。
ステップS615において、同期フラグ「1」がセットされていないと判断した場合には、まだ最初の数字が未発見であるので相手先番号の次桁を読み出すため、ステップS603に戻り、一方、同期フラグ「1」がセットされていると判断した場合には、検索の結果、1桁以上の一致があったにもかかわらず、その後不一致になったことを示しているため、もう一度再検索に戻る必要がある。
このため、ステップS616において、照合バッファポインタ(CPP)と相手先バッファポインタ(PTP)および一致桁数カウンタ(NUM)の復元を行うため、照合バッファポインタ(CPP)に相手先ポインタバッファ(CPPB)を復元し、相手先バッファポインタ(PTP)には、方向フラグ=0の場合には、相手先ポインタバッファ(PTPB)+1を復元し、方向フラグ=1の場合には、相手先ポインタバッファ(PTPB)−1を復元し、一致桁数カウンタ(NUM)に桁数バッファ(NUMB)を復元し、そして、ステップS617において、同期フラグを「0」にクリアして、ステップS611を経由してステップS601の処理へ戻る。
ここで、相手先ポインタバッファ(CPPB)は、照合位置検索をやり直すための照合バッファポインタ(CPP)を復元するためのものである。後述するステップS618において、照合バッファポインタ(CPP)は、照合ポインタバッファ(CPPB)に予め保存されている。
さらに、ステップS602において、特殊記号「*」が読み出された場合には、ステップS618に進み、部分フラグと検索フラグを「1」にセットし、同期フラグを「0」にセットし、照合ポインタバッファ(CPPB)に照合バッファポインタ(CPP)を保存する。
そして、ステップS619において、照合バッファ(CPBUF)に照合すべき未照合桁が残っているか否かを判定し、照合バッファ(CPBUF)に未照合桁が残っていると判断した場合には、ステップS601の処理に戻り、一方、照合バッファ(CPBUF)に未照合桁が残っていないと判断した場合には、照合バッファ(CPBUF)が「*」で終了したことになるので、相手先番号の残りの桁数は不特定でよいことになり、ステップS620に進む。
ステップS620では、一致桁数カウンタ(NUM)が有効桁数に達しているか否かを判定し、有効桁数以上に達していると判断した場合には、該当終了として番号照合1件処理ルーチンを終了し、有効桁数に達していないと判断した場合には、非該当終了として番号照合1件処理ルーチンを終了する。
なお、上記実施例では、不特定桁数の数字列を意味する特殊記号として、「*」を用いて説明したが、特殊記号はこれに限ることはなく、例えば、「+」などの数字と識別可能な記号を採用することも可能である。
以上説明したように本発明にかかる通信端末装置によれば、照合条件が先頭または末尾の何れの方向から定められた条件下にあっても、相対的な照合位置の特定が可能となる。また、任意の部位にある数字列であっても照合が可能となるため、幅広い照合番号の指定が可能となり、1つの設定で同種のグループに対して一括指定が可能となる。