したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

■■■20レス以内で済むF-BASICの質問はこちらへ■■■

190nisii:2005/02/16(水) 17:39:10
>>179
年齢と金額の2つのキーがあり、それぞれ昇順と降順でソートする方法案。

ソートの優先順を1年齢、2金額と想定します。
元データはカンマ区切りなどのテキストファイルと想定します。

氏名,年齢,住所,電話,性別,金額(改行)
氏名,年齢,住所,電話,性別,金額(改行)


まず、各行の先頭に固定長のキーを加えたファイルを作ります。()内は例。

年齢(023)金額(000010000)氏名,年齢,住所,電話,性別,金額[改行]
年齢(031)金額(000021500)氏名,年齢,住所,電話,性別,金額[改行]


このとき、金額が最大9桁なら、キーの値は(999999999 - 金額)とする。
金額に負の値が存在しうるなら、(999999999 - ( 金額 + 499999999))とする。(最大値に注意)
SORT.EXEなどテキスト対応のソートプログラムがあれば、このままソート。

最後に、先頭のキーを取り除きます。


------------------------
高速なバイナリソートをするなら、レコードを固定長にします。

連番(000001)年齢(023)金額(000010000)
連番(000002)年齢(031)金額(000021500)


これをソートし、最後に連番を元に氏名・住所ほかを取り出します。

メモリが充分あるなら、次のレコードでもOKでしょうか?

年齢(023)金額(000010000)氏名,年齢,住所,電話,性別,金額…長さをそろえるスペース
年齢(031)金額(000021500)氏名,年齢,住所,電話,性別,金額…長さをそろえるスペース


------------------------
参考までに、DOS用のソートプログラム。
http://www.vector.co.jp/vpack/filearea/dos/util/text/sort/index.html


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板