DOBON.NET DOBON.NETプログラミング掲示板過去ログ

テキストボックスの小さい順に並べてラベルに表示

環境/言語:[windows7/visual basic6.0/?]
分類:[VB6以前]

4つのテキストボックスに入力した数字をソートしてラベルに小さい順に表示するプログラムを作成するノルマを与えられています。しかしvisual basic6.0だとあまりい良い文献がなく、ほとんど参考になりません。ちなみに自分はオブジェクトを配置するくらいの技能までは持っています。そこから先がすすめません。
■No29494に返信(サテアさんの記事)
> 自分はオブジェクトを配置するくらいの技能までは持っています。
この場合「オブジェクト」とは、何を指していますか?

画面設計はできるが、コーディング技能は持ち合わせていないという意味なのか。
クラスを利用することはできるが、クラスを設計するスキルは無いという意味か。


> 4つのテキストボックスに入力した数字をソートしてラベルに小さい順に表示する
数字(文字列)を数値に変換する方法は分かりますか?
4つの数値があったときに、それらを小さい順あるいは大きい順に並び替えられますか?
あるいは、ソート後の4つのデータを、ラベルに表示させるコードが分からないのでしょうか。
この投稿はマルチポストです。

●マルチポストされている場所
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+201112/11120007.txt

----------
この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのマナーについて」をお読みください。

●書き込みのマナーについて
http://dobon.net/vb/bbs/index.html
この投稿はマルチポストです。

●マルチポストされている場所
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10517

----------
この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのマナーについて」をお読みください。

●書き込みのマナーについて
http://dobon.net/vb/bbs/index.html
■No29494に返信(サテアさんの記事)

ご投稿の内容は、この掲示板のルールに違反しています。「書き込みのルールについて」をお読みいただいてからご投稿いただけますように、ご協力をお願いいたします。

書き込みのルールについて
http://dobon.net/vb/bbs/index.html
■No29495に返信(魔界の仮面弁士さんの記事)
> ■No29494に返信(サテアさんの記事)
>>自分はオブジェクトを配置するくらいの技能までは持っています。
> この場合「オブジェクト」とは、何を指していますか?
>
> 画面設計はできるが、コーディング技能は持ち合わせていないという意味なのか。

まさしく前者の意味です。

> 数字(文字列)を数値に変換する方法は分かりますか?

わかりません。よろしくお願いします。
■No29508に返信(サテアさんの記事)
>> 画面設計はできるが、コーディング技能は持ち合わせていないという意味なのか。
> まさしく前者の意味です。
VB付属のヘルプ(VB6 なら MSDN ライブラリ、VB4〜VB5 なら Books Online)に、
チュートリアルがありますので、実際に課題の作成に入る前に、まずはそれを
一通り試してみる事をお奨めします。基礎学習なしで進んで行っても効率が悪いですし。


>>数字(文字列)を数値に変換する方法は分かりますか?
> わかりません。よろしくお願いします。
分からないのは、その部分だけなのですね。


Val 関数を使うと、数字を倍精度浮動小数に変換できます。
たとえば、
 Dim d As Double
 d = Val(Text1.Text)
という感じです。

あるいは、CInt や CLng といった型変換関数を使う事もできます。
 Dim i As Integer
 i = CInt(Text2.Text)
 Dim l As Long
 l = CLng(Text3.Text)

それぞれのデータ型が扱える数値の範囲や精度、および変換方法については
ヘルプの『データ型』の項を参照してみてください。目次から辿ると以下の項です。

[プログラミング ガイド]
└[Visual Basic の基本]
 └[プログラミングの基礎]
  └[変数、定数、およびデータ型]
   └[データ型]


-----
ちなみに、10、4、23、2 という四つのデータを並び替える場合、
それが数値であれば、2<4<10<23 という大小関係になりますが、
文字列だった場合は、10<2<23<4 という大小関係になります。

このため、数字の順にソートしたい場合には、TextBox 内の文字列を
数値に変換してやる必要があります。詳細については、ヘルプの
『並べ替えの順序と文字列の比較』の項をご覧ください。

[プログラミング ガイド]
└[Visual Basic を使ってできること]
 └[国際対応のアプリケーション]
  ├[国際対応のコードの記述]
  │└[並べ替えの順序と文字列の比較]
  └[2 バイト文字セット (DBCS) に特有な問題点]
   ├[ANSI、 DBCS、および Unicode 文字セット]
   └[DBCS の並べ替え順序と文字列比較]
2011/12/22(Thu) 16:16:44 編集(投稿者)

■No29509に追記(魔界の仮面弁士の記事)
>>>数字(文字列)を数値に変換する方法は分かりますか?
>>わかりません。よろしくお願いします。
> 分からないのは、その部分だけなのですね。

もし、並び替えの手順も必要なのであれば、下記の資料が参考になるかと思います。

[VB] ソートのアルゴリズム
http://support.microsoft.com/kb/169617/ja


3 種類のアルゴリズム(バブルソート、セレクションソート、シェルソート)が
掲載されていますので、いずれかお好きな物を組み込んでみてください。
(もちろん、ここに書かれていないソート方法を組み込んでも OK です)
この投稿はマルチポストです。

●マルチポストされている場所
http://www.moug.net/faq/viewtopic.php?t=61499&sid=ed8e4305e27b9ab3365e3de13c78f21b

----------
この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのマナーについて」をお読みください。

●書き込みのマナーについて
http://dobon.net/vb/bbs/index.html

DOBON.NET | プログラミング道 | プログラミング掲示板