delete_EEPROMの内容を削除し内容を前方にずらす

説明

EEPROMの内容を検索し該当する値が見つかった場所を削除し内容を前方にずらします。関数には開始アドレス、終了アドレス、検索する値、置換する値の順番でパラメーターを指定します。

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

// EEPROM delete(startAdrs,endAdrs,searchValue,endValue)
// return : address or -1
function delete(adrs,eAdrs,value,eValue){
while(adrs<=eAdrs){
var n,d=0x50|(((adrs>>16)&1)<<2);
i2cw(d,(adrs&0xff00)>>8,adrs&255);
i2cr(d,n);
if(n==value){
while(adrs<=eAdrs){
adrs=adrs+1;
d=0x50|(((adrs>>16)&1)<<2);
i2cw(d,(adrs&0xff00)>>8,adrs&255);
i2cr(d,n); // read next 1 byte
if(n==eValue){ return adrs; }
adrs=adrs-1;
sleep(10);
i2cw(0x50|(((adrs>>16)&1)<<2), (adrs&0xff00)>>8,adrs&0xff,n);
sleep(10);
adrs=adrs+1;
}
return adrs;
}
adrs=adrs+1;
}
return -1;
}
log("search value\n");
var sv=input();
log("end value\n");
var ev=input();
log(delete(0,24,sv,ev),"\n");

目次に戻る