home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2002 July
/
VPR0207A.ISO
/
OLS
/
IRVINE0_4_1A
/
irvine0_4_1a.lzh
/
scripts
/
maindivitems.dms
< prev
next >
Wrap
Text File
|
2002-02-11
|
2KB
|
99 lines
/*
スクリプト初期化データ
guid={DFAC9C28-7765-4927-8FDC-B21FA5DFA16B}
caption=アイテムの振り分け
version=1
hint=カレントフォルダのアイテムを指定したアイテム数で下位フォルダに振り分けます
event=OnMainMenuClick
match=
author=Wolfy
*/
function formatDigit(num,digit){
s = num.toString();
if(s.length < digit){
temp = '';
for(i = 0; i < digit - s.length;i++)
temp = temp + '0';
s = temp + s;
}
return s;
}
function includeBackslash(s){
if(s.charAt(s.length - 1) == '\')
return s;
else
return s + '\';
}
function OnMainMenuClick(irvine,action){
//メインメニューのクリックイベント
//終わり
if(irvine.ItemCount == 0)
return;
//アイテム数
divcount = prompt('振り分けるアイテムの数を入力してください。',1000);
if(!divcount || isNaN(divcount)){
return;
}
else{
//数字にする
divcount = parseInt(divcount);
}
//カレントフォルダ名
current = irvine.Current;
//Irvine.Folderを作成
folder = new ActiveXObject('Irvine.Folder');
flag = false;
index = 0;
oldfilter = irvine.Filtering;
irvine.Filtering = false;
irvine.BeginProgressBar(current.ItemCount);
try{
i = 0;
//振り分けフォルダ
folder.Path = current.Path + '/' + formatDigit(index,2);
while(current.ItemCount > 0){
//フォルダを作成
if(!folder.Exists()){
if(folder.Make()){
//保存場所を設定
folder.Data['queue','folder'] = includeBackslash(current.Data['queue','folder']) + formatDigit(index,2);
}
else{ //作成失敗ならば終わり
return;
}
}
//加える
folder.AddItem(current.Items[0]);
//削除する
current.ExtractItem(0);
flag = true;
++i;
irvine.ProgressBarStepBy(1);
//カウントをチェックする
if(i >= divcount){
i = 0;
++index;
folder.Path = current.Path + '/' + formatDigit(index,2);
}
}
}
finally{
irvine.Filtering = oldfilter;
irvine.EndProgressBar();
if(flag)
irvine.Invalidate();
}
}
function OnMenuUpdate(irvine,action){
//メニューの更新イベント
action.enabled = (irvine.ItemCount > 0);
}