MyTetra Share
Делитесь знаниями!
Построчное чтение текстового файла, При условии, что в теле файла есть символы EOF
29.12.2017
16:44
Текстовые метки: Excel, VBA, запись, файл, чтение,text,txt
Раздел: VBA - Text

mytetra://note/1518896750sz6jui0ua1


'Можно так, подключив библиотеку Microsoft Scripting Runtime


Public Sub Checker2()


'http://vbhack.ru/uroki-vbscript/obekt-fso/urok-vbscript-n10-rabota-s-tekstovymi-dokument.html

'********************************************************

'Урок VBScript №10:

'Работа с текстовыми документами - TextStream.

'file_3.vbs

'********************************************************

t = Timer

Dim FSO, arr_Line, File, Txt, my_arr()

Set FSO = CreateObject("Scripting.FileSystemObject")

'Set Txt = FSO.CreateTextFile("base.txt", True)

'Txt.Write ("строка 1" & vbCrLf & "строка 2" & vbCrLf & "строка 3" & vbCrLf & "строка 4" & vbCrLf & "строка 5" & vbCrLf & "строка 6")

Set File = FSO.OpenTextFile("D:\au11101\Desktop\Анализ_блокировок\20180629\Compo_veh.txt", 1)

arr_Line = 0

Do Until File.AtEndOfStream ' пока наступит конец файла

' ReDim Preserve my_arr(arr_Line)

' Debug.Print arr_Line & " - " & File.ReadLine

' my_arr(arr_Line) = File.ReadLine ' Считываем строку

s = File.ReadLine ' Считываем строку

arr_Line = arr_Line + 1

If (arr_Line Mod 1000000) = 0 Then Debug.Print arr_Line & " - " & s: DoEvents

' If arr_Line = 5000000 Then Stop

Loop

Debug.Print arr_Line

File.Close 'закрываем base.txt

Debug.Print Timer - t

'MsgBox my_arr(3)

End Sub




Public Sub Checker()

    Const FileName As String = "c:\ESRI\authorize.txt"

    Dim fso As New Scripting.FileSystemObject

    Dim pStream As Scripting.TextStream

    Dim Strs() As String, i As Long, sRow As String

    Set pStream = fso.OpenTextFile(FileName, ForReading)

    Strs = VBA.Split(pStream.ReadAll, vbNewLine)

    pStream.Close

    'Естественно, если нужен только log, то

    'перезаписывать файл не нужно, тогда убрать эту строку

    Set pStream = fso.CreateTextFile(FileName, True)

    'цикл по строкам исходного файла

    'а вы уверены, что в бинарной части

    'не будет vbNewLine?

    For i = 0 To UBound(Strs)

        sRow = Strs(i)

        'анализируем строку sRow на табуляцию и что-то с ней делаем

        '....

        'сохраняем изменённую строку, если нет перезаписи то и ниже комментируем

        pStream.WriteLine sRow

    Next i

    'как и эту

    pStream.Close

End Sub

Прикрепленные файлы:
Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования