Пример работы с System.Windows.Forms.OpenFileD ialog и Microsoft.VisualBasic.FileIO.T extFieldParser. Код взят из текста формы Form1.
Инструкции
Представлен, как пример и работать не будет без соответственной формы, лэйблов, предподготовленных массивов, процедур инициализации и кнопок. Но, думаю, кому надо - разберутся. Ибо, - все очень наглядно. :)
Код
Dim key As Integer
Dim rez As Windows.Forms.DialogResult
Try
OpenFileDialog1.CheckFileExists = True
OpenFileDialog1.CheckPathExists = True
OpenFileDialog1.DefaultExt = "txt"
OpenFileDialog1.DereferenceLinks = True
OpenFileDialog1.Filter = "Text files (*.txt)|*.txt|All files|*.*"
OpenFileDialog1.Multiselect = False
OpenFileDialog1.RestoreDirectory = True
OpenFileDialog1.ShowReadOnly = False
OpenFileDialog1.ReadOnlyChecked = False
OpenFileDialog1.Title = "Текстовый файл. Открыть..."
rez = OpenFileDialog1.ShowDialog
If rez = Windows.Forms.DialogResult.OK Then
ToolStripStatusLabel1.Text = "Выполняется загрузка. Ждите..."
ToolStripStatusLabel1.Visible = True
ToolStripProgressBar1.Visible = True
ToolStripProgressBar1.Invalidate()
Dim firstDate As Date
firstDate = Now
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser( _
OpenFileDialog1.FileName, Encoding.GetEncoding(1251), True)
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.Delimiters = New String() {vbTab}
Dim currentRow As String()
Dim ssss As String
Dim dr As String
While Not MyReader.EndOfData
key += 1
Dim inst As New CivilSps()
Try
currentRow = MyReader.ReadFields()
inst.nPP = CStr(key)
inst.Adres = Trim(Trim(UCase(currentRow.GetValue(67))) & " д. " & _
Trim(UCase(currentRow.GetValue(68))) & " к. " & _
Trim(UCase(currentRow.GetValue(69))))
dr = Trim(currentRow.GetValue(4))
dr = dr.Replace("/", ".")
inst.DatR = dr
inst.DocDat = Trim(currentRow.GetValue(44))
names.Add(inst, CStr(key))
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & _
"is not valid and will be skipped.")
End Try
My.Application.DoEvents()
End While
End Using
Label1.Text = "Количество строк: " & names.Count
Label3.Text = "Время загрузки: " & DateDiff(DateInterval.Second, firstDate, Now) & " сек."
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, Me.Text)
ToolStripStatusLabel1.Text = "Загрузка завершена с ОШИБКОЙ."
ToolStripProgressBar1.Visible = False
End Try
ToolStripStatusLabel1.Text = "Загрузка успешно завершена."
ToolStripProgressBar1.Visible = False
Button1.Enabled = False
Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.