掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
構造体配列の複数キーソート (ID:89605)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
もともとVBには単純なソートの関数さえ存在しません。 ましてユーザー定義型となると。。。。 多次元配列のソート関数を自分で作るしか有りません。 ただしいくら頑張っても、VBで作るソートは遅いですよ。 なぜ文字列のソートを勧めたのかと言いますと、データーベースと言うことで データーがかなり大きいと想像されたからです。 文字列にしてファイルに落としてしまえばDOSのSortコマンドが使えるからです。 たとえば下のコードは10万件のソートを、一瞬でやってしまいます。 Option Explicit Private Type db idno As String rankupdate As Variant End Type Dim mdbdata(100000) As db Private Sub Form_Load() Dim i As Long Dim File1 As String, File2 As String Dim FileNo '------テストデーターの作成-------------------------- For i = 0 To UBound(mdbdata) - 1 mdbdata(i).idno = Format(CStr(i), "0000000000") 'サンプルのデーター mdbdata(i).rankupdate = Date + (i \ 10) 'サンプルのデーター Next '---------------------------------------------------- File1 = App.Path + "\" + "test1.txt" 'ソート前 File2 = App.Path + "\" + "test2.txt" 'ソート後 FileNo = FreeFile Open File1 For Output As #FileNo For i = 0 To UBound(mdbdata) - 1 Print #1, mdbdata(i).rankupdate & "," & mdbdata(i).idno 'データー結合 Next Close 'ソート Shell Environ("ComSpec") & " /c sort /r <" & Chr(34) _ & File1 & Chr(34) & " > " & Chr(34) & File2 & Chr(34) End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.