String:eWith() "endsWith()"

説明

文字列が指定した文字列で終わっているかどうか調べます。一致した場合は1を返します。不一致の場合は0を返します。IchiogLatteでは1がtrue、0がfalseの扱いになっているためです。eWith()のパラメーターには検索元の文字列(String)、検索する文字列(String)、検索開始(末尾)位置の順番で指定します。(参考URL:https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith

[以下のJavaScriptプログラムをダウンロード]

// String: eWith(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;
};
}
// eWith "endsWith"
function eWith(src,text,start){
var e=0,c,n=0;
if(start==-1){ // -1=text.length
while(e<32768){
c=src.charAt(e);
sleep(10); // Wait
if (c==0){break;}
e=e+1;
}
start=e-1;
}
while(n<32768){
c=text.charAt(n);
sleep(10);
if (c==0){break;}
n=n+1;
}
if(n==0){return 0;}
n=n-1;
var s=start,e=n,p=-1;
while(e>=0){
var c1=src.charAt(s);
sleep(10); // Wait
var c2=text.charAt(e);
sleep(10); // Wait
if(c1!=c2){return 0;} // false
e=e-1;
s=s-1;
}
return 1;
}
// Sample Code
var src=new String(0);
var str=new String(1*2048);
var f=eWith(src,str,0-1);
log(f,"\n");
f=eWith(src,str,8);
log(f,"\n");

目次に戻る