Как я могу разобрать этот текстовый файл в VB.NET? - PullRequest
1 голос
/ 13 января 2012

Пример ссылки на данные - Извините, при вставке неправильно форматировал бы.

1.
 Dec 01, 2011
 06:00:00 AM
 Dec 01, 2011
 07:05:00 AM
 65
2.11
2.
 Dec 01, 2011
 06:00:00 PM
 Dec 01, 2011
 07:05:00 PM
 65
2.11
3.
 Dec 02, 2011
 06:05:00 AM
 Dec 02, 2011
 07:05:00 AM
 60
1.95

Я бы хотел, чтобы каждая отдельная строка имела свое место в массиве или для данных, ноне могу заставить его работать правильно.Должно быть что-то другое с конечными символами?

Код ниже.

    Dim strOutput As String = ""

    '' Demo Data
    'Dim strData As String = "59. Dec 01, 2011 06:05:00 PM Dec 01, 2011 10:05:00 PM 240 80.00"
    'strOutput = +FormatRow(strData)
    '' Demo Data

    Dim sFileName As String = OpenFileDialog.FileName
    If My.Computer.FileSystem.FileExists(sFileName) Then
        Dim srFileReader As System.IO.StreamReader
        Dim sInputLine As String
        srFileReader = System.IO.File.OpenText(sFileName)
        sInputLine = srFileReader.ReadLine()

        Do Until sInputLine Is Nothing
            'strOutput = +FormatRow(sInputLine)
            Dim title As String = srFileReader.ReadLine()
            Dim startTime As DateTime = srFileReader.ReadLine() & " " & srFileReader.ReadLine()
            Dim endTime As DateTime = srFileReader.ReadLine() & " " & srFileReader.ReadLine()
            Dim timeSpan As TimeSpan = endTime.Subtract(startTime)
            Dim minutesTotal As Integer = timeSpan.TotalMinutes
            ' Burn Minutes
            srFileReader.ReadLine()
            Dim billMinutes As Integer = minutesTotal
            Dim billTotal As Double = srFileReader.ReadLine()

            strOutput += ""
        Loop

Вывести что-то вроде

12/1/2011 6:00:00 AM    12/1/2011 7:05:00 AM    65  65      2.11

1 Ответ

4 голосов
/ 13 января 2012

Вы прочитали текстовый файл одновременно, и я думаю, что File.ReadAllLines будет хорошим выбором.

 Dim str
 Dim fileName = "C:\SampleData.txt"

 Dim lines() = File.ReadAllLines(fileName)

 For i = 0 To lines.GetUpperBound(0) Step 7
  str = String.Format("{0}{1}{2}{3}{4}{5}", 
                     lines(i), lines(i + 1), lines(i + 2), lines(i + 3), 
                     lines(i + 4), lines(i + 5))
  Console.WriteLine(str)
 Next
...