D6/personal お世話になります。
CSVをデータを配列にしたいと下記のようなものを作りました。
(doc, adat[1..20]はグローバル)
docに元データ(カンマ数は3−15程度で可変)の行を入れてadat[]で受け取りたいというものですがimaxを可変にしないと全データを受け取れません。多くすると「配列の範囲を超過」のエラーとなり、また少なくすると全部のデータの受け渡しができません。こんな場合にimaxを取得する方法はあるのでしょうか?
procedure csvsep;
var
SL:TStringList;
i,imax:integer;
begin
SL := TStringList.Create;
SL.CommaText := doc; // SL.CommaText := 'aaa,bbb,ccc,ddd';
imax:=5;
for i:=0 to imax do begin
adat[i+1]:=sl[i]; // aDAT:array[1..20] of string;
end;
sl.Free;
end;
imax:=SL.Count - 1;
でどうですか?
HOta様: 早速解決しました。こんな使い方があるは知りませんで SL(High)などと試していました。 適切なアドバイスをありがとうございました。
ツイート | ![]() |