ところが、従来の管理方法や変換方法には、以下の問題点が存在する。すなわち、従来の管理方法では、ショートファイルネームの決定処理に要する時間を短縮するために、ネーム本体部を構成する文字列の一部にロングファイルネームの配列番号を含ませることで、ネーム本体部を構成する文字列が一致するショートファイルネームが決定される可能性を低下させている。しかしながら、従来の管理方法は、アプリケーションプログラムのコンパイル処理等に際して検出したロングファイルネームの配列番号を使用することを想定した方法が採用されている。したがって、従来の管理方法では、例えば、新たなファイルや新たなディレクトリの生成に際してロングファイルネームが指定されたときに、そのファイルやディレクトリに対応付けるショートファイルネームを指定された都度決定するときに、この決定方法に従ってショートファイルネームを決定することができないという問題点がある。
このような問題点に関しては、ショートファイルネームの決定に際して配列番号を取得可能とするために、例えば、従来の管理方法におけるショートファイルネームの決定方法に準じて、ロングファイルネームのファイルやディレクトリが生成される都度、そのロングファイルネームをリスト(配列)に追記する管理方法を採用することが考えられる。しかしながら、そのような管理方法を採用する場合には、新たなファイルやディレクトリが生成される都度、そのファイルやディレクトリのロングファイルネームをリストに加える処理が必要となることに起因して、ファイル管理が煩雑になるという問題が生じる。また、ロングファイルネームを順次追記するリストを記憶しておく領域の分だけ、電子機器における記憶部の記憶可能領域が減少するため、これに起因して、大容量の記憶部を電子機器に搭載する必要が生じることから、電子機器の製造コストの低減が困難になるという問題も生じる。
一方、従来の変換方法によれば、新たなファイルや新たなディレクトリが生成されたときに、この変換方法に従って、そのファイルやディレクトリに対応付けるショートファイルネームをロングファイルネームに基づいて決定することができる。また、従来の変換方法によれば、新たなファイルや新たなディレクトリが生成される都度、そのロングファイルネームをリストに追記する処理が不要であり、リストを記憶しておくための記憶領域を確保する必要も生じない。しかしながら、従来の変換方法は、ロングファイルネームを自由に決定する(指定する)ことができないという致命的な問題点を有している。また、例えば、測定結果のファイルが比較的短い時間間隔で順次生成される使用形態が存在する測定装置においては、従来の変換方法に従ってロングファイルネームを生成したとしても、そのロングファイルネームに基づいて決定されるショートファイルネームが一致する可能性が高くなるため、ショートファイルネームの決定処理に要する時間を短縮することができないおそれがある。
本発明は、かかる問題点に鑑みてなされたものであり、新たなファイルや新たなディレクトリの生成時においても、ロングファイルネームを自由に指定することができ、しかも、装置の製造コストを高騰させることなく、ショートファイルネームの決定処理に要する時間を短縮し得る測定装置、およびショートファイルネーム決定方法を提供することを主目的とする。
上記目的を達成すべく、請求項1記載の測定装置は、測定条件のファイル、測定結果のファイル、および記録装置内に設けるディレクトリのうちの1つに対応付けるロングファイルネームが指定されたときに、指定されたロングファイルネームの当該1つに対応付けるショートファイルネームを決定する処理部を備えた測定装置であって、前記処理部は、前記1つに対応付けるショートファイルネームのネーム本体部を構成する本体部文字列の少なくとも一部に、取得した乱数に基づいて生成した文字列を含ませて当該本体部文字列を生成する本体部文字列生成処理と、前記1つに対応付けるショートファイルネームの拡張子を構成する拡張子文字列を、前記指定されたロングファイルネームの拡張子を構成する文字列に基づいて生成する拡張子文字列生成処理とを実行し、前記生成した本体部文字列でネーム本体部が構成されると共に前記生成した拡張子文字列で拡張子が構成されたショートファイルネームの前記1つが、前記指定されたロングファイルネームの前記1つを収容するディレクトリ内に存在しないときに、当該生成した本体部文字列および当該生成した拡張子文字列で構成されるショートファイルネームを、当該指定されたロングファイルネームの当該1つに対応付けるショートファイルネームとして決定する際に、ショートファイルネームを決定する対象の前記1つに対して実行する前記本体部文字列生成処理の実行回数をカウントし、かつ、当該本体部文字列生成処理において、前記取得した乱数に対して当該本体部文字列生成処理の実行回数のカウント値を加算する処理および減算する処理のいずれかの処理を実行して、当該いずれかの処理によって演算された数値を表す文字列を、前記取得した乱数に基づいて生成した文字列として前記本体部文字列を生成すると共に、前記生成した本体部文字列でネーム本体部が構成されたショートファイルネームの前記1つが、前記指定されたロングファイルネームの前記1つを収容するディレクトリ内に存在するときに、前記本体部文字列生成処理および前記拡張子文字列生成処理のうちの少なくとも当該本体部文字列生成処理を再度実行する。
なお、上記の「指定されたとき」は、「ロングファイルネームが新規に指定されたとき」だけでなく、「既存のファイルまたはディレクトリについての改名後のロングファイルネームが指定されたとき」がこれに含まれる。また、上記の「乱数」は、「2進数」、「10進数」および「16進数」のいずれでもよい。
また、請求項2記載の測定装置は、請求項1記載の測定装置において、前記処理部は、前記本体部文字列生成処理において、前記指定されたロングファイルネームのネーム本体部を構成する文字列の一部を前記本体部文字列の少なくとも一部に含ませて当該本体部文字列を生成する。
また、請求項3記載の測定装置は、請求項1記載の測定装置において、前記処理部は、前記本体部文字列生成処理において、前記本体部文字列のすべてを前記取得した乱数に基づいて生成した文字列で構成する。
さらに、請求項4記載の測定装置は、請求項1から3のいずれかに記載の測定装置において、前記処理部は、前記指定されたロングファイルネームのネーム本体部を構成する文字列における上位6バイトの文字列を抽出すると共に当該抽出した文字列に対して「~」および「1」をこの順で付加した第1の文字列を生成する第1の文字列生成処理と、前記指定されたロングファイルネームの拡張子を構成する文字列における上位3バイトの文字列を抽出する文字列抽出処理とを実行し、前記生成した第1の文字列でネーム本体部が構成されると共に前記抽出した文字列で拡張子が構成されたショートファイルネームの前記1つが、前記指定されたロングファイルネームの前記1つを収容するディレクトリ内に存在しないときに、当該生成した第1の文字列および当該抽出した文字列で構成されるショートファイルネームを、当該指定されたロングファイルネームの当該1つに対応付けるショートファイルネームとして決定し、存在するときに、前記本体部文字列生成処理および前記拡張子文字列生成処理を実行する。
また、請求項5記載のショートファイルネーム決定方法は、測定条件のファイル、測定結果のファイル、および記録装置内に設けるディレクトリのうちの1つに対応付けるロングファイルネームが指定されたときに、指定されたロングファイルネームの当該1つに対応付けるショートファイルネームを決定するショートファイルネーム決定方法であって、前記1つに対応付けるショートファイルネームのネーム本体部を構成する本体部文字列の少なくとも一部に、取得した乱数に基づいて生成した文字列を含ませて当該本体部文字列を生成する本体部文字列生成処理と、前記1つに対応付けるショートファイルネームの拡張子を構成する拡張子文字列を、前記指定されたロングファイルネームの拡張子を構成する文字列に基づいて生成する拡張子文字列生成処理とを実行し、前記生成した本体部文字列でネーム本体部が構成されると共に前記生成した拡張子文字列で拡張子が構成されたショートファイルネームの前記1つが、前記指定されたロングファイルネームの前記1つを収容するディレクトリ内に存在しないときに、当該生成した本体部文字列および当該生成した拡張子文字列で構成されるショートファイルネームを、当該指定されたロングファイルネームの当該1つに対応付けるショートファイルネームとして決定する際に、ショートファイルネームを決定する対象の前記1つに対して実行する前記本体部文字列生成処理の実行回数をカウントし、かつ、当該本体部文字列生成処理において、前記取得した乱数に対して当該本体部文字列生成処理の実行回数のカウント値を加算する処理および減算する処理のいずれかの処理を実行して、当該いずれかの処理によって演算された数値を表す文字列を、前記取得した乱数に基づいて生成した文字列として前記本体部文字列を生成すると共に、前記生成した本体部文字列でネーム本体部が構成されたショートファイルネームの前記1つが、前記指定されたロングファイルネームの前記1つを収容するディレクトリ内に存在するときに、前記本体部文字列生成処理および前記拡張子文字列生成処理のうちの少なくとも当該本体部文字列生成処理を再度実行する。
請求項1記載の測定装置、および請求項5記載のショートファイルネーム決定方法では、測定条件のファイル、測定結果のファイル、および記録装置内に設けるディレクトリのうちの「1つ」に対応付けるロングファイルネームが指定されたときに、その「1つ」に対応付けるショートファイルネームのネーム本体部を構成する本体部文字列の少なくとも一部に、取得した乱数に基づいて生成した文字列を含ませて本体部文字列を生成する本体部文字列生成処理と、「1つ」に対応付けるショートファイルネームの拡張子を構成する拡張子文字列を、指定されたロングファイルネームの拡張子を構成する文字列に基づいて生成する拡張子文字列生成処理とを実行し、生成した本体部文字列でネーム本体部が構成されると共に生成した拡張子文字列で拡張子が構成されたショートファイルネームの「1つ」が、指定されたロングファイルネームの「1つ」を収容するディレクトリ内に存在しないときに、生成した本体部文字列および生成した拡張子文字列で構成されるショートファイルネームを、指定されたロングファイルネームの「1つ」に対応付けるショートファイルネームとして決定する際に、ショートファイルネームを決定する対象の「1つ」に対して実行する本体部文字列生成処理の実行回数をカウントし、かつ、本体部文字列生成処理において、取得した乱数に対して本体部文字列生成処理の実行回数のカウント値を加算する処理および減算する処理のいずれかの処理を実行して、いずれかの処理によって演算された数値を表す文字列を、取得した乱数に基づいて生成した文字列として本体部文字列を生成すると共に、生成した本体部文字列でネーム本体部が構成されたショートファイルネームの「1つ」が、指定されたロングファイルネームの「1つ」を収容するディレクトリ内に存在するときに、本体部文字列生成処理および拡張子文字列生成処理のうちの少なくとも本体部文字列生成処理を再度実行する。
したがって、請求項1記載の測定装置、および請求項5記載のショートファイルネーム決定方法によれば、ネーム本体部における上位側を構成する文字列が同じで、かつ拡張子が同じロングファイルネームのファイルや、ネーム本体部における上位側を構成する文字列が同じロングファイルネームのディレクトリが生成されることが多い測定装置においても、ネーム本体部を構成する本体部文字列が、既存のファイルやディレクトリのショートファイルネームと重複せずに生成される可能性が高いため、指定されたロングファイルネームのファイルやディレクトリに対応付けるショートファイルネームを短時間で決定することができる。また、アプリケーションプログラムのコンパイル処理等に際してだけ実行可能な従来の管理方法とは異なり、対応付けるべきロングファイルネームが指定されたときにショートファイルネームを決定するため、新たなファイルや新たなディレクトリの生成時においても、指定されたロングファイルネームのファイルやディレクトリに対応付けるべきショットファイルネームを決定することができると共に、ショートファイルネームを決定するための「ロングファイルネームのリスト」を記憶しないため、測定装置における記憶部の貴重な記憶領域がショートファイルネームの決定のために占有される事態が回避されて、必要十分な容量の記憶部を搭載して測定装置を構成することができる結果、測定装置の製造コストを十分に低減することができる。さらに、従来の変換方法とは異なり、ロングファイルネームを自由に指定することができる。また、例えば、乱数を取得する対象に不具合が生じて、同じ値が乱数として取得された場合であっても、実行回数のカウント値を加算または減算することで、直前に取得した乱数とは相違する値を乱数として取得することができる。
また、請求項2記載の測定装置によれば、本体部文字列生成処理において、指定されたロングファイルネームのネーム本体部を構成する文字列の一部を本体部文字列の少なくとも一部に含ませて本体部文字列を生成することにより、ファイルやディレクトリの内容に応じたロングファイルネームが指定されることで、決定したショートファイルネームのネーム本体部を見たときに、そのファイルやディレクトリの内容を容易に推定することができる。
また、請求項3記載の測定装置によれば、本体部文字列生成処理において、本体部文字列のすべてを取得した乱数に基づいて生成した文字列で構成することにより、ショートファイル名として乱数に基づいて決定し得る本体部文字列の種類の数が、本体部保持列のうちの一部の文字列だけを乱数に基づいて決定するよりも多数となるため、既存のファイルやディレクトリのショートファイルネームと重複するショートファイルネームが生成される可能性が極めて低くなる結果、本体部文字列生成処理を繰り返して実行する頻度や、繰り返し回数を十分に少なくすることができ、ショートファイルネームの決定に要する時間を一層短縮することができる。
さらに、請求項4記載の測定装置では、指定されたロングファイルネームのネーム本体部を構成する文字列における上位6バイトの文字列を抽出すると共に抽出した文字列に対して「~」および「1」をこの順で付加した第1の文字列を生成する第1の文字列生成処理と、指定されたロングファイルネームの拡張子を構成する文字列における上位3バイトの文字列を抽出する文字列抽出処理とを実行し、生成した第1の文字列でネーム本体部が構成されると共に抽出した文字列で拡張子が構成されたショートファイルネームの「1つ」が、指定されたロングファイルネームの「1つ」を収容するディレクトリ内に存在しないときに、生成した第1の文字列および抽出した文字列で構成されるショートファイルネームを、指定されたロングファイルネームの「1つ」に対応付けるショートファイルネームとして決定し、存在するときに、本体部文字列生成処理および拡張子文字列生成処理を実行する。
したがって、請求項4記載の測定装置によれば、ネーム本体部における上位側を構成する文字列が同じで、かつ拡張子が同じロングファイルネームのファイルや、ネーム本体部における上位側を構成する文字列が同じロングファイルネームのディレクトリが生成されたときには、指定されたロングファイルネームのファイルやディレクトリに対応付けるショートファイルネームが、従来方式のショートファイルネームの決定方法に従って決定されたショートファイルネームとなるため、このような場合においては、従来方式のショートファイルネームの決定方法に従って決定されたショートファイルネームに慣れ親しんだ利用者が違和感を覚えることのないショートファイルネームを決定することができる。
以下、測定装置およびショートファイルネーム決定方法の実施の形態について、添付図面を参照して説明する。
測定装置1は、図1に示すように、測定部2、操作部3、表示部4、記録装置5、処理部6および記憶部7を備えて構成されている。測定部2は、処理部6の制御に従い、入力信号Siについての電気的パラメータ(電圧値、電流値および抵抗値など)を測定して、その測定結果(測定値)を測定結果データDsとして処理部6に出力する。操作部3は、測定装置1の動作条件を指示するための各種の操作スイッチを備え、スイッチ操作に応じた操作信号を処理部6に出力する。表示部4は、処理部6の制御に従い、測定装置1の動作条件を設定するための動作条件設定用画面(図示せず)や、測定部2による測定結果を表示するための測定結果表示用画面(図示せず)などを表示する。
記録装置5は、一例として、フラッシュメモリで構成されたリムーバブルメディア(例えば、USBメモリや、メモリーカード)で構成されて、取り外し可能に測定装置1に装着されている。この場合、この測定装置1では、一例として、FAT32に準じたファイルシステムで初期化した記録装置5内に任意のディレクトリを設けて、測定部2による測定処理の条件(「測定条件」の一例)を記録した測定条件データD0のファイルや、測定部2による測定処理の結果(「測定結果」の一例)を記録した測定結果データD1のファイルなどの各種のファイルを、この記録装置5内の任意のディレクトリに収容して記録する構成が採用されている。なお、上記の記録装置5のようなリムーバブルな記録装置に代えて、測定装置1に対して固定的に配設された各種の「記録装置」に対して測定条件データD0や測定結果データD1のファイルを記録する構成を採用することもできる。
処理部6は、測定装置1を総括的に制御する。具体的には、処理部6は、測定条件データD0に従って測定部2を制御して測定処理を実行させる。また、処理部6は、測定部2から出力される測定結果データDsを記憶部7に順次記憶させて、記憶部7内に測定結果データD1を生成する。さらに、処理部6は、操作部3のスイッチ操作によって、測定条件データD0や測定結果データD1のファイル、および記録装置5内に設けるディレクトリ(「測定条件のファイル、測定結果のファイル、および記録装置内に設けるディレクトリのうちの1つ」の一例)に対応付けるロングファイルネームが指定されたときに、図3に示すショートファイルネーム決定処理10を実行して、指定されたロングファイルネームのファイルやディレクトリに対応付けるショートファイルネームを決定する。この処理部6は、測定部2による測定処理の開始、一時停止、再開および終了の各タイミングを特定したり、記録装置5に記録させる測定条件データD0や測定結果データD1のファイルに付与するタイムスタンプを取得したりするために、図示しないタイマーを備えて構成されている。記憶部7は、測定部2から出力された測定結果データDs、および各測定結果データDsが追記された(測定順に連結された)測定結果データD1や、処理部6の演算結果などを一時的に記憶する。
この場合、この測定装置1では、ロングファイルネームによるファイル管理に対応したファイル管理システムが採用されている。したがって、この測定装置1では、上記の測定条件データD0や測定結果データD1のファイルのファイルネームや、これらのファイルを収容するディレクトリのディレクトリネーム(属性が「ディレクトリ」のファイルのファイルネーム)に対して、ネーム本体部を構成する文字列と、拡張子を構成する文字列とを合わせて255バイト(1バイト文字で255文字)までの任意の文字列を対応付けて管理することが可能となっている。
次に、測定装置1におけるファイルやディレクトリの管理方法について、添付図面を参照して説明する。なお、本例では、一例として、外部装置において生成された測定条件データD0のファイルが記録装置5に記録されているものとし、測定条件の設定操作に関する説明や、設定操作による測定条件データD0の生成処理に関する説明を省略する。
この測定装置1では、処理部6が、測定条件データD0に従って測定部2を制御して測定処理を実行させる。これに応じて、測定部2は、入力信号Siについての電気的パラメータを測定して、その測定結果データDsを処理部6に出力する。一方、処理部6は、出力された測定結果データDsを記憶部7に順次記憶させると共に、この測定結果データDsに対応する測定結果を表示部4に順次表示させる。また、処理部6は、測定条件データD0によって規定された測定処理の終了条件が満たされたとき(例えば、規定された終了時刻が到来したとき)に、測定部2を制御して測定処理を終了させる。これにより、一連の測定処理の測定結果データDsを追記した(測定順に連結された)測定結果データD1が記憶部7内に生成される。
一方、一例として、上記の測定処理が終了したときに、処理部6は、記憶部7内に記憶されている測定結果データD1のファイルを、記録装置5のいずれのディレクトリに、どのようなファイルネームで保存するかを指定させるための表示画面を表示部4に表示させる(図示せず)。これに応じて、利用者は、操作部3を操作して、一連の測定処理によって生成された測定結果データD1のファイルを保存すべきディレクトリのディレクトリネーム、および測定結果データD1のファイルのファイルネームを指定する。この際に、測定結果データD1のファイルのファイルネームとして、ネーム本体部を構成する文字列が8バイト以内で、かつ、拡張子を構成する文字列が3バイト以内のファイルネームが指定されたとき(ショートファイルネームだけに対応するファイル管理システムにおいて管理可能なファイルネームを別途決定する必要がないとき)には、処理部6は、指定されたファイルネームを、その測定結果データD1のファイルに対応付けるファイルネームとして決定して、FATの情報に記録する。
一方、測定結果データD1のファイルのファイルネームとして、ネーム本体部を構成する文字列が8バイトを超えるファイルネーム、および、拡張子を構成する文字列が3バイトを超えるファイルネームのいずれかが指定されたとき(ショートファイルネームだけに対応するファイル管理システムにおいて管理することができないロングファイルネームが指定されたとき)には、処理部6は、指定されたファイルネームを、その測定結果データD1のファイルに対応付けるロングファイルネームとして決定すると共に、図3に示すショートファイルネーム決定処理10を開始する。このショートファイルネーム決定処理10では、処理部6は、まず、後述する「取得した乱数に対する実行回数のカウント値の加算」との処理(ステップ15の処理)において使用する「実行回数」のカウント値を「1」にリセットする(ステップ11)。
次いで、処理部6は、従来方式のショートファイルネームの決定方法に従ってショートファイルネームを生成する(ステップ12)。具体的には、処理部6は、まず、指定されたロングファイルネームに拡張文字が存在する場合には、この拡張文字を「_」に変換し、指定されたロングファイルネームのネーム本体部を構成する文字列(または、拡張文字を「_」に変換した文字列)のうちのスペースを除く上位6バイトの文字列(図2参照)を抽出し、抽出した文字列に対して「~」および「1」をこの順で付加した文字列(「第1の文字列」の一例)を生成する処理(「第1の文字列生成処理」の一例)を実行し、生成した文字列をショートファイルネームのネーム本体部を構成する文字列とする。次いで、処理部6は、指定されたロングファイルネームにおける拡張子を構成する文字列の上位3バイトの文字列(図2参照)を抽出する処理(「文字列抽出処理」の一例)を実行し、抽出した文字列をショートファイルネームの拡張子を構成する文字列とする。これにより、従来方式によるショートファイルネームの生成が完了する。
より具体的には、一例として、「ABCDEFGHIJKLMN.abcd」とのロングファイルネームが指定されたときに、処理部6は、「ABCDEFGHIJKLMN」との文字列のうちの上位6バイトの「ABCDEF」との文字列を抽出すると共に、抽出した文字列に「~」および「1」をこの順で付加して「ABCDEF~1」との文字列を生成する。次いで、「abcd」との文字列のうちの上位3バイトの「abc」との文字列を抽出する。続いて、処理部6は、上記の処理によって生成した「ABCDEF~1」との文字列をショートファイルネームのネーム本体部を構成する文字列とし、かつ、上記の処理によって抽出した「abc」との文字列をショートファイルネームの拡張子を構成する文字列とする。これにより、「ABCDEF~1.abc」とのショートファイルネームが生成される。
次いで、処理部6は、FATの情報を検索することにより、指定されたロングファイルネームの測定結果データD1のファイルを収容するディレクトリ内に、上記のような従来方式のショートファイルネームの決定方法に従って生成したショートファイルネーム(生成した本体部文字列でネーム本体部が構成されると共に生成した拡張子文字列で拡張子が構成されたショートファイルネーム)のファイルが存在するか否か(上記の処理によって生成したショートファイルネームが既存のファイルやディレクトリと重複するか否か)を判別する(ステップ13)。この際に、生成したショートファイルネーム(この例では、「ABCDEF~1.abc」)のファイルが対象のディレクトリ内に存在しないときには、処理部6は、上記の処理によって生成したショートファイルネーム(従来方式のショートファイルネームの決定方法に従って生成したショートファイルネーム)を、指定されたロングファイルネームの測定結果データD1のファイルに対応付けるショートファイルネームとして確定して(ステップ14)、このショートファイルネーム決定処理10を終了する。
一方、生成したショートファイルネームのファイルが対象のディレクトリ内に存在するときには(ステップ13)、処理部6は、その時点(ショートファイルネームが重複するファイルが存在すると判別した時点)におけるタイマーのレジスタの値を取得し、取得した値を10進数に変換すると共に、変換した数における下5桁を抽出する(「乱数の取得」:ステップ15)。この場合、前述したタイマーのレジスタの値における最下位の桁は、「n秒」〜「μ秒」に対応する非常に短い時間間隔に対応して変化する値となっている。したがって、任意の時点においてこの値を取得して10進数に変換して下5桁を抽出することで、「00000)から「99999」までの範囲内の100000種類の数のうちのいずれかの数がランダムに取得される。このため、取得された5桁の数は、複数回のショートファイルネーム決定処理10の実行したときに、その実行順序に対して順序性を有していない非順序数(乱数)となる。
続いて、処理部6は、上記の処理によって抽出した5桁の数(一例として、「53786」との数)に対して、前述した「実行回数」のカウント値(この時点においては「1」)を加算する(ステップ16)。この処理により、本例では、「53786」に「1」を加算した「53787」との数が生成される。なお、前述した抽出処理によって「99999」との数が抽出されて、この数に対して「1」を加算したことで「100000」との数が生成されたときには、生成された数を5桁に変換して「00000」とする。また、一例として、前述した抽出処理によって「99998」との数が抽出され、後述するようにして一連の処理が繰り替えされて、「実行回数」のカウント値が「3」となっている場合には、カウント値を加算することによって「100001」との数が生成されるが、この例においては、生成された数を5桁に変換して「00001」とする。なお、本例では、抽出した5桁の数に対して「実行回数」のカウント値を加算しているが、抽出した5桁の数から「実行回数」のカウント値を減算してもよい。
次いで、処理部6は、生成した数を、上位側に「0」以外の数が存在しない「0」を除いて、「0」から「99999」までの範囲内の1バイト文字の数字に変換する(ステップ17)。例えば、生成した数が「00102」の場合には、「102」との数字の文字列が生成され、「00003」の場合には、「3」との数字の文字列が生成される。この場合、本例では、「53787」との数に応じて「53787」との数字の文字列が生成される。なお、この際に、上位側に「0」以外の数が存在しない「0」を除くことなく、「00000」から「99999」までの範囲内の1バイト文字の数字に変換してもよい。続いて、処理部6は、変換した数字、および指定されたロングファイルネームのネーム本体部を構成する文字列に基づいて、ショートファイルネームのネーム本体部を構成する文字列を生成する(「本体部文字列生成処理」の一例:ステップ18)。
具体的には、処理部6は、まず、上記の処理において生成した数字の文字列の桁数に「1」を加算した数(5桁の本例では、「5」に「1」を加算した「6」)を、ショートファイルネームのネーム本体部を構成する文字数の上限である「8」から減じた数(本例では、「8」から「6」を減じた「2」)を特定する。次いで、処理部6は、指定されたロングファイルネームにネーム本体部を構成する文字列のうちの上位Nバイト(Nは、直前の処理において特定した数:本例では「N=2」)分の文字列を抽出する。続いて、抽出した文字列(本例では、「ABCDEFGHIJKLMN」との文字列のうちの上位2バイトの「AB」との文字列)に、「~」と、上記の処理によって生成した数字の文字列(本例では、「53787」との文字列)とをこの順で付加した文字列を生成する。これにより、指定されたロングファイルネームのネーム本体部を構成する文字列の一部と、タイマーのレジスタの値に基づいて生成されたランダムな数字とが「~」で連結された文字列(本例では、「AB~53787」との文字列)が、ショートファイルネームのネーム本体部を構成する文字列として生成される。
次いで、処理部6は、指定されたロングファイルネームにおける拡張子を構成する文字列に基づいて、ショートファイルネームの拡張子を構成する文字列を生成する(「拡張子文字列生成処理」の一例:ステップ19)。具体的には、本例では、指定されたロングファイルネームにおける拡張子を構成する「abcd」との文字列における上位3バイトの「abc」との文字列を抽出し、抽出した文字列を、ショートファイルネームの拡張子を構成する文字列とする。続いて、処理部6は、上記の各処理によってネーム本体部を構成する文字列として生成した文字列、および拡張子を構成する文字列として抽出した文字列に基づき、指定されたロングファイルネームのファイルに対応付けるショートファイルネーム(本例では、「AB~53787.abc」とのショートファイルネーム)を仮決定すると共に、前述した「実行回数」のカウント値(この時点においては「1」)に対して「1」を加算する(「本体部文字列生成処理の実行回数をカウントし」との処理の一例:ステップ20)。
次いで、処理部6は、FATの情報を検索することにより、指定されたロングファイルネームの測定結果データD1のファイルを収容するディレクトリ内に、仮決定したショートファイルネームのファイルが存在するか否か(仮決定したショートファイルネームが既存のファイルやディレクトリと重複するか否か)を判別する(ステップ13)。この際に、仮決定したショートファイルネームのファイル(この例では、「AB~53787.abc」とのショートファイルネームのファイル)が対象のディレクトリ内に存在しないときには、処理部6は、上記の処理によって仮決定したショートファイルネームを、指定されたロングファイルネームの測定結果データD1のファイルに対応付けるショートファイルネームとして確定して(ステップ14)、このショートファイルネーム決定処理10を終了する。
この場合、このショートファイルネーム決定処理10では、タイマーのレジスタの値を10進数に変換した5桁の数(「乱数」の一例)に、「実行回数」のカウント値を加算した数を1バイト文字に変換した文字列をショートファイルネームのネーム本体部の一部に含ませている。したがって、仮決定したショートファイルネームのファイルが同一のディレクトリ内に存在する可能性が十分に低くなっている。しかしながら、極く希に、仮決定したショートファイルネームのファイルが同一のディレクトリ内に存在する場合もあり、このような場合には、処理部6は、上記したようにショートファイルネームを仮決定するまでの一連の処理を再び実行する。
具体的には、処理部6は、タイマーのレジスタの値を10進数に変換した5桁の数(乱数)の取得(ステップ15)、取得した5桁の数に対する「実行回数」のカウント値の加算(ステップ16)、加算した数の1バイト文字の数字への変換(ステップ17)、変換した数字と指定されたロングファイルネームのネーム本体部を構成する文字列とに基づくショートファイルネームのネーム本体部を構成する文字列の生成(ステップ18)、指定されたロングファイルネームにおける拡張子を構成する文字列に基づくショートファイルネームの拡張子を構成する文字列の生成(ステップ19)、および指定されたロングファイルネームのファイルに対応付けるショートファイルネームの仮決定と「実行回数」のカウント値に対する「1」の加算(ステップ20)とをこの順で実行する。また、処理部6は、指定されたロングファイルネームの測定結果データD1のファイルを収容するディレクトリ内に、仮決定したショートファイルネームのファイルが存在するか否かを判別し(ステップ13)、存在しないときには、仮決定したショートファイルネームを、指定されたロングファイルネームの測定結果データD1のファイルに対応付けるショートファイルネームとして確定して(ステップ14)、このショートファイルネーム決定処理10を終了する。
この場合、FAT32に準じたファイルシステムで記録装置5を初期化している本例では、記録装置5内に設けた1つのディレクトリ内に収容できるファイルおよびサブディレクトリの合計数の上限が約65000となっている。また、本例では、上記したように、ショートファイルネームの仮決定に際して、取得した5桁の数(乱数)に、「実行回数」のカウント値を加算した数を1バイト文字に変換した「0」から「99999」までの範囲内の100000種類の文字列のうちのいずれかがショートファイルネームのネーム本体部の一部に含められている。したがって、収容し得る数の上限に近い数のファイルやディレクトリが既に存在する場合においても、約1/3の確率で、既存のファイルやディレクトリとは相違するショートファイルネームが仮決定される。言い換えれば、収容し得る数の上限に近い数のファイルやディレクトリが既に存在する場合においても、確率的には、上記の一連の処理を3回繰り返すことで、既存のファイルやディレクトリとは相違するショートファイルネームが決定されることとなる。
また、1つのディレクトリ内に収容できるファイルおよびサブディレクトリの合計数の上限が約65000で、仮決定されるショートファイルネームに含ませる数の種類が100000種類の本例では、1つのディレクトリ内に収容し得る最大数のファイルやディレクトリのすべてについて、ショートファイルネームを重複させることなく決定することが可能となっている。なお、測定結果データD1のファイルについてのショートファイルネームを決定する例について説明したが、この測定装置1では、記録装置5内に新たなディレクトリを設けるとき、操作部3の操作によって設定された測定条件についての測定条件データD0を記録装置5に保存するとき、および記録装置5内に設けられた既存のディレクトリのディレクトリネームや記録装置5に記録されている測定条件データD0等のファイル名を変更するときにも、上記した一連の処理と同様の処理が実行される。
このように、この測定装置1、および測定装置1によるショートファイルネーム決定方法(ショートファイルネーム決定処理10)では、測定条件データD0のファイル、測定結果データD1のファイル、および記録装置5内に設けるディレクトリのうちの「1つ」に対応付けるロングファイルネームが指定されたときに、その「1つ」に対応付けるショートファイルネームのネーム本体部を構成する本体部文字列の少なくとも一部に、取得した「乱数」に基づいて生成した文字列(本例では、5桁の数を1バイト文字に変換した文字列)を含ませて本体部文字列を生成する処理(本体部文字列生成処理:ステップ15〜18)と、「1つ」に対応付けるショートファイルネームの拡張子を構成する拡張子文字列を、指定されたロングファイルネームの拡張子を構成する文字列に基づいて生成する処理(拡張子文字列生成処理:ステップ19)とを実行し、生成した本体部文字列でネーム本体部が構成されると共に生成した拡張子文字列で拡張子が構成されたショートファイルネームの「1つ」が、指定されたロングファイルネームの「1つ」を収容するディレクトリ内に存在しないときに(ステップ13)、生成した本体部文字列および生成した拡張子文字列で構成されるショートファイルネームを、指定されたロングファイルネームの「1つ」に対応付けるショートファイルネームとして決定する(ステップ14)。
したがって、この測定装置1、および測定装置1によるショートファイルネーム決定方法によれば、ネーム本体部における上位側を構成する文字列が同じで、かつ拡張子が同じロングファイルネームのファイルや、ネーム本体部における上位側を構成する文字列が同じロングファイルネームのディレクトリが生成されることが多い測定装置1においても、ネーム本体部を構成する本体部文字列が、既存のファイルやディレクトリのショートファイルネームと重複せずに生成される可能性が高いため、指定されたロングファイルネームのファイルやディレクトリに対応付けるショートファイルネームを短時間で決定することができる。また、アプリケーションプログラムのコンパイル処理等に際してだけ実行可能な従来の管理方法とは異なり、対応付けるべきロングファイルネームが指定されたときにショートファイルネームを決定するため、新たなファイルや新たなディレクトリの生成時においても、指定されたロングファイルネームのファイルやディレクトリに対応付けるべきショットファイルネームを決定することができると共に、ショートファイルネームを決定するための「ロングファイルネームのリスト」を記憶しないため、測定装置1における記憶部7の貴重な記憶領域がショートファイルネームの決定のために占有される事態が回避されて、必要十分な容量の記憶部7を搭載して測定装置1を構成することができる結果、測定装置1の製造コストを十分に低減することができる。さらに、従来の変換方法とは異なり、ロングファイルネームを自由に指定することができる。
また、この測定装置1および測定装置1によるショートファイルネーム決定方法によれば、上記の本体部文字列生成処理において、指定されたロングファイルネームのネーム本体部を構成する文字列の一部を本体部文字列の少なくとも一部に含ませて本体部文字列を生成することにより、ファイルやディレクトリの内容に応じたロングファイルネームが指定されることで、決定したショートファイルネームのネーム本体部を見たときに、そのファイルやディレクトリの内容を容易に推定することができる。
さらに、この測定装置1および測定装置1によるショートファイルネーム決定方法では、ショートファイルネームを決定する対象の「1つ」に対して実行する本体部文字列生成処理の「実行回数」をカウントし(ステップ20)、かつ、本体部文字列生成処理において、取得した乱数に対して「実行回数」のカウント値を加算する処理および減算する処理のいずれかの処理(本例では、加算する処理)を実行して(ステップ16)、いずれかの処理によって演算された数値を表す文字列を、「取得した乱数に基づいて生成した文字列」として本体部文字列を生成すると共に(ステップ17,18)、生成した本体部文字列でネーム本体部が構成されたショートファイルネームの「1つ」が、指定されたロングファイルネームの「1つ」を収容するディレクトリ内に存在するときに(ステップ13)、本体部文字列生成処理および拡張子文字列生成処理のうちの少なくとも本体部文字列生成処理を再度実行する(ステップ15〜18)。
したがって、この測定装置1および測定装置1によるショートファイルネーム決定方法によれば、例えば、「乱数」を取得する対象(本例では、処理部6が備えているタイマー)に不具合が生じて(例えば、タイマーのカウント処理が停止して)、同じ値が「乱数」として取得された場合であっても、「実行回数」のカウント値を加算(または減算)することで、直前に取得した「乱数」とは相違する値を「乱数」として取得することができる。
さらに、この測定装置1および測定装置1によるショートファイルネーム決定方法では、指定されたロングファイルネームのネーム本体部を構成する文字列における上位6バイトの文字列を抽出すると共に抽出した文字列に対して「~」および「1」をこの順で付加した第1の文字列を生成する第1の文字列生成処理と、指定されたロングファイルネームの拡張子を構成する文字列における上位3バイトの文字列を抽出する文字列抽出処理とを実行し(ステップ12)、生成した第1の文字列でネーム本体部が構成されると共に抽出した文字列で拡張子が構成されたショートファイルネームの「1つ」が、指定されたロングファイルネームの「1つ」を収容するディレクトリ内に存在しないときに(ステップ13)、生成した第1の文字列および抽出した文字列で構成されるショートファイルネームを、指定されたロングファイルネームの「1つ」に対応付けるショートファイルネームとして決定し(ステップ14)、存在するときに(ステップ13)、本体部文字列生成処理および拡張子文字列生成処理を実行する(ステップ15〜19)。
したがって、この測定装置1および測定装置1によるショートファイルネーム決定方法によれば、ネーム本体部における上位側を構成する文字列が同じで、かつ拡張子が同じロングファイルネームのファイルや、ネーム本体部における上位側を構成する文字列が同じロングファイルネームのディレクトリが生成されたときには、指定されたロングファイルネームのファイルやディレクトリに対応付けるショートファイルネームが、従来方式のショートファイルネームの決定方法に従って決定されたショートファイルネームとなるため、このような場合においては、従来方式のショートファイルネームの決定方法に従って決定されたショートファイルネームに慣れ親しんだ利用者が違和感を覚えることのないショートファイルネームを決定することができる。
なお、「測定装置」の構成、および「ショートファイルネーム決定方法」は、上記の測定装置1の構成、および測定装置1におけるショートファイルネーム決定方法(ショートファイルネーム決定処理10)に限定されない。例えば、処理部6が備えているタイマーのレジスタの値を「乱数」として取得する例を挙げて説明したが、「乱数」はこの例に限定されず、上記のショートファイルネーム決定処理10におけるステップ18の処理(本体部文字列生成処理)を繰り返して実行する際に、その実行順序に対して順序性を有していないランダムな数である限り、任意の「乱数」を取得して使用することができる。具体的には、処理部6以外の構成要素が備えているタイマーのレジスタの値を「乱数」として取得したり、乱数発生器から取得した「乱数」(または、乱数発生プログラムの実行によって処理部6内において生成される「乱数」)を使用したりすることができる。また、指定されたロングファイルネームの文字コード列のハッシュ値(任意のコード長に変換した値)を「乱数」として使用することもできる。
また、上記のショートファイルネーム決定処理10では、「乱数」として取得した5桁の数に基づいて「0」から「99999」までの100000種類の文字列のうちの1つを生成してショートファイルネームのネーム本体部を構成する文字列の一部に含ませているが、ショートファイルネームのネーム本体部を構成する文字列に含ませる文字列の種類の数は、これに限定されない。具体的には、1つのディレクトリ内に収容するファイルやディレクトリの数が、FAT32で初期化された「記録装置」の上限である約65000よりも十分に少ない数に規定されている「測定装置」においては、「乱数に基づいて生成した文字列」の種類の数が100000種類よりも少ない数であっても、ショートファイルネームを重複させずに決定することができる。したがって、このような場合には、例えば、「0」から「9999」までの10000種類の文字列のうちの1つ、または、「0」から「999」までの1000種類の文字列のうちの1つを生成してショートファイルネームのネーム本体部を構成する文字列の一部に含ませる構成および方法を採用することができる。
また、本体部文字列生成処理において、本体部文字列のすべて(すなわち、最大8バイト分の文字列)を、「取得した乱数に基づいて生成した文字列」で構成することもできる。具体的には、一例として、「乱数に基づいて生成した文字列」として、10進数の数字を採用する場合において、ショートファイルネームのネーム本体部を構成する文字列を、「乱数」に基づいて生成した「0(または、「00000000」)」から「99999999」までの100000000種類の文字列のうちのいずれかに決定する。このような構成および方法を採用することにより、ショートファイル名として「乱数」に基づいて決定し得る本体部文字列の種類の数が、本体部保持列のうちの一部の文字列だけを「乱数」に基づいて決定するよりも多数となるため、既存のファイルやディレクトリのショートファイルネームと重複するショートファイルネームが生成される可能性が極めて低くなる結果、「本体部文字列生成処理」を繰り返して実行する頻度や、繰り返し回数を十分に少なくすることができ、ショートファイルネームの決定に要する時間を一層短縮することができる。
さらに、上記のショートファイルネーム決定処理10では、ステップ15〜20の処理によって仮決定したショートファイルネームが、既存のファイルやディレクトリのショートファイルネームと重複するときに、ステップ15〜18の処理(本体部文字列生成処理)、および、ステップ19の処理(拡張子文字列生成処理)の双方を繰り返して実行しているが、ショートファイルネームが重複するときに、ステップ15〜18の処理だけを繰り返して実行する(本体部文字列生成処理および拡張子文字列生成処理のうちの本体部文字列生成処理だけを実行する:すなわち、ステップ19の拡張子文字列生成処理を実行しない)方法を採用することもできる。
また、上記のショートファイルネーム決定処理10では、従来方式のショートファイルネームの決定方法に従って決定されたショートファイルネームのファイルやディレクトリが存在しないときに、この従来方式のショートファイルネームの決定方法に従って決定されたショートファイルネームを、指定されたロングファイルネームのファイルやディレクトリに対応付けるショートファイルネームとして決定しているが、従来方式のショートファイルネームの決定方法に従ってショートファイルネームを決定することなく(ショートファイルネーム決定処理10におけるステップ12、および最初のステップ13の両処理を実行せずに)、「本体部文字列生成処理」および「拡張子文字列生成処理」を直ちに実行する構成および方法を採用することもできる。