初めて投稿いたします。
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文を使うのは避けたいのでテーブルの容量を増やす方法はないで
しょうか?
よろしくお願いいたします。
データーベースは何をお使いでしょうか?
また、テーブルの定義はどうなっているのでしょうか?
ご返信ありがとうございます。
・データベースは使用していません。プログラム内部で
テーブル定義をしています。
・テーブル定義は下記の通りです。
--------------------------------------
//変換テーブル用定義
ADR53_Max :integer
ADR53_01 :array[1..50] of string
ADR53_02 :array[1..50] of string
--------------------------------------
以上のように定義されています。
1つのプログラム上でもてるテーブルの限界に来ているのでしょうか?
また、そうであれば他のプログラムにテーブルを移してそのプログラムの
テーブルを読んでくるよにすることは出来るのでしょうか?
いろいろ思いついたことを書いてしまいました。
よろしくお願いいたします。
プログラム内部で定義した配列を使用していたのですね。
ADR53_Maxで定義した値まで使っているから限界なのでしょう。
こういう限界をなくすのがデーターベースです。
他のプログラムから同じ定義で使えます。
現在のままだと、地名が増えたり減ったりすると、
プログラムを変更しないといけなくなり、
メンテナンスが大変になります。
配列で処理するなら、動的配列を用意して、
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;
の様な形でしょうか。無理矢理です。
ご返信ありがとうございます。
早速試してみます。
ツイート | ![]() |