Тема: Чтение данных из файла? Запутался (

Вопрос простой, но никак не разберусь (( Суть : есть файл .txt где записаны в столбик числа(координаты точек) по одному числу в строке. Нужно записать числа в массив. Как это сделать??? Я пробовал через Input, но он требует задать точное количество читаемых символов, а длина чисел не постоянна. Я пробовал сделать счетчик цифр, но он глючит ). Чего то я запутался, вроде проще можно... Подскажите пожалуйста!

Re: Чтение данных из файла? Запутался (

> Builder
Поправь меня если я ошибаюсь
Файл такого вида?
x
y
z
x
y
z
и тд
~'J'~

Re: Чтение данных из файла? Запутался (

> Builder
для случая когда текст в виде одного числа
в каждой строке, а получить нужно на выходе
список 3-х мерных точек:

Option Explicit
Public Function ReadTxtFile(fil As String) As Collection
Dim fd As Long
Dim sline As String
Dim txtColl As New Collection
fd = FreeFile
Open fil For Input Access Read Shared As fd
Do Until EOF(fd)
Line Input #fd, sline
txtColl.Add sline
Loop
Close fd
Set ReadTxtFile = txtColl
End Function
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
Sub test()
Dim col As New Collection
Dim itm As Variant
Dim ar() As Variant
Dim i As Integer, j As Integer
Set col = ReadTxtFile("C:\Test.txt")
ReDim ar(0 To (col.Count / 3) - 1, 0 To 2)
j = 0
For i = 1 To col.Count Step 3
ar(j, 0) = col.Item(i)
ar(j, 1) = col.Item(i + 1)
ar(j, 2) = col.Item(i + 2)
j = j + 1
Next
End Sub

Не забудь изменить имя файла
~'J'~

Re: Чтение данных из файла? Запутался (

а если в каждой строке не одно число, а набор?
например:
вася, коля, петя;
1, 2, 3;
ну или что то в этом роде?

Re: Чтение данных из файла? Запутался (

> ssn
Тогда немного изменить:

Option Explicit
Public Function ReadTxtFile(fil As String) as Collection
Dim fd As Long
Dim sline As String
Dim ar As Variant
Dim txtColl As New Collection
fd = FreeFile
Open fil For Input Access Read Shared As fd
Do Until EOF(fd)
Line Input #fd, sline
ar = Split(sline, ",")
txtColl.Add ar
Loop
Close fd
Set ReadTxtFile = txtColl
End Function
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
Sub test()
Dim col As New Collection
Dim itm As Variant
Dim ar() As Variant
Dim i As Integer, j As Integer
Set col = ReadTxtFile("C:\MYFILE.TXT")
ReDim ar(col.Count - 1, UBound(col.Item(1)))
i = 0
For Each itm In col
For j = 0 To UBound(itm)
ar(i, j) = itm(j)
Next
i = i + 1
Next
End Sub

~'J'~

Re: Чтение данных из файла? Запутался (

Спасибо Большое! )

Re: Чтение данных из файла? Запутался (

спасибо.
а разделение данных по строчкам производить уже после формирования основного массива? тоесть выбрать какой нить знак разделитель и по этому знаку создавать наборы?

Re: Чтение данных из файла? Запутался (

> ssn
Вообще более принято сразу формировать
временный массив с помощью функции Split
как во второй функции, по-крайней мере в
учебниках так
А потом уже добавляешь этот массив в коллекцию
Хотя вариантов можно тоже придумать
~'J'~