• 締切済み

Visual Basicで数字を並べ替えるプログラム

Visual Basic でメモ帳などに入力されている数字(大量の数字)データを読み込んで、それを小さい順に並べ替えて、データとして保存する方法がわかりません。

noname#188250
noname#188250

みんなの回答

  • usokoku
  • ベストアンサー率29% (744/2561)
回答No.2

>大量の数字) ではなく、最大値からみて倍精度整数(Dim lngSortData() as Long, マイクロソフトの提唱している書き方)の単なる普通の整列ですね。 「OpenFiledialogとSaveFiledialog」ですと、VB2008かな。このバージョンが動く環境にないので、変なことを書いている可能性があります。 >(1)変数の定義や初期設定を行う。 「変数の定義」は、整列だけならば、 「DIM なんたら」という文字で始まる文です。 「初期設定」は、「Const (なんたら) = (なんたら) 」という文です。 これを、どこに書くかと言うのは、プログラムのデザインの問題で、仕様書か著者本人の好みのいずれかで決定します。 「データを入力する」変数とか、「入力したデータ」の数とか、最大入力可能なデータ数を決定するのがこの内容です。 「ReDim なんたらこうたら」「Set なんたらこうたら」という文も初期設定に入るでしょう。これは、「宣言した変数を初期化せよ」という意味が含まれます。 >(2)こ >Input(1,・・・・)を使う。 このInput命令を使ったことがない(私はVB6)ので回答不能。 >(3)この間に並び替えをするプログラムを書く。 >「小さい順」の定義。 の内容が補足されないので回答不能。 >(4)この間に結果を出力するプログラムを書く。 >結果を出力するためにはPrintline(1,・・・・)を使う。 このPrintline命令の使用経験がない(私はVB6)ので回答不能。 私の場合、VBというよりも、GWの頃の資源を引きついているのでVB専用命令を原則として使っていません(インターフェースを除く)。「OpenFiledialogとSaveFiledialog」ですが、使い方が適合しないので、自前で類似のルーチンをつくってやっていますので、答えられません。検索した範囲では、入出力ファイル名の決定ルーチンのようです。 http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet07/vb6tonet07_01.html の後半がファイル入出力の使い方ですので、こちらか、このサイトで使われている命令語で検索するとある程度見当つくでしょう。 文字として整列する場合 http://oshiete1.goo.ne.jp/qa810261.html この質問の直後に、数値型で整列する方法の質問があったはずですが、こちらのアドレスは消失。

  • usokoku
  • ベストアンサー率29% (744/2561)
回答No.1

「モ帳などに入力されている数字」のコード。JIS, s-JIS, Uni-code,....。 「小さい順」の定義。 00,1,10,11,2,21,...と並べる場合と 00,1,2,...,10,11,...,21,...と並べる場合。 後者の場合には、文字→内部表現変数への変換方法を指定してください。 漢数字等の取り扱いの有無についてもお知らせください。 あるいは、文字型で数値のようにならべるのか。 「大量の数字」より、100桁とか300桁とかが予想されるからです。 Win98の時代ですと、メモ帳の最大編集可能容量が64KBだったので、それほど神経は使いませんでしたが、近年この制限が外れたような話を聞きますので。

noname#188250
質問者

補足

Visual Basic2008で以下の様な乱数を外部から読み込んで、並べ替えたデータを保存先を選択して、保存する方法がわかりません。 例)乱数の例 1283 9983 9021 882 839 91 22 375 1128 763 2887 1922 773 6 738 11 982 563 7332 89732 98 83 27 8663 673 7382 887 9361 82873 7 上の数は、30個ありますが、個数が増えても(例えば1000個)並び変えられるようなプログラムにしたいです。 プログラムは、以下のようにしたいのですが。 『FormにツールボックスからOpenFiledialogとSaveFiledialogを張り付ける。 Private Sub・・・・・・  (1)変数の定義や初期設定を行う。 OpenFileDialog1.ShowDialog() FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)  (2)この間にデータを入力するプログラムを書く。  データを入力すためにはInput(1,・・・・)を使う。 FileClose(1)  (3)この間に並び替えをするプログラムを書く。 SaveFileDialog1.ShowDialog() FileOpen(1, SaveFileDialog1.FileName, OpenMode.Output)  (4)この間に結果を出力するプログラムを書く。 結果を出力するためにはPrintline(1,・・・・)を使う。 FileClose(1) End Sub」 (1)~(4)にどんなプログラムにすればよいかがわかりません。

