0

csv ファイルがあり、最後の行だけを別のテキスト ボックスに入れる必要があります。

Imports System.IO

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    End Sub

    Private Sub btnConditions_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConditions.Click
        Using reader As New StreamReader("C:\temp\Apr12log.txt")
            Dim line As String = reader.ReadLine()


            Dim fields() As String = line.Split(",".ToCharArray())
            Dim fileDate = CDate(fields(0))
            Dim fileTime = fields(1)
            Dim fileTemp = fields(2)
            Dim fileHum = fields(3)
            Dim fileWindSpeed = fields(4)
            Dim fileWindGust = fields(5)
            Dim fileWindBearing = fields(6)

            While line IsNot Nothing

                line = reader.ReadLine()
            End While
            txtDate.Text = CStr(fileDate)
        End Using

    End Sub

End Class

最初の行のみを入力します。最後の行のみを取得する方法がわかりません。

txtファイルの例

01/04/12,00:00,5.4,80,3.0,4.5,9.6,261,0.0,0.0,1025.0,1.0,16.8,43,4.0,3.8,5.4,0.0,0,0.0
4

4 に答える 4

1

既存のコードをいくつか編集することで、必要なものを得ることができます。

シフト

   While line IsNot Nothing

        line = reader.ReadLine()
   End While

直後に

   Dim line As String = reader.ReadLine()

別のものを追加

   Dim line2 As String = Nothing

そして挿入

       line2 = line

ループに入るWhile、つまり

   While line IsNot Nothing
        line2 = line
        line = reader.ReadLine()
   End While

これline2がファイルの最後の行です。

于 2013-06-25T13:52:05.353 に答える
1

あなたは一行でしか読んでいません。代わりに ReadToEnd() を使用してから、次のように新しい行で分割します。

Dim lines() As String = reader.ReadToEnd().Split(Environment.NewLine)

次に、最後の行に移動できます。

Dim line As String = lines(lines.Length - 1)
于 2013-06-25T13:46:32.470 に答える
0

これを試して:

Dim lines() As String = File.ReadAllLines("C:\temp\Apr12log.txt")

lastLine = lines(lines.Length - 1)
于 2013-06-25T13:45:39.727 に答える