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

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

179F橋:2005/02/14(月) 01:51:48
>>177
私の会社と似たようなデータみたいですね(笑
F-ISAMやBtrieve、もしくはアクセスなどのデータベースならファイルを読み込むときに
年齢昇順で金額降順に読み込む。って事が簡単なんですけどね
(私の会社ではある程度の件数以上(1000件以上くらい)はこのようにしてます)

データベースが使えなくて配列でなんとか行わなければならないのなら・・・
別の検索用のキー配列を用意するのがとりあえずは早くなるかと・・・

'/// 年齢昇順、金額降順用のsortキー用の配列を作成(ファイル読込時に作成するといいかも)
for j&=1 to 50000
 nen$=right$( space$(3)+str$( SORTWORK1(J&, 2) ),3 )
 kin&=1000000&-val( SORTWORK1(J&, 6) ) '金額は0〜999999(6桁)の場合
 kin$=right$( space$(6)+str$( abs(kin$) ),6 )
 sortkey$(j&)=nen$+kin$+right$( space$(5)+str$(j%),5 )
next j&

'/// sortkey$()をsortするルーチン・・・はいくつか方法あるので後ほど

'/// sotrkey$()を参照しながらsort結果を出力
for j&=1 to 50000
 code&=val( right$( sortkey$(j&),5 ) )
 for m=1 to 6
  SORTWORK1(code&, 6)
 next m
next j&

(↑一切テストしてないのでプログラムが間違っていたらすいませんです)

sortの方法はいくつか考えられますが・・・
配列のsortkey$()をのみをsortすればいいだけなので単純になるので
どこぞでクイックソートのサンプルでも探して簡単に出来るのでは無いかと・・・

それとF-BASICのサンプルにsortのサンプルが(こっそりと)あるので
それを利用して見ると早いと思います
(\fbasicv63\sample_b\ccall\sortを見てみてください)

クイックソートのサンプルが見つからないとかdllの使い方が分からない場合は
sortkey$()をテキストファイルに書き出してテキストファイルを別のソフトを使用し
(フリーソフト sort テキストなどでGoogleで検索してみてください)
ソート後のテキストファイルを順次読み込む。等が考えられます
テキストファイルのソート専用のソフトは50000件でも数分だと思いますので
ファイルの読込時間や書込時間を考えてもトータルでかなり高速ではないかと・・・

で。どの方法を使うか。使いたいのかが分からないので今回は詳細は省略しますが
1.クイックソートのサブルーチンを使うのか
2.F-BASICのサンプルを使うのか(使った事ないけど多分お勧め)
3.テキストファイルにしてソートを他のソフトに任せるのか

の返答を頂ければもう少々細かくお話しますです


新着レスの表示


名前: E-mail(省略可)

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

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

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

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