関連するQ&A

  • Visual C++ 2005 のプログラムについて

    今回課題としてC++のプログラムを作れというものを突然出されて、C++をほとんど知らないので戸惑っています。 ○数字の、1を入力するとE、2ならD、3ならC、4ならB、5ならA、を表示するプログラムをswitch文を使ってつくりなさい。 ○九九の表を表示するプログラムを作りなさい。配列を使用して作りなさい。 というものです。Visual C++ 2005を使っています。いろんなサイトを見て自分なりにやってみましたが、どうしてもうまくいきません。どういったプログラムになるのか教えてください。よろしくお願いします。

  • VISUAL BASIC と VISUAL C その2

    VISUAL BASICでプログラムを組むと、VISUAL Cに比べソフトが重たくなるとか、外部との入出力機能が劣るとかそんなことはないのでしょうか。VISUAL BASICは、5年以上前に良く使いましたが、Cを全く知りません。PLCから50個ほどのデーターを入力して、それをリアルタイムに表示したり、グラフにしたりするWINDOWSソフトを作ろうとしています。VISUAL BASICでも組めると思いますがが、なにせVISUAL Cを全く知らないため、勉強したらもっといいことがあるのか教えてください。

  • Excel 全角数字を半角数字に

    エクセルを使ってデータを管理しています。 郵便番号の項目には、500件ぐらい郵便番号が入力されていますが、全角数字で入力されたデータと、半角数字で入力されたデータが混じっていて、見辛いし管理もしづらいです。  関数を使って、全角数字を半角数字に変換する方法はありますでしょうか?

  • visual studio間変換について

    visual studio2010にて作成したデータ(VBにてお絵かきツール作成)を、.vb(VBファイル形式)をフォームデータなどと一緒に、保存しましたが、2008では、開くことができません。 2008にて開けるようにする方法を教えてください。 できれば、2008形式で保存するやり方が一番うれしいです。

  • 数字のコピー

     初めまして、よろしくお願いします。  関数で導き出された数字を再び関数計算しようと別のセルにコピーして貼り付けると、表される数字ではなく、関数を貼り付けてしまい計算されません。大量にデーターがありますので、いちいち数字を拾うわけにもいきません。何かいい方法はありませんか、よろしくお願いします。

  • 特定の数字でなければエラーを出したい

    こんにちは。 Visual Studio 2005を用いてVisual C++を使ったフォームアプリケーションを作成しています。 3つのテキストボックスA、B、Cとボタンがあります。 テキストボックスに数字(半角)を入力させてボタンを押させるのですが、ボタンを押した時に、 Aは0,1,2 Bは0,1,2,3 Cは0,1,2,3,4 のどれかを入力している時のみOKにして、それ以外の文字や数字を入力していた場合はエラーメッセージを出すようにしたいのです。 できるだけ簡単なコードで記述したいのですが、良い方法があればどうぞよろしくお願いします。

  • Visual C 2005について教えてください。

    プログラミング初心者です。学校でVisual Studio 2003で習っています。最近自宅で配布の2005を使い出したのですが簡単な質問なのですが、少し違うと思うと思うところがあるので教えてください。 例えば、 printf("数字入力"); scanf("%d",&a); scanf("%d",&b); scanf("%d",&c); としてデバッグして全て5を入力した場合、エンターを押すと2003の場合、 数字入力5 5 5 と表示されたと思うんですが、2005の場合は 数字入力5 5 5 とエンターキーで改行してしまいます。 これを直す設定のようなものがあれば教えて欲しいです。お願いします。

  • Visual Basic 6.0

    Visual Basicで 100から1までの数の中で3で割ると2あまる数を大きい順にでるようにプログラムしたいのですがどのようにすれば良いでしょうか? 詳しい方教えてください。

  • Visual Basicの平方根について

    Visual Basic を用いて、TextBoxから入力した 数字について、平方根を求め、Labelに書き出す プログラムを作りたいのですが、全くわかりません。 コピペしたらプログラムが動くコードを教えてください。 お願いします。

  • ○20から先の数字を出したいのですが・・・

    エクセル上で、○1から順に数字を入力していましたら、○20の次から(21以降)の出し方がいくら考えてもわかりませんでしたので、どうすれば表示されるのか教えてください。よろしくお願いいたします。