テキストファイルの数値データをソートする方法


匿名  2005-01-05 19:25:08  No: 118595

はじめまして。私は最近VB6.0を始めた者です。
今テキストファイル内の数値データをソートする方法を探しているのですが
なかなか見つからず、ここにたどり着きました。

テキストファイル内に
1
10
2
13
と並んでいるデータを
1
2
10
13
と並べかえたいのですが何か良い方法はありませんか?

詳しいかた是非アドバイスをください!
宜しくお願い致します。


特攻隊長まるるう  2005-01-05 19:45:06  No: 118596

>なかなか見つからず、ここにたどり着きました。
見つからなければ自分で作れば?ソートのプログラムなんて
基本中の基本だから、どんな入門本買っても30頁目くらいに
サンプルプログラムが載ってる可能性200%だけど?

『クイックソート』『バブルソート』『アルゴリズム』
あたりをキーワードにすればWEB検索でもみつかるだろうし。

>と並べかえたいのですが何か良い方法はありませんか?
方法は自分で考えてきて下さい。それで分からない部分が
あるなら答えますし、もっと効率のいい方法があれば紹介
します。内容的に『分かりません。プログラム作って下さい。』
と同レベルの質問ですね。ここはお仕事依頼の掲示板では
無いと思いますが?


いな  2005-01-05 20:02:15  No: 118597

まるるうさんの言うとおり

VBが初心者とかいう以前の問題で
これは、初歩的なアルゴリズムの問題なので
ネットで「ソート」とさえ検索していればぞろぞろ出てきます。

>何か良い方法
特異なことをやるわけではなさそうなので、
「クイックソート」法でやってしまえばよいと思います。


ねろ  2005-01-05 20:07:38  No: 118598

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

こんな手も有ります、なぜかは自分で考えて。


ねろ  2005-01-05 20:13:25  No: 118599

あれ!
書きこんでいるうちに2つもレスが付いていた。(^^;
たぶん、ソートのアルゴリズムが解らないんじゃなくて、
テキストのソートを数値のソートに置き換えることが、
解らないのでは、それとも両方かな。


いな  2005-01-05 21:04:41  No: 118600

>テキストのソートを数値のソートに置き換えることが、

テキストが文字列だろうが数値だろうが、
ソートには、そんなに影響はないと思う。
並べたい理想の順番が数値ならば、そのような入れ替えをすればよいだけで・・・。

1.テキストファイルの読み込みは実装できているのか?
2.ソート法は何を選択しているのか?
3.ソートした結果は、何(画面?それともファイル?)に出力するのか?

問題点を切り分ければ・・・。ネットで探すのも簡単なんだろうけど


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加