説明
文字列の中から一致する文字列があった場合、一致した文字列の先頭の位置を返します。indexOf()のパラメーターには検索元の文字列(String)、検索する文字列(String)、検索開始位置の順番で指定します。なお、文字列の長さを超えて検索位置を指定することもできるため注意が必要です。
// String: indexOf(src,searchText,start)
// String(adrs)
function String(a){
this.adrs=a; // EEPROM Address
this.set=function(idx,n){ // Set Char
var adrs=this.adrs+idx; // EEPROM Address+Index
i2cw(0x50|(((adrs>>16)&1)<<2), (adrs&0xff00)>>8,adrs&0xff,n&0xFF);
};
this.charAt=function(idx){ // Get Char
var c,adrs=this.adrs+idx; // EEPROM Address+Index
var d=0x50|(((adrs>>16)&1)<<2);
i2cw(d,(adrs&0xff00)>>8,adrs&255);
i2cr(d,c);
return c;
};
}
// indexOf
function indexOf(src,text,start){
var s=start,cnt=0,p=-1;
while(s<32768){
var c1=src.charAt(s);
sleep(10); // Wait
var c2=text.charAt(cnt);
sleep(10); // Wait
if(c2==0){return p;}
if(c1==0){return -1;}
if(c1==c2){
cnt=cnt+1;
if(p==-1){p=s;}
}else{cnt=0;p=-1;}
s=s+1;
}
}
// Sample Code
var src=new String(0);
var str=new String(1*2048);
var n=indexOf(src,str,0);
log(n,"\n");
n=indexOf(src,str,8);
log(n,"\n");
目次に戻る