配列カスタムソート (はいれつかすたむそーと)

分類分類/配列・ハッシュ・グループ/配列基本操作
種類命令
引数{参照渡し=?}AをSで|Aに
説明配列AをプログラムS(文字列で与える-比較用変数はAとB)でソートする。Aの内容を書き換える。
識別id:357

説明 (寿司太郎) [2005年01月26日]

比較関数を指定して配列を好きな順番で並べかえる命令です。

以下は、数値を比較する関数を与えて順に並び替える例です。

# --- メイン
配列A=「30,2,40,50」を「,」で区切る。
配列Aを「数値比較処理」で配列カスタムソート。
配列Aを表示。
# --- 比較関数
●数値比較処理
  それは、A-B
/* 結果
2
30
40
50
*/

以下は、もう少し複雑な例です。

名簿は「やすし,30
かつじ,20
ただお,12
ますじ,18」

名簿を「年令順処理」で配列カスタムソートして表示。

●年令順処理
  Aを「,」で区切る。A=INT(A\1)
    Bを「,」で区切る。B=INT(B\1)
    それは、A-B

補足説明 (mr) [2009/06/27]

引数として指定する関数には、並び順を決定するために、2つの入力内容をどのように比較するのか、そのロジックを、変数Aと変数Bを対象として記述します。そしてその関数の戻り値は、プラスの整数かマイナスの整数である必要があります。この情報を元に、対象のリストの並び順が決まります。

CSVの日付をソート (クジラ飛行机) [2005年05月26日]

CSV形式のデータの特定のフィールドを日付順に並び替える例です。

日付一覧は「ひな祭り,2005/03/03
こどもの日,2005/05/05
初詣に行く,2005/01/01」

日付一覧を表示。
「--- 日付順に並び替え ---」と表示。
日付一覧を「B【1】とA【1】の日数差」で配列カスタムソート。
日付一覧を表示。

列挙したファイルを更新日時でソートする

ファイル更新日時命令を使って、ファイル名の配列を更新日時順にカスタムソートするサンプルです。

ファイル列挙する。
それを「AとBでファイル更新日時比較」で配列カスタムソート
それをメモ記入

●ファイル更新日時比較(AとBで)
 A日時とは文字列=Aのファイル更新日時
 B日時とは文字列=Bのファイル更新日時
 もしA日時<B日時ならば、-1を戻す
 違えば、1を戻す

参考