0

나는 그가 얼마나 가솔린을 더 잘 사용하는지 추적 할 수 있도록 아버지를위한 프로그램을 작성 중이다. 기본적으로 .txt 파일의 행을 가져 와서 기본 계산을 수행하는 데 사용되는 3 개의 값으로 나눕니다. 계산 및 값은 쉽게 볼 수 있도록 Listview로 채워집니다. 타일에서 추측했을 수있는 문제는 내 프로그램이 .txt 파일의 모든 데이터를 읽은 후 tempstring2에 존재하지 않는 행을 할당하려고 시도한 후 코드의 31 행에서 충돌한다는 것입니다. 그런 다음 System.IO.IOException 오류 메시지가 울립니다. 나는 그것을 방지하기 위해 더 많은 코드를 작성하려했지만 아무 소용이 없습니다. 어떤 도움이라도 대단히 감사하겠습니다. 이것은 .txt 파일의 형식입니다.거기에없는 행을 읽으려고하는 프로그램

편집 : 문제가 무엇인지 알았으므로 DateDiff을 사용하여 두 날짜를 비교하려고합니다.하지만 다음 날짜를 읽는 방법을 모르므로 2 번째 날짜를 1과 비교할 수 없습니다. 다른 LineInput을하지 말고 txt 파일을 다운로드하십시오. 기본적으로 Sat 11 Jan 2014Thu 23 Jan 2014을 하나의 루프에서 비교하고 하나는 LineInput과 비교하려고합니다.

Sat 11 Jan 2014,446.0,32.50 
Thu 23 Jan 2014,566.2,42.08 
Wed 05 Feb 2014,535.4,39.27 
Sun 16 Feb 2014,486.2,36.10 
Thu 27 Feb 2014,536.4,41.36 
etc... 

이 나의 새로운 코드 :

Public Class Form1 
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnTest.Click 

    Dim filenum As Integer = FreeFile() 
    Dim tempstring As String 
    Dim temp As String 
    Dim temparray(2) As String 
    Dim date1, date2 As Date 
    Dim date3 As String 

    FileOpen(filenum, "Stats.txt", OpenMode.Input) 

    While Not EOF(filenum) 

     tempstring = LineInput(filenum) 
     temp = tempstring 
     temparray = Split(temp, ",", -1) 
     date1 = temparray(0) 
     date3 = DateDiff(DateInterval.Day, date2, date1) 

     Dim stats1 As New ListViewItem(temparray(0), 0) 
     stats1.SubItems.Add(temparray(1)) 
     stats1.SubItems.Add(temparray(2)) 
     stats1.SubItems.Add(FormatNumber(temparray(2)/(temparray(1)/100), 2)) 
     stats1.SubItems.Add(FormatNumber(temparray(1)/temparray(2), 2)) 
     stats1.SubItems.Add(FormatNumber(temparray(1)/temparray(2) * 50, 2)) 
     stats1.SubItems.Add(date3) 

     lvwStats.Items.Add(stats1) 

     For i As Integer = 0 To lvwStats.Columns.Count - 1 
      lvwStats.Columns(i).Width = -2 
     Next i 

    End While 

End Sub 
End Class 
+0

나는 문제가 무엇인지 알고 있으며, 지금 무슨 일이 일어 났는지 깨닫는다. 그러나 또 다른 문제가 그것의 장소에 나타났습니다. –

답변

0

당신은 라인의 수가 홀수 그렇다면 각 While Not EOF(filenum)

tempstring1 = LineInput(filenum) 
tempstring2 = LineInput(filenum) 

2 개 라인을 읽고, 두 번째 LineInput 넘어 읽 EOF