'Выбираем текстовый файл (сравнение производилось на csv-файле, содержащем 102229 строк)
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
With OpenFileDialog1 'select csv file
If .ShowDialog = Windows.Forms.DialogResult.OK Then TextBox1.Text = .FileName
End With
End Sub
'Читаем 1-ю строку (File.ReadAllLines) - 0,35...0,39 сек
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
If Not System.IO.File.Exists(TextBox1.Text) Then MsgBox("Файл не существует", 64) : Exit Sub
Dim tm As DateTime = Now
Dim arr() As String = System.IO.File.ReadAllLines(TextBox1.Text)
TextBox2.Text = arr(0)
Label4.Text = (Now - tm).TotalSeconds
End Sub
далее повторяющиеся строки кодов не будем показывать
'Читаем последнюю строку (File.ReadAllLines) - 0,35...0,39 сек
Dim arr() As String = System.IO.File.ReadAllLines(TextBox1.Text)
TextBox2.Text = arr(UBound(arr))
'Читать строку с выбранным номером (StreamReader) - практически 0 сек, если читаем первые строки
Dim SR As New System.IO.StreamReader(TextBox1.Text)
Dim s As String, i As Integer
For i = 1 To NumericUpDown1.Value
s = SR.ReadLine
Next
TextBox4.Text = s
SR.Close()
'Читать последнюю строку (StreamReader) - 0,17...0,20 сек
Dim SR As New System.IO.StreamReader(TextBox1.Text)
Dim s As String, i As Integer
Do While SR.Peek <> -1
i += 1
s = SR.ReadLine
Loop
'Do
'
'Loop Until s Is Nothing
'While Not SR.EndOfStream
'
'End While
SR.Close()
'Читать последнюю строку (SR.ReadToEnd.Split(vbLf)) - 0,55...0,59
Dim SR As New System.IO.StreamReader(TextBox1.Text)
Dim sp() = SR.ReadToEnd.Split(vbLf)
SR.Close()
TextBox4.Text = sp(UBound(sp) - 1)
'Читать последнюю строку (My.Computer.FileSystem.ReadAllText) - 0,59...0,64
Dim arr() = My.Computer.FileSystem.ReadAllText(TextBox1.Text, System.Text.Encoding.Default).Split(vbLf) 'System.Text.Encoding.GetEncoding(1251)
TextBox4.Text = arr(UBound(arr) - 1)
|