Спасибо, покурил литературу разного рода, и справился код с комментариями посмотрите если что подработать можно
| Код | Imports System.Text.RegularExpressions Public Class Form1 Dim intKod() As Integer Dim strMNN() As String Dim strNLP() As String Dim decCena() As Decimal Dim dblMYP() As Double
Private Sub ОткрытьToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ОткрытьToolStripMenuItem.Click ' Открываем файл If ofd1.ShowDialog = Windows.Forms.DialogResult.OK Then ' Создаем объект(поток) на основе класса IO.StreamReader и открываем с помощью него файл Dim clsSchitatel As New IO.StreamReader(ofd1.FileName) ' Подсчитываем количество строк в файле для определения длинны масивов(количество строк в каждом столбике) Dim intLines As UInteger = Regex.Matches(clsSchitatel.ReadToEnd, ".+\n*").Count ' Закрываем поток подсчета строк clsSchitatel.Close() ' Создаем поток для чтения строк Dim clsChitatel As New IO.StreamReader(ofd1.FileName) ' Устанавливаем длинну масивов ReDim intKod(0 To intLines) ReDim strMNN(0 To intLines) ReDim strNLP(0 To intLines) ReDim decCena(0 To intLines) ReDim dblMYP(0 To intLines) 'MsgBox(intLines) ' Переменная содержащая строку из файла Dim strLine As String ' Масив содержащий значение столбиков из строки файла Dim strTab() As String ' Цикл до достежения конца файла Do Until clsChitatel.EndOfStream ' Читаем строку, после курсор встает на начало следующей строки strLine = clsChitatel.ReadLine() ' Создаем строки в качестве разделителя строк vbTab strTab = Split(strLine, vbTab) ' Объявляем счетчик для индексации массива Dim s As Integer intKod(s) = strTab(0) strMNN(s) = strTab(1) strNLP(s) = strTab(2) decCena(s) = strTab(3) dblMYP(s) = strTab(4) ' Переводим все масивы на следующий индекс s += 1 ' Возвращаемся за новой порцией строк для strTab() Loop ' Закрываем поток clsChitatel.Close() End If End Sub End Class |
Итог работает как надо. Если скажем есть текстовый файл с разделителем столбцов (знак табуляции) Например
| Код | 123 ABC DEF 456 789 135 ACE GIK 246 579
|
Получаем:
| Код | intKod(0)=123 strMNN(0)=ABC strNLP(0)=DEF decCena(0)=456 dblMYP(0)=789 intKod(1)135 strMNN(1)=ACE strNLP(1)=GIK decCena(1=)246 dblMYP(1)=579 и т.д.
|
Попробую по твоему совету через ArrayList, в другом форуме тоже посоветовали его использовать, но в данном случае определяя количество строк можно определить и длинну масива, но все же с ArrayList будет правильнее, пошел читать литературу. |