複数のファイル名を取得
multiopen v1,v2,n3,n4
v1 : 選択されたファイル名を受け取るための変数 v2 : 情報 n3 : フィルタのインデックス(1から) n4 : Read Onlyボックスを付ける
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 スクリプトファイル(*.as)|*.as|テキストファイル(*.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 }
バージョン | 2.61 |
作成日 | 2004/03/01 |
著作者 | tom |
URL | http://www5b.biglobe.ne.jp/~diamond/hsp/hsp2file.htm |
備考 | llmod.asをインクルードする。必要に応じてabout.as,msgdlg.as,multiopen.as,console.as,unicode.as,dragdrop.as,input.asをインクルードする |
タイプ | 拡張命令 |
グループ | オブジェクト制御命令 |
hs ファイル | hsphelp\llmod_stdio.hs |