はじめまして。私は最近VB6.0を始めた者です。
今テキストファイル内の数値データをソートする方法を探しているのですが
なかなか見つからず、ここにたどり着きました。
テキストファイル内に
1
10
2
13
と並んでいるデータを
1
2
10
13
と並べかえたいのですが何か良い方法はありませんか?
詳しいかた是非アドバイスをください!
宜しくお願い致します。
>なかなか見つからず、ここにたどり着きました。
見つからなければ自分で作れば?ソートのプログラムなんて
基本中の基本だから、どんな入門本買っても30頁目くらいに
サンプルプログラムが載ってる可能性200%だけど?
『クイックソート』『バブルソート』『アルゴリズム』
あたりをキーワードにすればWEB検索でもみつかるだろうし。
>と並べかえたいのですが何か良い方法はありませんか?
方法は自分で考えてきて下さい。それで分からない部分が
あるなら答えますし、もっと効率のいい方法があれば紹介
します。内容的に『分かりません。プログラム作って下さい。』
と同レベルの質問ですね。ここはお仕事依頼の掲示板では
無いと思いますが?
まるるうさんの言うとおり
VBが初心者とかいう以前の問題で
これは、初歩的なアルゴリズムの問題なので
ネットで「ソート」とさえ検索していればぞろぞろ出てきます。
>何か良い方法
特異なことをやるわけではなさそうなので、
「クイックソート」法でやってしまえばよいと思います。
ListBoxコントロールにはソートプロパティがあります、それを利用して。
List1のSotedプロパティをTrueに
List2のSotedプロパティをFaleに設定
Dim a(0 To 4) As String, n As Integer
Const keta = 5
a(0) = "1": a(1) = "10": a(2) = "2": a(3) = "13": a(4) = "22"
For n = 0 To 4
List1.AddItem String(keta - Len(a(n)), "0") + a(n)
Next
For n = 0 To List1.ListCount - 1
List2.AddItem Val(List1.List(n))
Next
こんな手も有ります、なぜかは自分で考えて。
あれ!
書きこんでいるうちに2つもレスが付いていた。(^^;
たぶん、ソートのアルゴリズムが解らないんじゃなくて、
テキストのソートを数値のソートに置き換えることが、
解らないのでは、それとも両方かな。
>テキストのソートを数値のソートに置き換えることが、
テキストが文字列だろうが数値だろうが、
ソートには、そんなに影響はないと思う。
並べたい理想の順番が数値ならば、そのような入れ替えをすればよいだけで・・・。
1.テキストファイルの読み込みは実装できているのか?
2.ソート法は何を選択しているのか?
3.ソートした結果は、何(画面?それともファイル?)に出力するのか?
問題点を切り分ければ・・・。ネットで探すのも簡単なんだろうけど
ツイート | ![]() |