説明
文字列の中から一致する文字列があった場合、1を返します。一致する文字列がなかった場合は0を返します。IchigoLatteでは1がtrue、0がfalse扱いになっているので戻り値は1と0になります。includ()のパラメーターには検索元の文字列(String)、検索する文字列(String)、検索開始位置の順番で指定します。なお、文字列の長さを超えて検索位置を指定することもできるため注意が必要です。
// String: includ(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;
};
}
// includ "includes"
function includ(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){
if(p<0){return 0;}
return 1;
}
if(c1==0){return 0;}
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 f=includ(src,str,0);
log(f,"\n");
f=includ(src,str,8);
log(f,"\n");
目次に戻る