分類 | 分類/配列・ハッシュ・グループ/配列基本操作 |
種類 | 命令 |
引数 | {参照渡し=?}AをSで|Aに |
説明 | 配列AをプログラムS(文字列で与える-比較用変数はAとB)でソートする。Aの内容を書き換える。 |
識別 | id:357 |
比較関数を指定して配列を好きな順番で並べかえる命令です。
以下は、数値を比較する関数を与えて順に並び替える例です。
# --- メイン 配列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
引数として指定する関数には、並び順を決定するために、2つの入力内容をどのように比較するのか、そのロジックを、変数Aと変数Bを対象として記述します。そしてその関数の戻り値は、プラスの整数かマイナスの整数である必要があります。この情報を元に、対象のリストの並び順が決まります。
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を戻す