|
いつもお世話になっております。
title,address,sub_address,move,no,info,se,label,char1,char2,char3,char4,char
5,char6,char7,char8,message,mark
トップページ,GL007TTWOR,0_0_0,1,F001,021,E002,リンゴ_500EM1,500TM1_2_6_1_3_0,
1,5_1,,,,,,ここはトップページです。,3
トップページ,GL007TTWOR,0_0_0,1,F002,022,E006,リンゴ_500EM1,500TM1_2_5_2_3_0,
5,1_2,,,,,,リンゴを購入しますか?,3
トップページ,GL042XCYLI,0_0_0,1,,022,,,500TM1_2_5_2_3_2,,,,,,,,トップページ
から移動しますか?,3
トップページ,GL042XCYLI,0_0_0,2,,022,,,500TM1_2_5_2_3_2,,,,,,,,リンゴを購入
しました。,3
上記のような、カンマ区切りのテキストがあり(元々はcsvファイルの一部です)、
これをマクロで必要箇所のみ抽出して、抽出後並べ替えを行いたいと考えています。
(labelなど一部null、またchar4のように全てnullのデータ箇所があるものとなりま
す。)
// CSVデータの特定列のみを取得する
// 取得する列数を指定 1列目は: 0、2列目: 1 ...
#COL_NUM1 = 1;
// すべてを選択する
selectall;
// 選択範囲の文字列を取得する
$address = gettext(seltopx,seltopy,selendx,selendy);
// 分割
#num1 = split($arr_address, $address, "\r\n");
#a = 0;
while(#b <= #num1){
// 行データをタブで分割
#num_col1 = split($arr_col1, $arr_address[#a], ",");
// 列データを取得
$s1 = $arr_col1[#COL_NUM1];
// 行いたい処理を記述
message $s1;
#a = #a + 1;
}
こういった形で指定行1つ(上記のaddress)のデータは表示できたのですが、複数
行を指定かつその指定した行のデータを並べ替える場合、指定した複数行の各データ
を配列に格納してデータ個数分書き込むという手順になると考えています。
このようなデータ形式で記載されているものに対し、複数行のデータを指定して取得
できるものでしょうか?
同じ内容のマクロ内容を
配列に格納する場合、どこでデータ個数を取得すべきでしょうか?
アウトプットの形は
・info
●address
〇move
◎no
label,message
と考えています。
また info、address、moveのみ、データ内容が途中で変わるまで、内容を省略したい
場合は並べ替え後に別マクロで行う方が分かりやすいでしょうか?
(下記が例となります。)
・021
●GL007TTWOR
〇1
◎F001
リンゴ_500EM1,ここはトップページです。
・022
●
〇
◎F001
リンゴ_500EM1,リンゴを購入しますか?
・
●GL042XCYLI
〇
◎F001
,トップページから移動しますか?
・
●
〇2
◎F001
,リンゴを購入しました。
|
|