回空blog

伺か・イラスト・その他に関する雑記。

スポンサーサイト

--.--.-- 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

フォルダドロップ

2006.06.18 

追記

複数ファイルを渡す場合は、92個目で落ちました。
フォルダのときよりもはるかに多いので、アイテム個数じゃなくて処理量が問題なのかなぁ。
まあ普通、そんなに無茶な渡し方ってしないかな。

追記2

と思ったら、れしばを一応見てみたらもっと後の処理の断片が残っていたので(ランダム演奏の為の曲順リスト生成)、フォルダドロップの問題じゃなかったのかも……?
なんにせよ、アイテム数がやたら多くなければ問題なし。



CMN音楽周り、完成したー!と喜んでいたのですが。
あまり沢山のファイルが入ったフォルダを渡すと落ちてしまいました……。

ビートルズフォルダ

これだけのフォルダ(各フォルダに十数曲入っている)が入ったフォルダを渡してみたら、何度やっても見事にストンとorz
で、フォルダの数が問題なのかと思い、1つずつフォルダを増やしていってみたら、5つ目で落ちました。
けれど、各フォルダに0~2曲ぐらいしか入っていないフォルダばかりを5つ6つまとめて渡しても落ちなかったので、フォルダ数ではなくファイル数が問題らしい。
処理内容が多すぎて「れしば」で見切れなくて、どこが悪いのかわからず。

まあ、音楽聴くためにCMNを使おうって人はまず居ないだろうから、別にいっかなー……。

以下、一応ドロップ周りのスクリプトを載せときます。SSPでしか動かした事なし。
*OnFileDrop2
>複数ファイル受け取り【タブ】1<(split,(R0),(sprintf,%c,1))
>フォルダ受け取り【タブ】(sysio,readdir,(R0))!=-1
>単数音楽ファイル受け取り【タブ】(compare_tail,(R0),.mp3)||(compare_tail,(R0),.MP3)||(compare_tail,(R0),.mid)||(compare_tail,(R0),.MID)||(compare_tail,(R0),.wma)||(compare_tail,(R0),.WMA)||(compare_tail,(R0),.wav)||(compare_tail,(R0),.WAV)||(compare_tail,(R0),.au)||(compare_tail,(R0),.AU)||(compare_tail,(R0),.ogg)||(compare_tail,(R0),.OGG)
>ファイルオープン【タブ】(compare_tail,(R0),.txt)||(compare_tail,(R0),.TXT)||(compare_tail,(R0),.htm)||(compare_tail,(R0),.html)
>扱えないファイル

*単数音楽ファイル受け取り
$曲数=1
$1曲目【タブ】(R0)
>曲再生実行処理へ

*複数ファイル受け取り
$アイテム数=(split,(R0),(sprintf,%c,1))
$フォルダモード【タブ】オフ
>リスト生成準備

*フォルダ受け取り
$アイテム数=(sysio,readdir,(R0))
$フォルダモード【タブ】オン
$フォルダパス【タブ】(R0)
>フォルダが空【タブ】(アイテム数)<1
>リスト生成準備

*フォルダが空
:このフォルダ、「(call,ファイル名,(R0))」は、空のようです。

@ファイル名
(S(han2zen,(calc,(split,(A0),¥)-1)))

*リスト生成準備
$フォルダ数=0
$フォルダ数2=0
$曲数=0
$リストカウント=0
$フォルダカウント=0
>アイテム種チェック

*アイテム種チェック
$アイテム【タブ】(if,(フォルダモード)==オン,(フォルダパス)(S(リストカウント)),(S(リストカウント)))
$アイテム【タブ】(if,(compare_tail,(アイテム),¥)==1,(substr,(アイテム),0,(calc,(length,(アイテム))-1)),(アイテム))
$リストカウント=(リストカウント)+1
>アイテムがフォルダ【タブ】(sysio,isdir,(アイテム))==1
>アイテムが音楽ファイル【タブ】(compare_tail,(アイテム),.mp3)||(compare_tail,(アイテム),.MP3)||(compare_tail,(アイテム),.mid)||(compare_tail,(アイテム),.MID)||(compare_tail,(アイテム),.wma)||(compare_tail,(アイテム),.WMA)||(compare_tail,(アイテム),.wav)||(compare_tail,(アイテム),.WAV)||(compare_tail,(アイテム),.au)||(compare_tail,(アイテム),.AU)||(compare_tail,(アイテム),.ogg)||(compare_tail,(アイテム),.OGG)
>アイテム種チェック継続判定

*アイテムが音楽ファイル
$曲数=(曲数)+1
$(曲数)曲目【タブ】(アイテム)
>アイテム種チェック継続判定

*アイテムがフォルダ
$フォルダ数=(フォルダ数)+1
$フォルダ数2=(フォルダ数2)+1
$FLD(フォルダ数)【タブ】(アイテム)¥
>アイテム種チェック継続判定

*アイテム種チェック継続判定
>フォルダ数チェック【タブ】(リストカウント)==(アイテム数)
>アイテム種チェック

*フォルダ数チェック
>曲再生実行処理へ【タブ】(フォルダ数2)==0
>下位フォルダチェック準備

*下位フォルダチェック準備
$フォルダ数2=(フォルダ数2)-1
$フォルダモード【タブ】オン
$フォルダカウント=(フォルダカウント)+1
$リストカウント=0
$フォルダパス【タブ】(FLD(フォルダカウント))
$アイテム数【タブ】(sysio,readdir,(フォルダパス))
>フォルダ数チェック【タブ】(アイテム数)<1
>アイテム種チェック

Track Back

TB URL

ブログ検索

プロフィール

ケノ

Author:ケノ

▼伺か・イラストサイト「回空」
回空

▼COLORSβ公開サイト
COLORSβ

pixiv

→ Twitter

初音修造

リンク

ランダム妖怪辞典

RSSフィード

最近の記事

カテゴリー

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。