Тема: Как посчитать строки текстового файла?

Надо считать строки текстового файла в цикле с разделителем 1-несколько пробелов
Строки содержат по 2 слова: ключ и значение

Re: Как посчитать строки текстового файла?

Option Explicit
Const MY_FILE As String = "D:\ACAD_Settings\820-102.txt"
Sub Main()
    Dim FileName As String
    Dim FileContent As String
    Dim FileNumber As Integer
    Dim LineCount As Integer
    FileNumber = FreeFile
    Open MY_FILE For Input As FileNumber
    LineCount = 0
    Do While Not EOF(FileNumber)
        Line Input #FileNumber, FileContent
        LineCount = LineCount + 1
    Loop
    Close FileNumber
    MsgBox LineCount
End Sub

Только с разделителями и пробелами я что-то не понял.

Re: Как посчитать строки текстового файла?

> Только
с разделителями и пробелами я что-то не понял.
надо обработать строку FileContent, т.е. создать тип данных из 2-х элементов строковых и в него считывать строки

Re: Как посчитать строки текстового файла?

> Lidia
Так что является разделителем, пробел?
Как понимать: "1-несколько пробелов" - что между двумя словами может быть несколько пробелов?

Re: Как посчитать строки текстового файла?

Может, чего-то типа:

Option Explicit
Dim Path_File As String
Sub main()
 Dim ArV As Variant, i As Integer, MyArr() As Variant
 Path_File = "D:\test.txt"
 ArV = Massiv_from_file(Path_File, vbCrLf)
 For i = 0 To UBound(ArV)
  ReDim Preserve MyArr(i)
  MyArr(i) = Load_val(ArV(i))
 Next i
End Sub
Public Function Massiv_from_file(Path As String, razdel As String)
  Dim TXT
  Dim stR1() As String
  Dim FN As Integer
  FN = FreeFile
  Dim FName As String
  FName = Path
  If Dir(Path) = "" Then
   MsgBox "Файл архива не найден"
   stR1 = Split("Файл архива не найден!Файл архива не найден", "!")
   Massiv_from_file = stR1
   Exit Function
  End If
  Open FName For Input As #FN
    TXT = Input(LOF(FN), #FN)
  Close #FN
  stR1 = Split(TXT, razdel)
  Massiv_from_file = stR1
End Function
Public Function Load_val(strn)
 Dim m(1) As String, temp As Variant
 temp = Split(strn, " ")
 m(0) = Trim(temp(0))
 If UBound(temp) > 0 Then
   m(1) = Trim(temp(1))
 Else
  m(1) = "-"
  End If
 Load_val = m
End Function

Re: Как посчитать строки текстового файла?

Ошибка вышла. Функцию Load_val надо изменить:

Function Load_val(strn)
 Dim m(1) As String, temp As Variant
 temp = Split(strn, " ")
 m(0) = Trim(temp(0))
 If UBound(temp) > 0 Then
   m(1) = Trim(temp(UBound(temp)))
 Else
  m(1) = "-"
 End If
 Load_val = m
End Function