プロが教える店舗&オフィスのセキュリティ対策術

VB(2010)で行う構造体のソートの方法についてお尋ねします。
下記のようなデータのソートを行いたいです。
レコード数:約500万(テキストファイル)
構造体:
data(i).class1
data(i).class2
data(i).class3
data(i).class4

data(i).class1-.class2-.class3の順でソートを行いたいです。

いくつかのサイトで調べ、.NETのサンプルコートは見つけたのですが、当方初心者のため複数の条件でソートする方法と仕組みを理解することができませんでした。

どなたか教えていただけるとありがたいです。
よろしくお願いします。

A 回答 (1件)

> data(i).class1-.class2-.class3の順でソートを行いたい


の意味が不明確ですが、class1のほうが重要視される、という意味だとすると

簡単には、Class1が上位の桁、Class2が中位の桁、Class3が下位の桁、を表していると考えることです。
なので、大小比較の部分を

if data(i).class1>data(j).class1 then
→ data(i)はdata(j)より大きい
else if data(i).class1<data(j).class1 then
→ data(i)はdata(j)より小さい
else if data(i).class1=data(j).class1 then (実際はif以降は必要ない)
 → data(i)とdata(j)のclass1は同じ大きさなので、
   class2をこれまでと同様にして大小比較する
     もし、class2も同じなら、class3を比較する
end if

と置き換えればよいです。

この回答への補足

早速の回答をありがとうございます。
> data(i).class1-.class2-.class3の順でソートを行いたい
これは、data(i).class1-.class2-.class3の優先順でソートを行いたいということです。
言葉足らずでした。

補足日時:2014/04/22 14:32
    • good
    • 0
この回答へのお礼

下記サイトも参考にして作成することができました。ありがとうございました。
http://www.geocities.co.jp/SilkRoad/4511/vb/sort …

ただ、500万レコードは大変な処理時間を要します・・。

お礼日時:2014/04/22 16:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!