(57)【要約】【課題】最終的には余剰領域が発生し、レコードを追加する際などにはメモリ領域を効率的に利用することができるようになる携帯可能電子装置、携帯可能電子装置のファイル管理方法およびＩＣカードを提供する。【解決手段】データを保持する不揮発性メモリを有し、このメモリには少なくとも１つのファイルが設定され、このファイルには可変長構造のレコードがその作成された順番に順次格納されていて、外部から入力されるコマンドを解釈して実行することで、前記ファイルに対しレコード単位にアクセスするＩＣカードにおいて、可変長構造のレコードが元々のレコード長よりも短く書換えられた場合、次のレコードアクセス(レコード書込み)時に、その短くなった長さ分、アクセスされたレコードのアドレス（空いた領域）を詰めて配置し直す。【選択図】      図７
2010073004.tif 000002
【特許請求の範囲】
【請求項１】
メモリを有し、このメモリには少なくとも１つのファイルが設定され、このファイルには可変長構造のレコードがその作成された順番に順次格納されていて、外部から入力されるコマンドを解釈して実行することで、前記ファイルに対しレコード単位にアクセスする携帯可能電子装置であって、
前記ファイル内のレコードが現在のレコード長よりも短いレコード長に書換えられた場合、次のレコードアクセス時に前記短くなった長さの領域分、当該アクセス対象のレコードをそのアドレスを詰めて配置し直す手段を具備したことを特徴とする携帯可能電子装置。
【請求項２】
メモリを有し、このメモリには少なくとも１つのファイルが設定され、このファイルには可変長構造のレコードがその作成された順番に順次格納されていて、外部から入力されるコマンドを解釈して実行することで、前記ファイルに対しレコード単位にアクセスする携帯可能電子装置であって、
外部から入力されるコマンドに基づき前記ファイル内のレコードを書換える第１の手段と、
この第１の手段によりレコードを書換えた際、そのレコード長が書換える前よりも短くなった場合、その短くなった長さを書換え変更長として保持しておく第２の手段と、
前記第１の手段によるレコードの書換え後、外部から入力されるコマンドが書込みコマンドの場合、前記保持してある書換え変更長が初期値であるか否かを判定する第３の手段と、
この第３の手段による判定の結果、前記保持してある書換え変更長が初期値である場合は何も処理を行なわず、前記保持してある書換え変更長が初期値でない場合、当該書換え変更長の長さの領域分、当該書込み対象のレコードをそのアドレスを詰めて配置し直す第４の手段と、
この第４の手段による処理の後、当該書込み対象のレコードに対し前記書込みコマンドの処理を実行する第５の手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項３】
メモリを有し、このメモリには少なくとも１つのファイルが設定され、このファイルには可変長構造のレコードがその作成された順番に順次格納されていて、外部から入力されるコマンドを解釈して実行することで、前記ファイルに対しレコード単位にアクセスする携帯可能電子装置のファイル管理方法であって、
前記ファイル内のレコードが現在のレコード長よりも短いレコード長に書換えられた場合、次のレコードアクセス時に前記短くなった長さの領域分、当該アクセス対象のレコードをそのアドレスを詰めて配置し直すことを特徴とする携帯可能電子装置のファイル管理方法。
【請求項４】
メモリを有し、このメモリには少なくとも１つのファイルが設定され、このファイルには可変長構造のレコードがその作成された順番に順次格納されていて、外部から入力されるコマンドを解釈して実行することで、前記ファイルに対しレコード単位にアクセスする携帯可能電子装置のファイル管理方法であって、
外部から入力されるコマンドに基づき前記ファイル内のレコードを書換える第１のステップと、
この第１のステップによりレコードを書換えた際、そのレコード長が書換える前よりも短くなった場合、その短くなった長さを書換え変更長として保持しておく第２のステップと、
前記第１のステップによるレコードの書換え後、外部から入力されるコマンドが書込みコマンドの場合、前記保持してある書換え変更長が初期値であるか否かを判定する第３のステップと、
この第３のステップによる判定の結果、前記保持してある書換え変更長が初期値である場合は何も処理を行なわず、前記保持してある書換え変更長が初期値でない場合、当該書換え変更長の長さの領域分、当該書込み対象のレコードをそのアドレスを詰めて配置し直す第４のステップと、
この第４のステップによる処理の後、当該書込み対象のレコードに対し前記書込みコマンドの処理を実行する第５のステップと、
を具備したことを特徴とする携帯可能電子装置のファイル管理方法。
【請求項５】
メモリを有し、このメモリには少なくとも１つのファイルが設定され、このファイルには可変長構造のレコードがその作成された順番に順次格納されていて、外部から入力されるコマンドを解釈して実行することで、前記ファイルに対しレコード単位にアクセスするＩＣカードであって、
外部から入力されるコマンドに基づき前記ファイル内のレコードを書換える第１の手段と、この第１の手段によりレコードを書換えた際、そのレコード長が書換える前よりも短くなった場合、その短くなった長さを書換え変更長として保持しておく第２の手段と、前記第１の手段によるレコードの書換え後、外部から入力されるコマンドが書込みコマンドの場合、前記保持してある書換え変更長が初期値であるか否かを判定する第３の手段と、この第３の手段による判定の結果、前記保持してある書換え変更長が初期値である場合は何も処理を行なわず、前記保持してある書換え変更長が初期値でない場合、当該書換え変更長の長さの領域分、当該書込み対象のレコードをそのアドレスを詰めて配置し直す第４の手段と、この第４の手段による処理の後、当該書込み対象のレコードに対し前記書込みコマンドの処理を実行する第５の手段とを有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、データを保持する不揮発性メモリを有し、このメモリには少なくとも１つのファイルが設定され、このファイルには可変長構造のレコードがその作成された順番に順次格納されていて、外部から入力されるコマンド（命令）を解釈して実行することで、前記ファイルに対しレコード単位にアクセスする携帯可能電子装置、携帯可能電子装置のファイル管理方法およびＩＣカードに関する。
【背景技術】
【０００２】
この種のＩＣカードにあっては、その内部の不揮発性メモリに保持するデータについて、デディケイトファイル（ＤＦ：Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ）やエレメンタリファイル（ＥＦ：Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ、以降、単にファイルともいう）など、ファイルを単位としたファイル管理を行なう方法が一般的である（たとえば、特許文献１参照）。
【０００３】
また、このようなＩＣカードでは、特定の規格（たとえば、非特許文献１参照）に基づいて動作するようになっている。ＩＣカードの国際標準化規格であるＩＳＯ／ＩＥＣ７８１６−４では、データを記憶するためのファイル（ＥＦ）の構造および形式が規定されている。
【０００４】
また、ＩＳＯ／ＩＥＣ７８１６−４では、ＩＣカードにおけるファイル内のデータ構造として、ファイル内にデータを記憶する複数のレコード（固定長レコード、可変長レコード）を有する構造（レコード構造）が規定されている。さらに、ＩＳＯ／ＩＥＣ７８１６−４では、上記のようなレコード構造のファイルへのアクセスを要求するコマンドも規定されている。
【特許文献１】特許第２６９５８５７号公報
【非特許文献１】国際標準化規格  ＩＳＯ／ＩＥＣ７８１６−４
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＩＳＯ／ＩＥＣ７８１６−４による規格では、可変長構造のレコードが複数格納されたファイルにおいて、あるレコードを書換えた際、そのレコード長が現在の長さよりも短くなった場合、短くなった領域はそのままの状態となる。このため、メモリ領域を効率的に利用することができないという問題がある。
【０００６】
そこで、本発明は、最終的には余剰領域が発生し、レコードを追加する際などにはメモリ領域を効率的に利用することができるようになる携帯可能電子装置、携帯可能電子装置のファイル管理方法およびＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の携帯可能電子装置は、メモリを有し、このメモリには少なくとも１つのファイルが設定され、このファイルには可変長構造のレコードがその作成された順番に順次格納されていて、外部から入力されるコマンドを解釈して実行することで、前記ファイルに対しレコード単位にアクセスする携帯可能電子装置であって、前記ファイル内のレコードが現在のレコード長よりも短いレコード長に書換えられた場合、次のレコードアクセス時に前記短くなった長さの領域分、当該アクセス対象のレコードをそのアドレスを詰めて配置し直す手段を具備している。
【０００８】
本発明の携帯可能電子装置のファイル管理方法は、メモリを有し、このメモリには少なくとも１つのファイルが設定され、このファイルには可変長構造のレコードがその作成された順番に順次格納されていて、外部から入力されるコマンドを解釈して実行することで、前記ファイルに対しレコード単位にアクセスする携帯可能電子装置のファイル管理方法であって、前記ファイル内のレコードが現在のレコード長よりも短いレコード長に書換えられた場合、次のレコードアクセス時に前記短くなった長さの領域分、当該アクセス対象のレコードをそのアドレスを詰めて配置し直すことを特徴とする。
【０００９】
本発明のＩＣカードは、メモリを有し、このメモリには少なくとも１つのファイルが設定され、このファイルには可変長構造のレコードがその作成された順番に順次格納されていて、外部から入力されるコマンドを解釈して実行することで、前記ファイルに対しレコード単位にアクセスするＩＣカードであって、外部から入力されるコマンドに基づき前記ファイル内のレコードを書換える第１の手段と、この第１の手段によりレコードを書換えた際、そのレコード長が書換える前よりも短くなった場合、その短くなった長さを書換え変更長として保持しておく第２の手段と、前記第１の手段によるレコードの書換え後、外部から入力されるコマンドが書込みコマンドの場合、前記保持してある書換え変更長が初期値であるか否かを判定する第３の手段と、この第３の手段による判定の結果、前記保持してある書換え変更長が初期値である場合は何も処理を行なわず、前記保持してある書換え変更長が初期値でない場合、当該書換え変更長の長さの領域分、当該書込み対象のレコードをそのアドレスを詰めて配置し直す第４の手段と、この第４の手段による処理の後、当該書込み対象のレコードに対し前記書込みコマンドの処理を実行する第５の手段とを有したＩＣモジュールと、このＩＣモジュールを収納したＩＣカード本体とを具備している。
【発明の効果】
【００１０】
本発明によれば、最終的には余剰領域が発生し、レコードを追加する際などにはメモリ領域を効率的に利用することができるようになる携帯可能電子装置、携帯可能電子装置のファイル管理方法およびＩＣカードを提供できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。  
図１は、本発明に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すものである。このＩＣカードシステムは、ＩＣカード１０１を外部装置としてのカードリーダ・ライタ１０２を介して端末装置１０３と接続可能にするとともに、端末装置１０３にキーボード１０４、ＣＲＴ表示部１０５、プリンタ１０６を接続して構成される。
【００１２】
ＩＣカード１０１は、カードリーダ・ライタ１０２からの電源供給により動作可能な状態となり、カードリーダ・ライタ１０２から供給されるコマンドに応じて種々の処理を実行する。カードリーダ・ライタ１０２は、ＩＣカード１０１に対し動作電源を供給するとともに種々の処理を要求するコマンドを供給する。
【００１３】
端末装置１０３は、たとえば、パーソナルコンピュータなどにより構成されていて、図示しないメモリに記憶されている各種制御プログラムを実行することにより、各種の処理を実行するとともに、カードリーダ・ライタ１０２を介してＩＣカード１０１との間でデータの入出力を行なう。
【００１４】
図２は、ＩＣカード１０１の構成を示すもので、制御素子としてのＣＰＵ２０１、記憶内容が書換え可能な記憶手段（メモリ）としてのデータメモリ２０２、ワーキングメモリ２０３、プログラムメモリ２０４、および、カードリーダ・ライタ１０２との通信を行なうための通信部２０５によって構成されている。そして、これらのうち、破線内の部分（ＣＰＵ２０１、データメモリ２０２、ワーキングメモリ２０３、プログラムメモリ２０４）は１つ（あるいは複数）のＩＣチップ２０６で構成され、さらに、このＩＣチップ２０６と通信部２０５とが一体的にＩＣモジュール化されて、ＩＣカード本体１０１ａ内に埋設されている。
【００１５】
ＣＰＵ２０１は、各種の判定処理や判断処理およびメモリへの書込みや読出しなどの各種のデータ処理を行なう制御部である。
【００１６】
データメモリ２０２は、たとえば、ＥＥＰＲＯＭ（エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ）などの消去（書換え）可能な不揮発性メモリで構成されていて、各種アプリケーションデータなどの各種データがファイル構造で記憶される。
【００１７】
ワーキングメモリ２０３は、ＣＰＵ２０１が処理を行なう際の処理データを一時的に保持するための作業用のメモリであり、たとえば、ＲＡＭ（ランダム・アクセス・メモリ）などの揮発性メモリで構成されている。
【００１８】
プログラムメモリ２０４は、たとえば、マスクＲＯＭ（リード・オンリ・メモリ）などの書換え不可能な固定メモリで構成されており、ＣＰＵ２０１の制御プログラムなどを記憶している。
【００１９】
通信部２０５は、ＩＣカード１０１が非接触式（無線式）ＩＣカードの場合にはアンテナ部として構成され、カードリーダ・ライタ１０２から送信された変調波を非接触で受信したり外部へ変調波を発信したりするようになっている。また、この通信部２０５で受信した変調波から内部回路に供給するための電源やクロックを生成するようになっている。また、接触式ＩＣカードの場合にはコンタクト部として構成され、カードリーダ・ライタ１０２に設けられたＩＣカード端子部（図示しない）と接触することにより電源やクロックを得るようになっている。
【００２０】
図３は、データメモリ１０２の内部構造例を示すものである。この例の場合、データメモリ１０２内には、たとえば、可変長構造のレコードが格納されている複数のファイル３０１ａ，３０１ｂ，…が格納されているとともに、これらのファイル３０１ａ，３０１ｂ，…を定義するファイル定義情報３０２ａ，３０２ｂ，…が格納されている。
【００２１】
ファイル定義情報３０２ａ，３０２ｂ，…は、たとえば、図４に示すように、ファイル識別用のファイルＩＤ４０１、ファイルを格納している領域の先頭アドレス（以降、ファイル先頭アドレスと呼ぶ）４０２、ファイルのサイズを示すファイルサイズ４０３、および、ファイルのタイプを示すファイルタイプ４０４を有して構成される。
【００２２】
ファイルタイプ４０４には、レコード構造のファイルであるか、あるいは、その他のタイプのファイルであるかを示すファイルの種類情報、および、ファイルに格納されたレコードが可変長構造であるか固定長構造であるかを示すレコードの種類情報が格納されている。
【００２３】
ファイル３０１ａ，３０１ｂ，…は、たとえば、図５に示すように、その先頭アドレスから、現在の格納されているレコードの数を示すレコード数５０１が格納されており、その後に作成された順番にレコード管理情報５０２ａ，５０２ｂ，…が順次格納されているとともに、最終アドレスから、レコード管理情報５０２ａ，５０２ｂ，…に対応するレコード５０３ａ，５０３ｂ，…が作成された順番に順次格納されている。レコード５０３ａ，５０３ｂ，…の各先頭には、それぞれレコード長（レコードデータ長）５０４ａ，５０４ｂ，…が格納されている。
【００２４】
レコード管理情報５０２ａ，５０２ｂ，…は、レコード数５０１に対応する数だけ存在しており、レコード５０３ａ，５０３ｂ，…とそれぞれ対になっている。  
レコード管理情報５０２ａ，５０２ｂ，…は、たとえば、図６に示すように、ファイルの先頭アドレスから当該レコードへのオフセット値６０１、および、当該レコードを書換えた際に短くなった長さを示す書換え変更長６０２を有して構成される。書換え変更長６０２の初期値は「０」となっている。
【００２５】
したがって、ファイル先頭アドレス４０２にオフセット値６０１を加算したアドレスは、当該レコードの先頭アドレスとして使用できる。
【００２６】
次に、上記のような構成において、図７〜図９に示すフローチャートを参照して処理の流れについて説明する。
【００２７】
なお、本実施の形態でのデータ書込み処理では、レコード管理情報のオフセット値６０１で示される先のアドレスに対し、当該レコードのレコード長の長さ（１バイト）分をプラスしたアドレスを先頭として、データの書込みを実施するものとする。これにより、元のレコード長よりも短いレコード長のレコード（データ）を書込みした直後だと、レコード（データ）の後ろの領域に空き領域ができるものである。
【００２８】
また、以下の説明は、たとえば、図１０に示すように、既にレコード番号が「１」のレコード(1)５０３ａに空き領域Ｅがあり、そのため対応するレコード管理情報(1)５０２ａも図１０に示すようになっているものとする。この状態において、たとえば、レコード(1)５０３ａに対しアクセス（書込み）した場合の例を説明する。
【００２９】
カードリーダ・ライタ１０２からコマンドを受信すると（ステップＳ１）、受信したコマンドはレコード構造ファイル（フローチャート上ではレコードファイルと称す）を実行対象としているか否かをチェックし（ステップＳ２）、このチェックの結果、レコードファイルを対象とするコマンドでない場合、それぞれの処理を実施し（ステップＳ３）、その後、ステップＳ１に戻る。
【００３０】
ステップＳ２におけるチェックの結果、レコードファイルを対象とするコマンドである場合、受信したコマンドは可変長レコードを実行対象としているか否かをチェックし（ステップＳ４）、このチェックの結果、可変長レコードを対象とするコマンドでない場合、それぞれの処理を実施し（ステップＳ３）、その後、ステップＳ１に戻る。
【００３１】
ステップＳ４におけるチェックの結果、可変長レコードを対象とするコマンドである場合、受信したコマンドは書込みコマンドか否かをチェックし（ステップＳ５）、このチェックの結果、書込みコマンドでない場合、コマンドに対応する処理を実施し（ステップＳ６）、その後、ステップＳ１に戻る。
【００３２】
ステップＳ５におけるチェックの結果、書込みコマンドである場合、対象レコード（この例の場合、レコード(1)５０３ａ）に対応するレコード管理情報（この例の場合、レコード管理情報(1)５０２ａ）内の書換え変更長６０２の値が「０」であるか否かをチェックする（ステップＳ７）。
【００３３】
このチェックの結果、書換え変更長６０２の値が「０」でない場合（この例の場合、図１０に示すように「０２」となっている）、図１１に示すように、当該書換え変更長６０２の長さ分、対象レコードおよびそのレコード長（この例の場合、レコード(1)５０３ａ、レコード(1)レコード長５０４ａ）を移動させ（ステップＳ８）、ステップＳ９に進む。この処理により、図１１に示すように、レコード(1)５０３ａの空き領域がレコード(1)レコード長５０４ａとレコード(2)５０３ｂとの間に移動される。
【００３４】
この処理により、図１１に示すように、レコード(1)５０３ａの空き領域Ｅがレコード(1)レコード長５０４ａとレコード(2)５０３ｂとの間に移動される。すなわち、書換えにより短くなった長さ分、対象レコード（この例の場合、レコード(1)５０３ａ）がアドレスを詰めて配置し直されるものである。
【００３５】
なお、ステップＳ７におけるチェックの結果、書換え変更長６０２の値が「０」である場合、ステップＳ８をジャンプしてステップＳ９に進む。
【００３６】
ステップＳ９では、対象レコードの番号（以降、対象レコード番号と称す）がレコード数５０１の値と等しいか否かをチェックし、等しくない場合（この例の場合、対象レコード番号は「１」で、レコード数５０１は図１０に示すように「２」となっている）、図１１に示すように、対象レコード番号（この例の場合、「１」）に「＋１」した値のレコード番号を持つレコード（この例の場合、レコード番号が「２」のレコード(2)５０３ｂ）の書換え変更長６０２に対象レコードの書換え変更長６０２の値を加算する（ステップＳ１０）。
【００３７】
次に、図１１に示すように、対象レコード（この例の場合、レコード(1)５０３ａ）のオフセット値６０１に対し書換え変更長６０２の値を加算し（ステップＳ１１）、ステップＳ１２に進む。
【００３８】
ステップＳ９におけるチェックの結果、対象レコード番号がレコード数５０１の値と等しい場合、ステップＳ１０〜Ｓ１１をジャンプしてステップＳ１２に進む。  
ステップＳ１２では、図１１に示すように、対象レコード（この例の場合、レコード(1)５０３ａ）の書換え変更長６０２を「０」にする。
【００３９】
次に、対象レコード（この例の場合、レコード(1)５０３ａ）のレコード長（この例の場合、レコード(1)レコード長５０４ａで、「３」）を書換え前レコード長として保存する（ステップＳ１３）。
【００４０】
次に、受信した書込みコマンドの処理（レコード(1)５０３ａに対する書込み処理）を実施する（ステップＳ１４）。この書込みコマンドの処理により、図１２に示すように、再びレコード(1)５０３ａに空き領域が生じたものとする。
【００４１】
次に、ステップＳ１３で保持した書換え前レコード長（この例の場合、「３」）と対象レコード（この例の場合、レコード(1)５０３ａ）の書換え後レコード長（この例の場合、「１」）とを比較し（ステップＳ１５）、書換え前レコード長が書換え後レコード長よりも小さい場合、処理を終了し、ステップＳ１に戻る。
【００４２】
ステップＳ１５における比較の結果、書換え前レコード長が書換え後レコード長よりも大きい場合、対象レコード番号がレコード数５０１の値と等しいか否かをチェックし（ステップＳ１６）、両者が等しい場合、処理を終了し、ステップＳ１に戻る。
【００４３】
ステップＳ１６におけるチェックの結果、対象レコード番号がレコード数５０１の値と等しくない場合（この例の場合、対象レコード番号は「１」で、レコード数５０１は「２」となっている）、図１２に示すように、書換え前レコード長から書換え後レコード長を減算し、その減算結果を対象レコード（この例の場合、レコード(1)５０３ａ）の書換え変更長６０２に加算する（ステップＳ１７）。
【００４４】
次に、対象レコード（この例の場合、レコード(1)５０３ａ）の書換え変更長６０２の値が「０」であるか否かをチェックする（ステップＳ１８）。  
このチェックの結果、書換え変更長６０２の値が「０」でない場合（この例の場合、図１２に示すように「０２」となっている）、図１３に示すように、当該書換え変更長６０２の長さ分、対象レコードおよびそのレコード長（この例の場合、レコード(1)５０３ａ、レコード(1)レコード長５０４ａ）を移動させ（ステップＳ１９）、ステップＳ２０に進む。
【００４５】
この処理により、図１３に示すように、レコード(1)５０３ａの空き領域Ｅがレコード(1)レコード長５０４ａとレコード(2)５０３ｂとの間の空き領域Ｅに追加移動される。すなわち、書換えにより短くなった長さ分、対象レコード（この例の場合、レコード(1)５０３ａ）がアドレスを詰めて配置し直されるものである。
【００４６】
なお、ステップＳ１８におけるチェックの結果、書換え変更長６０２の値が「０」である場合、ステップＳ１９をジャンプしてステップＳ２０に進む。
【００４７】
ステップＳ２０では、対象レコード番号がレコード数５０１の値と等しいか否かをチェックし、等しくない場合（この例の場合、対象レコード番号は「１」で、レコード数５０１は図１２に示すように「２」となっている）、図１３に示すように、対象レコード番号（この例の場合、「１」）に「＋１」した値のレコード番号を持つレコード（この例の場合、レコード番号が「２」のレコード(2)５０３ｂ）の書換え変更長６０２に対象レコードの書換え変更長６０２の値を加算する（ステップＳ２１）。
【００４８】
次に、図１３に示すように、対象レコード（この例の場合、レコード(1)５０３ａ）のオフセット値６０１に対し書換え変更長６０２の値を加算し（ステップＳ２２）、ステップＳ２３に進む。
【００４９】
ステップＳ２０におけるチェックの結果、対象レコード番号がレコード数５０１の値と等しい場合、ステップＳ２１〜Ｓ２２をジャンプしてステップＳ２３に進む。  
ステップＳ２３では、図１３に示すように、対象レコード（この例の場合、レコード(1)５０３ａ）の書換え変更長６０２を「０」にし、ステップＳ１に戻る。
【００５０】
このように、上記実施の形態によれば、可変長構造のレコードが元々のレコード長よりも短く書換えられた場合、次のレコードアクセス(レコード書込み)時に、その短くなった長さ分、アクセスされたレコードのアドレス（空いた領域）を詰めて配置し直すことにより、最終的には余剰領域が発生し、レコードを追加する際などにはメモリの効率的に利用することができるようになる。
【図面の簡単な説明】
【００５１】
【図１】本発明に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すブロック図。
【図２】ＩＣカードの構成を概略的に示すブロック図。
【図３】データメモリの内部構造を模式的に示す構成図。
【図４】ファイル定義情報の詳細を模式的に示す構成図。
【図５】ファイルの内部構造を模式的に示す構成図。
【図６】レコード管理情報の詳細を模式的に示す構成図。
【図７】処理の流れを説明するフローチャート。
【図８】処理の流れを説明するフローチャート。
【図９】処理の流れを説明するフローチャート。
【図１０】可変長構造のレコードに生じた空き領域の移動例を具体的に説明するための模式図。
【図１１】可変長構造のレコードに生じた空き領域の移動例を具体的に説明するための模式図。
【図１２】可変長構造のレコードに生じた空き領域の移動例を具体的に説明するための模式図。
【図１３】可変長構造のレコードに生じた空き領域の移動例を具体的に説明するための模式図。
【符号の説明】
【００５２】
１０１…ＩＣカード（携帯可能電子装置）、１０１ａ…ＩＣカード本体、１０２…カードリーダ・ライタ、１０３…端末装置、１０４…キーボード、１０５…ＣＲＴ表示部、１０６…プリンタ、２０１…ＣＰＵ（制御素子）、２０２…データメモリ（記憶手段）、２０３…ワーキングメモリ、２０４…プログラムメモリ、２０５…通信部、２０６…ＩＣチップ、３０１ａ，３０１ｂ…ファイル、３０２ａ，３０２ｂ…ファイル定義情報、４０１…ファイルＩＤ、４０２…ファイル先頭アドレス、４０３…ファイルサイズ、４０４…ファイルタイプ、５０１…レコード数、５０２ａ，５０２ｂ…レコード管理情報、５０３ａ，５０３ｂ…レコード、５０４ａ，５０４ｂ…レコード長、６０１…オフセット値、６０２…書換え変更長、Ｅ…空き領域。
【図１】
2010073004.tif 000003
【図２】
2010073004.tif 000004
【図３】
2010073004.tif 000005
【図４】
2010073004.tif 000006
【図５】
2010073004.tif 000007
【図６】
2010073004.tif 000008
【図７】
2010073004.tif 000009
【図８】
2010073004.tif 000010
【図９】
2010073004.tif 000011
【図１０】
2010073004.tif 000012
【図１１】
2010073004.tif 000013
【図１２】
2010073004.tif 000014
【図１３】
2010073004.tif 000015