home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2002 July
/
VPR0207A.ISO
/
OLS
/
IRVINE0_4_1A
/
irvine0_4_1a.lzh
/
scripts
/
listcrccheck.dms
< prev
next >
Wrap
Text File
|
2002-01-14
|
2KB
|
72 lines
/*
スクリプト初期化イベント
guid={0B73E922-238E-47CA-8537-E47B39A0C265}
caption=CRC,MD5チェック
version=1
hint=選択アイテムのCRC,MD5をチェックします
event=OnListMenuClick
match=
author=Wolfy
*/
function OnListMenuClick(irvine,action){
//リストメニューのクリックイベント
item = new IrvineItem;
crc = new CRC;
md5 = new MD5;
file = new File;
flag = false;
irvine.BeginProgressBar(irvine.SelectedItemCount);
try{
for(i = 0; i < irvine.ItemCount; i++){
if (irvine.GetItemSelected(i)){
irvine.ProgressBarStepBy(1);
item.data = irvine.GetItemData(i);
len = item.check.length;
if(len == 0)
continue;
file.filename = irvine.GetItemFilename(i);
if(file.exists()){
if(len == 4){
crc.calcFile(file.filename);
item.success = (crc.CRC16.toString(16).substr(4,4).toLowerCase() == item.check.toLowerCase());
item.error = (! item.success);
}
else if(len == 8){
crc.calcFile(file.filename);
item.success = (crc.CRC32.toString(16).toLowerCase() == item.check.toLowerCase());
item.error = (! item.success);
}
else if(len == 32){
item.success = (md5.calcFile(file.filename).toLowerCase() == item.check.toLowerCase());
item.error = (! item.success);
}
else{
item.error = true;
}
}
else{
item.success = false;
item.error = false;
}
irvine.SetItemData(i,item.data);
flag = true;
}
}
}
finally{
irvine.EndProgressBar();
if(flag)
irvine.Invalidate();
}
}
function OnMenuUpdate(irvine,action){
//メニューの更新イベント
action.enabled = (irvine.SelectedItemCount > 0);
}