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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1028
大富豪A番号順に並ぶ3解決


大富豪A

リンク

2012/10/28(Sun) 21:40:57|NO.50305

dirlistでファイルを読み込むと名前順に読み込みますが、更新日時やサイズ順に読み込むことは
できますか?
更新日時やサイズの取得はできましたが、順番にならべることはできますか?
たとえば、101,3004,58,20などのバラバラでも、20,58,101,3004に並べる。
の2つのどちらかの方法のやりかたを教えてください。



この記事に返信する


YSR

リンク

2012/10/28(Sun) 22:50:43|NO.50309

>順番にならべることはできますか?
……普通にソートしたらいいんじゃね?


#include "hspext.as" #module #defcfunc ftime str filename,int opt dim time,24 fxtget@ time,filename sdim dat,1024 dat=strf("%04d/%02d/%02d %02d:%02d:%02d.%03d",time(8*opt),time(8*opt+1),time(8*opt+3),time(8*opt+4),time(8*opt+5),time(8*opt+6),time(8*opt+7)) return dat #global timeopt=0 ;0〜2が作成日・更新日・最終アクセス日に対応 compopt=0 ;0なら昇順、1なら降順 sdim filelist,32000 dirlist filelist,"*.*",1 filenum=stat sdim filename,260,filenum notesel filelist repeat filenum noteget getline,cnt filename(cnt)=getline loop sdim tmp,260 for i,0,filenum-1 for j,i+1,filenum a=ftime(filename(i),timeopt) b=ftime(filename(j),timeopt) if (1-2*compopt)*(a!b)>0 { tmp=filename(i) filename(i)=filename(j) filename(j)=tmp } next next sdim output,32000 repeat filenum output+=filename(cnt)+"\t"+ftime(filename(cnt),timeopt)+"\n" loop mesbox output,400,400,4 stop



YSR

リンク

2012/10/28(Sun) 23:06:20|NO.50310

アルゴリズム:タイムスタンプを取得後バブルソートしただけ。
>実装しやすかったから。万単位だったらクイックとかに書き換えていいんじゃね
あ、サイズ順は上のをちょっと手直しするだけでできる。
>dllを使わない分ソッチの方が簡単な気も



大富豪A

リンク

2012/10/29(Mon) 20:31:33|NO.50333

ありがとうございます。解決です!



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