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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
1022
サンメモリノートパッド形式のソートについて2解決


サン

リンク

2009/10/22(Thu) 23:43:40|NO.28510

メモリノートパッド形式の文字列のソートについてなのですが、
例えば


#include "hspda.as" a="10,3,5,12,あいうえお\n5,10,12,13,かきくけこ\n5,4,8,12,さしすせそ\n0,2,6,11,たちつてと" sortnote a,0 mes a stop

上記のプログラムを実行した時、結果は


0,2,6,11,たちつてと 10,3,5,12,あいうえお 5,10,12,13,かきけこ 5,4,8,12,さしすせそ

上記ようになります。それを


0,2,6,11,たちつてと 5,4,8,12,さしすせそ 5,10,12,13,かきけこ 10,3,5,12,あいうえお

上記のようにするにはどうすればよろしいのでしょうか?
「,」で区切られた文字数値をひとつずつ読み取って
「0 5 10」をソートする時には1バイト文字に「0」を仮に付けて
「00 05 10」としたあとにソートを実行してまた元に戻すといった感じでしょうか?
また、


5,4,8,12,さしすせそ 5,10,12,13,かきけこ

先頭が「5」で同じ時は次の「4」と「10」でソートする時もやはり
「04」「10」と直してソートすると言う感じでしょうか?

「あいうえお」「かきくけこ」は仮ですのでここはソートされなくても構いません。
あくまでも数値でソートができればよいので。
よろしくお願いします。



この記事に返信する


Him

リンク

2009/10/23(Fri) 02:12:34|NO.28511

sortstr,sortget を使った方がいいかもしれません

#include "hspda.as" a="10,3,5,12,あいうえお\n5,10,12,13,かきくけこ\n5,4,8,12,さしすせそ\n0,2,6,11,たちつてと" notesel a sdim b,,noteinfo(0) sdim c,,noteinfo(0) i = 0 repeat noteinfo(0) n = cnt getstr c(n), a, i i + strsize split c(n), ",", results repeat 4 b(n) + strf ("%02d", results(cnt)) loop loop sortstr b, 0 repeat noteinfo(0) sortget x, cnt mes c(x) + " / " + b(cnt) loop stop



サン

リンク

2009/10/23(Fri) 21:07:01|NO.28521

Himさん

ありがとうございます!
思った通りのソートができて、感謝です!
本当にありがとうございました!!



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