//--------------------------------------------------------------------------- // SPLIT : 指定セパレータで区切られた文字列を配列に格納するルーチン // [Usage] : // call SPLIT $$str, $$sep; // ##num = ##return; // 配列$spl[]に文字列が格納されている // // $$str : 文字列 // $$sep : セパレータとして使用している文字(列) // ##num : 配列$spl[]の要素数 // //--------------------------------------------------------------------------- // サンプル: // // CSV(カンマ分割)データを TSV(タブ分割)データに変換 // $$csv_data = "data1,data2,data3,data4"; // call SPLIT $$csv_data, ","; // ##d_num = ##return; // $$tsv_data = ""; // ##a = 0; // while( ##a < ##d_num - 1 ){ // $$tsv_data = $$tsv_data + $spl[##a] + "\t"; // ##a = ##a + 1; // } // $$tsv_data = $$tsv_data + $spl[##d_num-1]; // endmacro; //--------------------------------------------------------------------------- // SPLIT: ##l = strlen( $$1 ); ##p = strlen( $$2 ); ##a = 0; while( 1 ){ // $$strの最後が$$sepだった場合に最後の配列を""として返したければ // このすぐ後の一行をコメントアウトして下さい。 if( !##l ) break; ##s = strstr( $$1, $$2 ); if( ##s == -1 ){ $spl[##a] = $$1; ##a = ##a + 1; break; } $spl[##a] = leftstr( $$1, ##s ); ##l = ##l - ##s - ##p; $$1 = rightstr( $$1, ##l ); ##a = ##a + 1; } return ##a; //---------------------------------------------------------------------------