HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0221
Patある文字列を文字列の配列として扱う自作関数が動かない3解決


Pat

リンク

2014/2/21(Fri) 01:17:11|NO.60156

#module
#defcfunc getarrstr var strarr, str delim,int index if ( index == 0 ) { return strmid(strarr,0,instr(strarr,0,delim)) } else { currenti = 0 beforei = 0 repeat index beforei = currenti if ( instr(strarr,currenti,delim) != (-1) ) { currenti = instr(strarr,currenti,delim)+1+currenti } else { currenti = strlen(strarr) break } loop return strmid(strarr,currenti,currenti-beforei-1) } return "" #global buff1 = "ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX,YZ." mes getarrstr(buff1,",",2) //正常 buff2 = "ABCDEFGHI JKLMN \"OPQRSTUVWXYZ\"" mes getarrstr(buff2," ",1) //間違い


ある文字列(strarr)をある文字(delim)で区切られた配列として考えてindex番目の要素を取り出す関数を作りました
ですがなぜかコード下部のbuff2の例では正常に動作しませんでした

いろいろと試してみたのですが全く原因がわかりません
buff2のようなものでもきっちりと動くようにするにはどうすればいいのでしょうか?

よろしければご教授いただければ幸いです



この記事に返信する


fortunehill

リンク

2014/2/21(Fri) 01:30:03|NO.60157

/*ご参考*/

#module #defcfunc getarrstr var strarr, str delim,int index,local nn split strarr,delim,nn ;mes stat return nn(limit(index,0,stat-1)) #global buff1 = "ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX,YZ." mes getarrstr(buff1,",",2) //正常 buff2 = "ABCDEFGHI JKLMN \"OPQRSTUVWXYZ\"" mes getarrstr(buff2," ",1) //間違い



fortunehill

リンク

2014/2/21(Fri) 01:58:47|NO.60158

/*蛇足(?)*/

#module #defcfunc getarrstr var strarr, str delim,int index strarr+=delim ; if ( index == 0 ) { return strmid(strarr,0,instr(strarr,0,delim)) } else { currenti = 0 beforei = 0 repeat index+1 ; beforei = currenti if ( instr(strarr,currenti,delim) != (-1) ) { currenti = instr(strarr,currenti,delim)+1+currenti } else { currenti = strlen(strarr) break } loop ; return strmid(strarr,currenti,currenti-beforei-1) return strmid(strarr,beforei,currenti-beforei-1) ; } return "" #global buff1 = "ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX,YZ." ;最期"."? repeat 9+1 mes getarrstr(buff1,",",cnt) //正常 loop buff2 = "ABCDEFGHI JKLMN \"OPQRSTUVWXYZ\"" repeat 3+1 mes getarrstr(buff2," ",cnt) //間違い loop mes "END"



Pat

リンク

2014/2/21(Fri) 06:49:21|NO.60162

fortunehillさんありがとうございました!
localってそんな風に使えるんですね、勉強になります



ONION software Copyright 1997-2018(c) All rights reserved.