C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: VB6 数値/文字列 混在の最小値を取得したい。


(過去ログ 89 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■52844 / inTopicNo.1)  VB6 数値/文字列 混在の最小値を取得したい。
  
□投稿者/ ANTE (1回)-(2010/08/25(Wed) 18:38:06)

分類:[VB6 以前] 

お世話になります。

VB6について、お知恵を拝借させてください。

◆やりたいこと
 4つのテキストボックスを配置し、その中で一番最小の値を取得したいのです。

例:
 項目1="3"
 項目2="1"
 項目3="A"
 項目4="D"

上記が格納されている場合、項目2のデータを取得したい。

例2:
 項目1=""
 項目2="Z"
 項目3="A"
 項目4="D"

上記のデータが格納されている場合、項目3のデータを取得したい。


この場合に、関数を作成してデータを取得したいのですが、関数作成のイメージが沸きません。

よろしければ教示いただけないでしょうか。

引用返信 編集キー/
■52845 / inTopicNo.2)  Re[1]: VB6 数値/文字列 混在の最小値を取得したい。
□投稿者/ ANTE (2回)-(2010/08/25(Wed) 19:11:02)
自己解決しました。

以下のロジックです。

読んでいただいた方、ありがとうございました。

'***************************************************************************************************
'------------------------
'SUB情報
'------------------------
'SUB名  :Command1_Click
'処理概要    :-
'引数1    :なし
'***************************************************************************************************
Private Sub Command1_Click()

    Dim Nations(3) As String
    
    Nations(0) = Me.Text1.Text
    Nations(1) = Me.Text2.Text
    Nations(2) = Me.Text3.Text
    Nations(3) = Me.Text4.Text
    
    Call mSubBubbleSortStr(Nations(), 4)
    
    Me.Label1.Caption = Nations(0)
    
End Sub


'***************************************************************************************************
'------------------------
'SUB情報
'------------------------
'SUB名  :mSubBubbleSortStr
'処理概要    :指定された文字列型配列をソートする
'引数1    :data()   IN  ソート対象
'引数2    :Count    配列内個数
'***************************************************************************************************
Private Sub mSubBubbleSortStr(data() As String, Count As Integer)
    Dim i As Integer
    Dim j As Integer
    Dim temp As String

    j = 0
    '要素0から順に直接的にソートする
    Do While j < Count - 1
        i = j + 1
        Do While i < Count
            If StrComp(data(j), data(i), 1) = 1 Then
                temp = data(j)
                data(j) = data(i)
                data(i) = temp
            End If
            i = i + 1
        Loop
        j = j + 1
    Loop
End Sub




解決済み
引用返信 編集キー/
■52846 / inTopicNo.3)  Re[1]: VB6 数値/文字列 混在の最小値を取得したい。
□投稿者/ よねKEN (584回)-(2010/08/25(Wed) 19:17:38)
2010/08/25(Wed) 19:18:57 編集(投稿者)

No52844 (ANTE さん) に返信
> お世話になります。
>
> VB6について、お知恵を拝借させてください。
>
> ◆やりたいこと
>  4つのテキストボックスを配置し、その中で一番最小の値を取得したいのです。

TextBoxに入るのは文字列のデータですが、これに一般的な大小というものはありません。
ANTEさんのアプリケーションの仕様として、大小を判定するためのルールをまず明確にしましょう。

> 例:
>  項目1="3"
>  項目2="1"
>  項目3="A"
>  項目4="D"
>
> 上記が格納されている場合、項目2のデータを取得したい。

数字と英大文字なら数字の方が小さく、かつ、数字の中では数値の大小関係がそのままデータとしての大小とイコールということでしょうか?

> 例2:
>  項目1=""
>  項目2="Z"
>  項目3="A"
>  項目4="D"
>
> 上記のデータが格納されている場合、項目3のデータを取得したい。

英大文字の中では、アルファベット順がそのまま大小のルールということでしょうか?
""(空文字列)は英大文字よりは大きいということになりますが、数字との大小関係は?

また、これらの例では0文字または1文字のデータで、かつ、数字・英大文字・空文字列のみとなっていますが、
他の文字列が入らないようになっているのでしょうか?

> この場合に、関数を作成してデータを取得したいのですが、関数作成のイメージが沸きません。

たとえば整数の配列を用意し、ランダムに数値をセットしておいた上で、そこから最小値を求めるプログラムは書けますか?
これができるなら、今回の問題はこれの応用です。TextBoxの文字列をまず文字列の配列にセットします。
最小値を求める関数は引数として文字列配列と取り、その中の最小値の文字列を返す、ようなものが考えられます。
整数の最小値を求めるロジックからの応用のポイントは上記でお話しした大小判定のルールを関数化することです。
2つの文字列を引数として渡して小さい方の値を返す(もしくは、1つ目の引数と2つ目の引数とのどちらが大きいか?を-1、0、1などの値で返す)
ようなインタフェースがよいでしょう。

--
ありゃ、行き違いで自己解決でしたかorz
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -