tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: 平均について
投稿日: 2008/10/24(Fri) 07:05
投稿者花ちゃん
> 当方では、これを読み込み、テキストボックスに表示させるところまではできたのです
どのようにして読み込んでいるのでしょうか?
又、ファイルのサイズや 行数・列数等は都度変化するのでしょうか?
表示は、テキストボックスでなければいけないのでしょうか? ここの MSFlexGrid関係 の
ような使い方をすれば、後の計算等の処理がやり易すかったりします。

> for 〜 next を使って一つづつ足していこうと考えたのですが・・・・
そのようにされればいいのでは。何か問題でもありましたか?
まずは、自分の理解できる方法でやる事が大事かと思いますよ。

例えば、下記の 2.テキストファイル(CSV形式)を変数毎に読み書きする
http://hanatyan.sakura.ne.jp/vbhlp/txt01.htm
のように配列に保存するとか、その時に合計の変数も用意しておいて計算しながら
読み込むとか。

この手のサンプルは、ここにいくらでもありますよ、只、幾らかの応用は必要ですが。
その1. サンプル投稿用掲示板の 平均値を求める(VB6.0)
http://hanatyan.sakura.ne.jp/patio/read.cgi?mode=view&no=36

http://www.hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=163&no=4
面倒だから、上記のサンプルを一部修正して叩き台を作ってみました。
投稿されたデータをメモ帳で作成して、下記コードを試して見て下さい。

Private Sub Command1_Click()
   Dim intFileNo  As Integer
   Dim TextLine   As String
   Dim Mytext     As String
   Dim CellsData  As Variant
   Dim Sum(3)     As Double
   Dim lngCount   As Long
   Dim i          As Long
   intFileNo = FreeFile
   'シーケンシャル入力モードで Test.csv をオープン
   'ファイルのPATHは別途設定して下さい。
   Open "c:\Test.csv" For Input As #intFileNo
   Do Until EOF(intFileNo)             'EOF(intFileNo)が True になるまで実行
      Line Input #intFileNo, TextLine  '1行全体を変数に読み込む
      TextLine = Replace(TextLine, Chr$(34), "")   ' "" を取り除く
      Mytext = Mytext & Replace(TextLine, ",", vbTab) & vbCrLf
      CellsData = Split(TextLine, ",") 'カンマ区切りで列データを分割
      lngCount = lngCount + 1
      If lngCount > 1 Then    '項目行は演算しない
         For i = LBound(CellsData) To UBound(CellsData)
            Sum(i) = Sum(i) + CellsData(i)
         Next i
      End If
   Loop
   Close #intFileNo
   Dim ken As Long
   ken = lngCount - 1
   Mytext = Mytext & vbCrLf
   Mytext = Mytext & Sum(0) / ken & vbTab & Sum(1) / ken & vbTab & Sum(2) / ken & vbTab & Sum(3) / ken
   Text1.Text = Mytext
End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。