コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
M/M(IS04) ◆VziyyhBImGsa
2019/10/14 9:42
質問
指定した拡張子のファイルのみを読み込んだりいろいろする方法(3号)
今ブラウザもどきを作ってるんですが、FINDEXのように指定した拡張子のファイルを読み込んだりいろいろする方法が分からないので誰か教えてくだされ()
FINDEXのプログラムを見たりネットで調べたりしましたが分からんかったんで。

コメント

アバター
MoriKawa/Midorimori 2019/10/14 9:45 ◆VziyyhBImGsa
(Moonbrowserでは)ないです
アバター
高原のな 2019/10/14 9:53 ◆bY8RViwvoODw
どのようなことをするのか分割していくと、個々の命令に当てはめていけるので、具体化して分割していきましょう(というわたしがいつも言っているやり方)

「指定した拡張子のファイルのみを読み込んだりいろいろする方法」を分割すると、「指定した拡張子のファイル一覧を取得する」「ファイル一覧を使って、読み込んだり、その他いろいろする」といったところでしょうか。

今回はFILES命令(ヘルプの2番目の内容)と配列処理、文字列処理が大いに役立ちそうです。ヘルプに載っているサンプルコードとかも試してみてくださいな。

FILES命令では、全部ごっちゃにしたファイル一覧を取得することしかできないので、ファイル一覧を取得したのちに指定した拡張子のファイル名だけを残しておく必要がありそうです。拡張子の長さが決まっているならばRIGHT$命令を使えばうまくいきそうですね。(例:.TXTファイルの場合 RIGHT$(NAMETBL$[I],4)==".TXT"とか)

さらにもう一点付け加えると、FILES命令で取得したファイル名一覧の先頭に、テキスト系ファイルなら「*」バイナリ・データ系ファイルなら「 」が入ってしまっているので、これを削り落とす必要があります。これもRIGHT$命令でやってもいいですし、MID$命令を使うこともできます。

そうして得られた純粋な「指定した拡張子のファイル名」を、そのための配列に上手に入れていけば完成です。配列の長さを予想することができない時は、DIM(またはVAR)命令で最初の長さを0にしておいて、PUSH命令でデータを足していくとうまくいきます。
アバター
M/M(IS04) 2019/10/14 10:09 ◆VziyyhBImGsa
やってみます
アバター
高原のな 2019/10/14 10:17 ◆bY8RViwvoODw
あ、拡張子の判別は、「.」を含むようにするとエラーを未然に防げます
例えば、「.TXT」を判別しようとしているとき、同じプロジェクトに無拡張子のファイルで「TALKTXT」みたいな(中身もフォーマットと違う)ファイルが存在していたときにハネることができます
アバター
M/M(IS04) 2019/10/14 13:34 ◆VziyyhBImGsa
形が出来てきました!ありがとうございます!
アバター
あまさとしおん 2019/10/14 22:24 ◆mzDKTVUAtwqE
公開中の作品にEXFILES命令というDEFがあるんだけど、複数のDEFが組み合わさってるので使いにくいな…
アバター
あまさとしおん 2019/10/18 16:46 ◆mzDKTVUAtwqE
アルバム見てたらちょうどいい感じにまとめてあったので参考にどうぞ。

EXFILESは高機能なので拡張子以外の方法も使えます
例:EXで始まる名前のファイルを探す、とか

高機能な分だけプログラムが長いので、拡張子絞り込みだけで十分な場合は、画像よりもかなり短いプログラムにできます。

EXFILES(ファイル種別,キーワード,検索方法)
ファイル種別= TXT: または DAT:
検索方法= ゼロなら「含まれる」 マイナスなら「先頭が一致」 プラスなら「末尾が一致」

拡張子絞り込みは「末尾が一致」です。

ファイル名の先頭につく「*」「 」を消す機能は付いていないのでご注意い。
アバター
M/M(IS04) 2019/10/20 11:07 ◆VziyyhBImGsa
後で確認しまつ

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -