テーブル容量を増やすには?


delphi初心者  2004-07-07 03:37:22  No: 9790

初めて投稿いたします。
delphi5  professionalを使用しています。
プログラムの中のテーブルの容量が限界になってしまいました。
テーブルに追加をするとコンパイル時に「テーブル領域がMAX」
という意味のエラー表示がでてしまい追加することが出来ません。
仕方がないのでif文を使用して対応しています。
具体的には下記の形式で記述しているテーブルが多数あり、
この内のテーブルにひとつ追加してもコンパイル時にエラーが出て
しまいます。
−−−−−−−−−−−−−−−
ADR53_Max := 24;
ADR53_01[1] := '芦北郡';      ADR53_02[1] := '葦北郡';
ADR53_01[2] := '印旙郡';      ADR53_02[2] := '印旛郡';
ADR53_01[3] := '雨龍郡';      ADR53_02[3] := '雨竜郡';
ADR53_01[4] := '塩竃市';      ADR53_02[4] := '塩竈市';
ADR53_01[5] := '塩釜市';      ADR53_02[5] := '塩竈市';
ADR53_01[6] := '沖繩市';      ADR53_02[6] := '沖縄市';
ADR53_01[7] := '竈石市';      ADR53_02[7] := '釜石市';
ADR53_01[8] := '竃石市';      ADR53_02[8] := '釜石市';
ADR53_01[9] := '五条市';      ADR53_02[9] := '五條市';
ADR53_01[10] := '三瀦郡';      ADR53_02[10] := '三潴郡';
ADR53_01[11] := '粕屋郡';      ADR53_02[11] := '糟屋郡';
ADR53_01[12] := '太田区';      ADR53_02[12] := '大田区';
ADR53_01[13] := '天龍市';      ADR53_02[13] := '天竜市';
ADR53_01[14] := '礪波市';      ADR53_02[14] := '砺波市';
ADR53_01[15] := '美禰郡';      ADR53_02[15] := '美祢郡';
ADR53_01[16] := '美禰市';      ADR53_02[16] := '美祢市';
ADR53_01[17] := '木曾郡';      ADR53_02[17] := '木曽郡';
ADR53_01[18] := '留萠郡';      ADR53_02[18] := '留萌郡';
ADR53_01[19] := '留萠市';      ADR53_02[19] := '留萌市';
ADR53_01[20] := '竜野市';      ADR53_02[20] := '龍野市';
ADR53_01[21] := '桧山郡';      ADR53_02[21] := '檜山郡';
ADR53_01[22] := '蕊取郡';      ADR53_02[22] := '蘂取郡';
ADR53_01[23] := '諌早市';      ADR53_02[23] := '諫早市';
ADR53_01[24] := '迩摩郡';      ADR53_02[24] := '邇摩郡';
−−−−−−−−−−−−−−−

if文を使うのは避けたいのでテーブルの容量を増やす方法はないで
しょうか?
よろしくお願いいたします。


HOta  2004-07-07 08:03:51  No: 9791

データーベースは何をお使いでしょうか?
また、テーブルの定義はどうなっているのでしょうか?


delphi初心者  2004-07-07 20:57:50  No: 9792

ご返信ありがとうございます。
・データベースは使用していません。プログラム内部で
  テーブル定義をしています。
・テーブル定義は下記の通りです。
--------------------------------------
  //変換テーブル用定義
  ADR53_Max :integer
  ADR53_01  :array[1..50] of string
  ADR53_02  :array[1..50] of string
--------------------------------------
以上のように定義されています。
1つのプログラム上でもてるテーブルの限界に来ているのでしょうか?

また、そうであれば他のプログラムにテーブルを移してそのプログラムの
テーブルを読んでくるよにすることは出来るのでしょうか?

いろいろ思いついたことを書いてしまいました。
よろしくお願いいたします。


HOta  2004-07-08 01:59:46  No: 9793

プログラム内部で定義した配列を使用していたのですね。
ADR53_Maxで定義した値まで使っているから限界なのでしょう。
こういう限界をなくすのがデーターベースです。
他のプログラムから同じ定義で使えます。
現在のままだと、地名が増えたり減ったりすると、
プログラムを変更しないといけなくなり、
メンテナンスが大変になります。


HOta  2004-07-08 03:15:21  No: 9794

配列で処理するなら、動的配列を用意して、

var
  ADR53_01:Array of String;
  ADR53_02:Array of String;
  I : Integer;
begin
  SetLength(ADR53_01,必要な数);
  SetLength(ADR53_02,必要な数);
  ADR53_01[0] := '一番目'
  ADR53_02[0] := '壱番目'
            ・
            ・
            ・
  
end;

の様な形でしょうか。無理矢理です。


delphi初心者  2004-07-08 04:03:02  No: 9795

ご返信ありがとうございます。
早速試してみます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加