HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0523
たりらりらんファイルをD&Dした後、そのフォルダの中のファイル情報が欲しい5解決


たりらりらん

リンク

2010/5/23(Sun) 14:05:02|NO.32743

お世話になります。
仕事で、データとして写真を撮り、時間経過による変化や系統ごとによる違いを見比べる
ことがあるのですが、そのためのビューアーを作れないかな?と考えています。

なにはともあれ写真ファイルを読み込ませなくてはと思うのですが、D&Dの方法として、
exeファイルのアイコンにD&Dする。
HSPのウィンドウ上にD&Dする。
の2種類があるそうですが、モジュールやDLLやAPIなどなかなか理解できないていないので
今回は△諒法は避けようかと思っています。

写真が入っているフォルダをD&Dするとファイルパス(?と呼ぶのでしょうか)が得られる
ことはわかりました。( dir_cmdline で)
この後、dirlist 命令で写真ファイル名を得て表示させようと考えているます。
フォルダのある場所の情報は得られましたが、そのフォルダの中を覗く方法がわかりません。

よろしければお教え願います。



この記事に返信する


SYAM

リンク

2010/5/23(Sun) 15:17:31|NO.32744

「中を覗く」というのは、どういうことをしたいのでしょう?
とりあえずフォルダのパスがわかったなら、次にやることはたしかに dirlistなどで中身のファイル名を調べることだと思います。
それとは別に「覗く」というのが何をするのかがよくわからないので、もすこし細かく具体的に…。



GENKI

リンク

2010/5/23(Sun) 15:59:38|NO.32745

うん。何がしたいのかよくわからないですね。
とりあえず…。

> フォルダのある場所の情報は得られましたが、

dir_cmdlineでフォルダのパスは取得できた。

> そのフォルダの中を覗く方法がわかりません。

dirlist命令を使えばよさそうだが、フォルダ内のファイルの一覧を取得する方法がわからない。

と解釈しましたが、あっていますか?
読みようによってはファイルの一覧まで取得できたが、その先が…と言っているようにも見えますが、とりあえず前述したとおりと理解しておきます。

chdir "C:\\Program Files" ;dir_cmdlineで取得したフォルダ名を指定します。ここではとりあえず適当なのを指定してます。 sdim flist, 32000 dirlist flist, "*.jpg", 0 ;写真なのでおそらく拡張子は.jpgだと思います。 mes flist
こんな感じでファイル一覧の取得が出来ます。
あとはメモリノートパッド命令で1行ずつ切り分ければいいと思います。


あ、ちなみに「ディレクトリ」は「フォルダ」と同じ意味ですので。



たりらりらん

リンク

2010/5/23(Sun) 18:28:49|NO.32746

ああ・・・はっ!

えっと、まず、お返事ありがとうございます。
聞き方が悪くて申し訳ないです。そうなんです、お聞きしたかったことは、
得られたフォルダの位置情報(これを「パス」と呼ぶんですよね?)を
chdir 命令にかけて、次に dirlist 命令でそのディレクトリ(フォルダ)の中にある
画像ファイルのリストを調べたい、ということなんです。
(GENKIさんのおっしゃるとおりです。)

自分、勘違いしていたようです。

「dirlist 命令は、カレントディレクトリの存在するディレクトリ内の、
 ファイルやフォルダの一覧を取得できる。」

と思っていました。
正しくは、
「dirlist 命令は、
 カレントディレクトリ内にあるファイルやフォルダの一覧を取得できる。」

だったんですね。
(GENKIさんの用意してくださったサンプルプログラムを何度か試して気がつきました。
 Cドライブの中に(直下に、つまり Program Files と同じフォルダに)画像ファイルをおいた場合と、
 C:\\Program Files の中に画像ファイルを入れた場合とを試しました。)

ありがとうございました。それでなんですが、以下のプログラムを実行ファイルを作って
実行してみると、「error 12 内部エラーが発生しました。(12)」
というメッセージが出てうまくいきません。なぜでしょうか?

mes dir_cmdline chdir dir_cmdline dirlist filelist,"*.jpg",0 mes filelist



SYAM

リンク

2010/5/23(Sun) 19:23:26|NO.32747

chdir 命令に指定したパスに余計なダブルクォーテーションマークが入っているからです。
ダブルクォーテーションマークがある場合にはそれを除去しましょう。

d=dir_cmdline if strmid(d,0,1)="\"":d = strmid(d,1,strlen(d)-2) mes d chdir d dirlist filelist,"*.jpg",0 mes filelist



たりらりらん

リンク

2010/5/23(Sun) 19:48:39|NO.32748

SYAMさん、ありがとうございます。できました。

mes dir_cmdline
確かに、この命令が実行されたとき表示されるパスは「"C:\\〜"」というように
ダブルクォーテーションで囲まれていました。
「chdir 命令はパス名を""で囲むこと。」とあったので、そのまま chdir dir_cmdline と
やってしまいました。
mes で画面に表示されるということは、文字列を囲むための""では無いということですもんね。

SYAMさんとGENKIさんにはいつもお世話になっている気がします。
ほんとに感謝です。



ONION software Copyright 1997-2021(c) All rights reserved.