投稿者 aaaa  (学生) 投稿日時 2009/11/27 00:11:32
すいません
完成するまで1週間以上かかったので、計算結果が上手くいった時うれしくて先に報告だけでもと思ったのですが失礼な行為だったようですね。

以下が完成したコードです。


 '実験で得られる波長(250.19,…etc)のファイル読み込み
        Dim reader As New IO.StreamReader("C:\プログラミング\2.txt", System.Text.Encoding.GetEncoding("Shift-JIS"))
        '企業から送られてきた波長(250~2500)とそれに対応するデータのファイル読み込み
        Dim file As New IO.StreamReader("C:\プログラミング\ファイル2.csv", System.Text.Encoding.GetEncoding("Shift-JIS"))
        '結果をcsvファイルに書き込み
        Dim Writer As New IO.StreamWriter("C:\キャリブレーション.csv")

        Dim items() As String                       'ファイル2の波長とデータを切り分けて入れる配列                                          
        Dim kk(2250, 1) As Decimal                  '上で切り分けたのををさらに入れる配列
        Dim Line As String
        Dim a As String
        Dim b, d, f, y As Decimal
        Dim c, i, j As Integer



        Line = file.ReadLine                    'ファイル2を1行読み込み
        a = reader.ReadLine                     '2を1行読み込み



        j = -1                                  'jの初期値

        'ファイル2を切り分けて配列に入る作業をファイルの最後まで繰り返す
        Do While Line IsNot Nothing
            items = Line.Split(",")
            d = Val(items(0))
            f = Val(items(1))

            'それをさらに2250×2行列の配列に入れる
            j = j + 1
            kk(j, 0) = d
            kk(j, 1) = f
            Line = file.ReadLine

        Loop




        '2(実験で得られる波長のファイル)を最後まで繰り返す
        Do While a IsNot Nothing
            b = Val(a)
            c = Int(b)                  '実験で得られる波長の小数点以下を切り捨てたもの
            i = c + 1                   '上の波長より1だけ大きい波長
            '計算式
            y = (kk((i - 250), 1) - kk((c - 250), 1)) * (b - c) + kk((c - 250), 1)
            '例:最初の250.19の場合 (kk(1,1)-kk(0,1))×(250.19-250)+kk(0,1)  = (0.967 -0.965)×0.19+0.965=0.96662

            TextBox1.AppendText(y & vbCrLf)     'テキストboxに追加




            a = reader.ReadLine
        Loop

        Writer.WriteLine(TextBox1.Text)         '上の結果をcsv形式で書き込む
        'ファイルを閉じる
        reader.Close()
        file.Close()
        Writer.Close()



以上のようになりました。