こんにちわ
文字列の一部を置き換えるスクリプトを以下のような形で組んでいるのですが、
もっと早い方法は無いでしょうか。
#module
//指定文字列の指定indexを指定文字に置き換える
#defcfunc STR_exchange_a_char_an_index str rec_func_text, int rec_func_index, str rec_func_exchange_char
send_result_text=rec_func_text
if (strlen(send_result_text)<rec_func_index) | (rec_func_index<0){//不正なindexを指定している場合エラー報告
dialog "str_exchange_a_char_an_indexで無効なindexを指定しました。文字列="+rec_func_text+" 指定index="+str(rec_func_index)
end
}
send_result_text=strmid(send_result_text,0,rec_func_index)+rec_func_exchange_char+strmid(send_result_text,rec_func_index+1,strlen(send_result_text))
return(send_result_text)
#global
randomize
sdim hoge,100,10000
repeat(10000)//ランダムな"1"または"0"100バイトの文字列を10000生成
temp=""
repeat(100)
temp+=str(rnd(2))
loop
hoge.cnt=temp
loop
mes strf("%02d:%02d:%02d:%03d", gettime(4), gettime(5), gettime(6), gettime(7))
repeat(10000)//ランダムな文字列のランダムなindexを"1"か"0"に置き換える
hoge.cnt=STR_exchange_a_char_an_index(hoge.cnt,rnd(100),str(rnd(2)))
loop
mes strf("%02d:%02d:%02d:%03d", gettime(4), gettime(5), gettime(6), gettime(7))
stop
自分の環境だと62〜63ミリ秒かかってしまうのですが、
少なくとも半分、できれば1/10程度にならないかなーと思っています
その他にも、大量のデータを処理する場合の最適化について
注意するポイント等を教えていただけると大変助かります。
よろしくお願いいたします。