いつもお世話になっております。
配列のインデックス(最大数?)を処理中に動的に設定したいのですが、どうしたらいいのでしょうか?
具体的にはDBを読み、その件数だけ配列を持ちたいです。
var
date_name : array[1..10] of String;
の最大数10件を動的に変更したいと思っています。
よろしくお願いします。
ちなみに、TListやTStringListなどを使うのではだめですか?
ヘルプで
『動的配列』
で検索して,その内容では不可能ですか?
>>igy様
レスありがとうございます。
Ru様がずばりなレスをいただきましたので
レス頂いた内容は今後の知恵(TListやTStringList等も使える!)として覚えさせていただきます。
>>Ru様
レスありがとうございます。
ずばりDelphiのヘルプに載っていました。
動的配列という言葉が思い浮かばずに質問して申し訳ございません。
解決方法は動的配列には「SetLength(「配列名」、「割り当てるメモリ容量」)」を使えば可能。
ヘルプを見て無事正常に動作しました。
今後ともよろしくお願いします。
以下簡潔ですが解決ソースです。
---------------------------------------------
var
data_name : array of String; //データ名称を保持する配列
i : Integer; //配列の添字カウンター
begin
// DB検索処理
Query1.Open;
//データカウントだけ配列にメモリを割り当てる
SetLength(date_name,Query1.RecordCount);
//配列の添字は常に0から始まるため
i := -1;
while Query1.Eof = False then
begin
i := i + 1;
//配列に検索したデータを入れていく
date_name[i] := Query1.FieldByName('data_name').AsString
Query1.Next;
end
Query1.Close;
end;
---------------------------------------------
レスありがとうございました。
解決し忘れていました。
ツイート | ![]() |