投稿時間:2005/08/05(Fri) 02:07 投稿者名:まさ
URL :
タイトル:10個分の配列データを表示したいのですが
こんにちは。VBを始めて3週間のビギナーです。 早速なんですが、質問です。
今、作っているプログラムは、テキスト(メモ帳)で、店舗ID8桁と売り上げ高8桁を (0000000100100000)の形式で、全12個分のデータが入ってるファイルを作りました。 そのファイルを読み込み、フォーム1のリストボックス(List1)に全部のデータを表示します。 フォーム1には売り上げ高の上位10店舗を売り上げ高の高い順にソートして表示するボタン「トッ プ10」を作りました。そして、そのボタンを押すと用意した、フォーム2のリストボックス (Result)に結果が表示される、というプログラムを作っています。 今の段階で出来ているの分を載せます。
(VB6.0) Option Explicit ' 標準モジュール使用
Private Sub Read_Click() '---テキストデータを読み込む
On Error GoTo ErrHandler '---エラーを表示する
Dim FName As String '---ファイル名を格納する変数 Dim Out As Variant '---ファイルデータを一時格納する変数
List1.Clear FName = File.Text '---テキストボックスに打ち込まれたファイル名を開く num = 0 '---カウンタ変数の初期化 num2 = 0
Open FName For Input As #1 '---ファイル名を指定して、Inputで#1のファイルを開く Do Until EOF(1) '---ファイルの末になるまで繰り返す Line Input #1, Out '---1行分読み込んで格納する ID = Left(Out, 8) '店舗コードの習得 Money = Right(Out, 8) '売上のところを切り取り
'カンマ編集と右詰め編集 Money = Format(Format(Money, "###,###,##0"), "@@@@@@@@@@@") List1.AddItem ID & ":" & Money '店舗コードと売上を表示
ArrayID(num) = ID '配列変数に代入(店舗) num = num + 1 '店舗の加算 ArrayMoney(num2) = Money '配列変数に代入(売上) num2 = num2 + 1 '売上の加算 Loop Close #1
Tenpo.Caption = num & "店舗" '店舗数を表示 Exit Sub
ErrHandler: MsgBox Err.Description, vbCritical End Sub
Private Sub Top_Click() On Error GoTo ErrHandler '---エラーを表示する
Dim i As Variant 'カウンタ変数 Dim j As Variant 'カウンタ変数
Form2.Result.Clear '結果表示場所をクリアする
For i = 0 To num - 1 '順番を決定する位置 For j = i + 1 To 11 '比較をする配列のインデックス If ArrayMoney(i) < ArrayMoney(j) Then '売上を比較し、入れ替えをする SMoney = ArrayMoney(i) ArrayMoney(i) = ArrayMoney(j) ArrayMoney(j) = SMoney SID = ArrayID(i) 'IDの入れ替えをする ArrayID(i) = ArrayID(j) ArrayID(j) = SID End If Next j Form2.Result.AddItem ArrayID(i) & " : " & ArrayMoney(i) '結果を表示する Next i
Form2.Show 'Form2を表示する Form1.Hide 'Form1を非表示にする Exit Sub
ErrHandler: MsgBox Err.Description, vbCritical End Sub
こんな感じです。 で、今悩んでいるのは、トップ10を押してデータを並べ替えた時に、12個全部のデータを表示す るのではなく、上位10個分だけを表示させたいんです。
ご教授お願いします。
|