複数のファイル名を取得
multiopen v1,v2,n3,n4
v1 : 選択されたファイル名を受け取るための変数 v2 : 情報 n3 : フィルタのインデックス(1から) n4 : Read Onlyボックスを付ける
(プラグイン / モジュール : llmod3)
HSPのdialog(type 16,17)で複数のファイルを選択できるようにしたものです。 multiopen呼び出し時に、v1.0,v1.1にそれぞれv1,v2のサイズを代入しておきます。 v2には例のような形式でフィルタを代入します。 n3を省略、またはマイナスの値を使ったときの動作は備考参照。 n4を1にするとReadOnlyボックスを付けます。2にするとReadOnlyボックスをチェックした状態にします。 この命令を呼び出した後のstatの値 0 キャンセルされた 1 ファイルが選択されてOKボタンが押された 2 ファイルが選択されてOKボタンが押された(ReadOnlyがチェックされている。ただし複数選択されていない場合のみ) p3を0(省略)にしてp1,p2に文字列を入れるとp1がタイトルになり、p2は初期フォルダになります。 p3をマイナス値にすると保存するファイル名を得るときに使うことができます。(ただし複数選択はできません) 複数のファイルが選択されたかはnotesel,notemaxを使って調べます。 ファイルが一つしか選択されなかった場合、p1にはファイル名のフルパスが代入され、p2にはファイルの拡張子が代入されます。 ファイルが複数選ばれた場合は、p1にnotegetで取得できる形式でファイル名が複数入っていて、p2には選択されたファイルがあるフォルダが代入されます。(p1のファイル名は'\r'($0d)で区切られています。)
buf_size=512 : info_size=128
alloc buf,buf_size
alloc info,info_size
buf="ファイルを開くtest title" : info="a:\\windows"
multiopen buf,info
buf=buf_size
buf.1=info_size
info="HSP2 スクリプトファイル(*.hsp)|*.hsp|テキストファイル(*.txt)|*.txt|全てのファイル|*.*|"
multiopen buf,info,1
if stat=0 : mes "キャンセルされました" : else {
notesel buf
notemax mx
mes "選択されたファイル数 "+mx
repeat mx
noteget a,cnt
mes a
loop
if mx=1 : mes "拡張子は"+info : else mes "フォルダ "+info
}
| プラグイン / モジュール | llmod3 |
| バージョン | 3.2 |
| 作成日 | 2009/08/01 |
| 著作者 | tom |
| URL | http://www5b.biglobe.ne.jp/~diamond/hsp/hsp2file.htm |
| 備考 | llmod3.hspをインクルードする。必要に応じてabout.hsp,msgdlg.hsp,multiopen.hsp,console.hsp,unicode.hsp,dragdrop.hsp,input.hspをインクルードする |
| タイプ | 拡張命令 |
| グループ | オブジェクト制御命令 |
| hs ファイル | hsphelp\llmod3_stdio.hs |