投稿者 珪藻  (社会人) 投稿日時 2009/7/17 00:17:31
Imports System
Imports Microsoft.VisualBasic.FileIO

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '項目書込み
        Dim Writer0 As New IO.StreamWriter("C:\VBTestY.txt")
        Writer0.WriteLine(",生産冷却水,生産冷却水,生産冷却水,生産冷却水,生産冷却水,生産冷却水,冷却塔1,冷却塔1,冷却塔2,冷却塔2" + vbCrLf + ",熱交出口温度,送水圧力,送水流量(瞬時),送水流量(積算),導電率,補給水量,往温度,還温度,往温度,還温度")
        Writer0.Close()
        '/項目書込み

        Dim arr2(50, 20) As String
        Dim tr, sr, st, sk, sh, test As String
        Dim a, s, k, i As Integer
        s = 0
        tr = "01"
        sr = "00"
        test = "[INFOMATION]"
        test = "Created=2009/06/26 09:58:53 Complete=Y Modify=N"

        For i = 0 To 11

            If (s = 0) Then
                tr = "01"
                k = 46
            ElseIf (s = 1) Then
                tr = "02"
                k = 43
            ElseIf (s = 2) Then
                tr = "03"
                k = 46
            ElseIf (s = 3) Then
                tr = "04"
                k = 45
            ElseIf (s = 4) Then
                tr = "05"
                k = 46
            ElseIf (s = 5) Then
                tr = "06"
                k = 45
            ElseIf (s = 6) Then
                tr = "07"
                k = 46
            ElseIf (s = 7) Then
                tr = "08"
                k = 46
            ElseIf (s = 8) Then
                tr = "09"
                k = 45
            ElseIf (s = 9) Then
                tr = "10"
                k = 46
            ElseIf (s = 10) Then
                tr = "11"
                k = 45
            ElseIf (s = 11) Then
                tr = "12"
                k = 46
            End If

            '読み込み
            Dim Sta As String = "C:\REP2009" + tr + ".txt"
            Dim Reader As New IO.StreamReader(Sta)
            s = s + 1

            a = 0
            Do While a < k
                sr = Reader.ReadLine()

                '配列置換
                Dim arr1() As String = Split(sr, ",")
                sh = arr1(a)
                arr2(i, a) = sh
                '/配列置換

                a = a + 1
            Loop

            Reader.Close()
            '/読み込み

            '置き換え
            st = sr.Replace("AVERAGE", tr)
            '/置き換え

            '書込み
            Dim textFile As String = "C:\VBTestY.txt"
            '文字コード(ここでは、Shift JIS)
            Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding(932)
            '書き込む文字列
            Dim str As String = st + vbCrLf

            'textFileの末尾にstrを書き加える
            System.IO.File.AppendAllText(textFile, str, enc)
            '/書込み

        Next i


あるカンマ区切りになっているテキストファイル(複数)の任意の行を1次元配列で読み込みし、
それを二次元配列に代入していくプログラムなのですが、Do While文の一周目はうまく行くのですが、
二週目に

sh = arr1(a)

の部分で

IndexOutOfRangeExceptionはハンドルされませんでした。

というエラーが発生しまして、色々調べてるのですが改善されずもう3日目・・・
どなたかアドバイス下さい。