その16 ファイルの選択と表示

;テキスト表示 type.as
	screen 0,600,400,1
	alloc buf1,32000	;メモリバッファを確保
	str buf1		;文字変数として定義
	alloc dl,3200
	dirlist dl,"*.as"	;ファイルリストを作成
	a=0:objsize 120,24
	combox a,120,dl		;表示ファイルを選択
	button "ok!",*start
	stop
*start
	notesel dl		;ファイルリストを設定
	noteget fn,a		;選択したファイル名を得る
	bload fn,buf1		;buf1に読む込む
	mesbox buf1,600,320,0	;変更不可のオプションで表示
	stop

テキストを加工するユーティリティーを作る時に必要なパーツとして、ファイル選択があります。
ファイル名をいちいち打ち込んでいたのでは、手間もかかるし、ミスも増えるでしょう。
HSPではdirlist命令とnote命令の組み合わせで、大変簡単にファイル選択が出来るようになっています。
ファイルコンバータなどの自動化にも、このテクニックが使えます。
今回のサンプルでは同一ディレクトリにある、拡張子asのファイルを表示するようになっています。
少なくともtype.asがあるでしょう。
1つも.asのファイルがない場合はエラーで止まってしまいます。
では、スクリプトの説明をします。
まず、dirlist命令で変数dlにファイルリストを作成します。
このとき、*や?といったワイルドカード指定が使えます。
つぎに、combox命令でファイルを選択できるようにします。
ボタンを押すと表示部分にいきます。
combox命令で、どのファイルが選択されたかが番号になって、変数aに入っています。
これは、note命令で扱う変数の指定方法と同じなので、2行でファイル名が取り出せます。
notesel命令で、変数を指定して、noteget命令で中身を取り出します。
非常に簡単です。
bload命令で変数buf1に読み込んで、mesbox命令で表示します。
note命令は、最初わかりにくいかも知れませんが、実は非常に簡単で便利な命令たちです。
ツールプログラマは必ずマスターしてください。

また、このままのスクリプトではファイル名が64文字以上の場合、
正常に動かない可能性があります。
心配な場合は修正しましょう。

type.zipをダウンロード。


その17に行く

目次に戻る