CSVのデータ区分け

解決


Delphi弱者  2009-08-07 01:52:38  No: 35354

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;


HOta  2009-08-07 02:10:22  No: 35355

imax:=SL.Count - 1;
でどうですか?


Delphi弱者  2009-08-07 02:25:49  No: 35356

HOta様:  早速解決しました。こんな使い方があるは知りませんで SL(High)などと試していました。  適切なアドバイスをありがとうございました。


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

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






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