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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0528
通りすがり「dirlistのソート順」の続き1解決


通りすがり

リンク

2021/5/28(Fri) 22:11:54|NO.92962

「dirlistのソート順」の続き
http://hsp.tv/play/pforum.php?mode=pastwch&num=87090

dirlistで取得できるファイル名一覧は文字コード順でソートされますが、Windowsのエクスプローラーで名前順ソートすると同じ順になりません。
Windowsのほうはもう少し賢く(?)、数字は数値順で考慮されるようです。

私も同じ悩みを抱えこちらのいののてさんのサンプルを見て解決しました。

サンプルではバブルソートでしたがクイックソートにブラッシュアップしたのを作ったので返信しようとしたのですが、私の画面からはなぜか返信できませんでした。
過去一定時間過ぎたものは返信できないのでしょうか。
あえて新しくスレッドを立ち上げる必要があるほどかは分かりませんが、知識の共有として書き込んでおきます。




#include "hsp3util.as" #module #uselib "shlwapi" #cfunc StrCmpLogicalW "StrCmpLogicalW" wstr, wstr #deffunc qsort array a,int pivotcnt,int i_,int j_ if j_-i_<=1:return i=i_ j=j_ p=a.pivotcnt repeat -1 repeat -1 if StrCmpLogicalW(a.i,p)>=0:break i++ if i==j_:break loop j-- repeat -1 if StrCmpLogicalW(a.j,p)<=0:break j-- if j<=i:break loop if i<j{//swap tmp=a.i a.i=a.j a.j=tmp }else{ break } loop qsort a,(i_+i)/2,i_,i qsort a,(i+j_)/2,i,j_ return #global list = {"005.png 1.png 10.png 2.png a1.png"} note2array list_arr,list//複数行文字列を配列へ len=length(list_arr) qsort list_arr,len/2,0,len array2note list,list_arr//配列を複数行文字列へ mes list



この記事に返信する


ham

リンク

2021/5/30(Sun) 16:04:59|NO.92972

同じ悩みを持っていたのでとても助かりました。
モジュールお借りします!(しました)
バブルソートと比べて10倍ほど速くなりました。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.92962への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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