今、文字列の分割の処理を書いてるんですけど
その過程で色々思いついたので書いてみました
FILE名:FILE_str_opr.hsp
その過程で色々思いついたので書いてみました
FILE名:FILE_str_opr.hsp
#module str_opr // 文字列の始点と終点を渡して長さを得る #defcfunc getl_at_str_opr int first,int _end // 始点が終点より大きいとerror if first>_end:return -1 return _end-first // 文字列の始点と終点を指定して文字列の部分を得る #defcfunc strmid_of_index_at_str_opr var _str,int _first,int __end return strmid(_str,_first,getl_at_str_opr(_first,__end)) // 文字列の中から特定の文字列を検索して // 文字列の始点、ヒットした位置 // ヒットした文字列の終わりの位置、文字列の終わり。を // 引数に代入する // 文字列の中に特定の文字列があれば1を返す // なければ-1を返す #defcfunc sep_i_instr_at_str_opr var _str,var search,var _1,var _2,var _3,var _4 tmp=instr(_str,0,search) if tmp==-1:return-1 _1=0 _2=tmp _3=tmp+strlen(search) _4=strlen(_str) return 1 // 文字列の中から特定の文字列を検索して // 特定の文字列の場所までの文字列を_1に代入 // 特定の文字列を_2に代入 // 特定の文字列以降を_3に代入 // 文字列の中に特定の文字列があれば1を返す // なければ-1を返す #defcfunc sep_str_on_instr_at_str_opr var __str,var _search,var _1,var _2,var _3 a=0:b=0:c=0:d=0 piyo=sep_i_instr_at_str_opr(__str,_search,a,b,c,d) _1=strmid_of_index_at_str_opr(__str,a,b) _2=strmid_of_index_at_str_opr(__str,b,c) _3=strmid_of_index_at_str_opr(__str,c,d) return piyo #global /* TESTコード コメントアウト s="abcde" mes getl_at_str_opr(3,0) mes getl_at_str_opr(0,3) mes strmid(s,0,getl_at_str_opr(0,3)) mes strmid_of_index_at_str_opr(s,1,3) a=0:b=0:c=0:d=0 s="abcdef" ss="cde" sss="z" mes sep_i_instr_at_str_opr(s,sss,a,b,c,d) mes sep_i_instr_at_str_opr(s,ss,a,b,c,d) mes "a="+a mes "b="+b mes "c="+c mes "d="+d t="":tt="":ttt="" mes sep_str_on_instr_at_str_opr(s,ss,t,tt,ttt) mes t mes tt mes ttt stop*/ |