String:trim()

説明

文字列の左右の空白(0x20)を取り除きます。trim()のパラメーターには元の文字列(String)、結果を格納するStringオブジェクトの順番で指定します。なお、結果を格納するEEPROM側のリミットはかけてありませんので、場合によっては保存済みの内容を上書きしてしまうことがありますので注意してください。

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

// String: trim(src,dst)
// 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;
};
}
// trim
function trim(src,dst){
var s=0,cnt=0,e=0,c;
while(s<32768){
c=src.charAt(s);
sleep(10); // Wait
if((c==0)+(c!=0x20)){break;}
s=s+1;
}
while(e<32768){
c=src.charAt(e);
sleep(10); // Wait
if (c==0){break;}
e=e+1;
}
e=e-1;
while(e>0){
c=src.charAt(e);
sleep(10); // Wait
if(c==0){dst.set(0,0);sleep(10);}
if(c!=0x20){break;}
e=e-1;
}
while(s<e+1){
c=src.charAt(s);
sleep(10); // Wait
dst.set(cnt,c);
sleep(10); // Wait
cnt=cnt+1;
s=s+1;
}
dst.set(cnt,0);
}
// Sample Code
var src=new String(0);
var dst=new String(2*2048);
trim(src,dst);

目次に戻る