説明
文字列が指定した文字列で始まるかどうか調べます。一致した場合は1を返します。不一致の場合は0を返します。IchiogLatteでは1がtrue、0がfalseの扱いになっているためです。sWith()のパラメーターには検索元の文字列(String)、検索する文字列(String)、検索開始位置の順番で指定します。なお、文字列の長さを超えて検索位置を指定することもできるため注意が必要です。
// String: sWith(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;
};
}
// sWith "startsWith"
function sWith(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 1;} // true
if((c1==0)+(c1!=c2)){return 0;} // false
cnt=cnt+1;
s=s+1;
}
}
// Sample Code
var src=new String(0);
var str=new String(1*2048);
var f=sWith(src,str,0);
log(f,"\n");
f=sWith(src,str,8);
log(f,"\n");
目次に戻る