Функция FileReadLine

         Описание функции


FileReadLine

Считывает строку текста из текстового файла.

FileReadLine ( "filehandle/filename" [, line = 1 ] )

Параметры

filehandle/filename Дескриптор файла, возвращённый функцией FileOpen() или путь к файлу.
line [необязательный] Номер строки для чтения. Номер первой строки 1 (а не 0), последней строки -1.

Возвращаемое значение

Успех:Возвращает прочитанную строку.
Особенность:Устанавливает значение @error равным -1 при достижении конца файла.
Ошибка:Устанавливает значение @error равным 1, если файл не открыт в режиме для чтения или произошла какая-либо другая ошибка.

Примечания

Возвращает прочитанную строку текста. Любые символы новой строки ( Chr(10) или @LF ) в конце строки автоматически удаляются.
Если не указан номер строки для чтения, будет прочитана следующая строка ("следующая" строка для вновь открытого файл, это его первая строка).
Если в качестве первого параметра будет передан путь к файлу, а не его дескриптор, то во время вызова функции файл будет открываться, а по завершении её работы - закрываться. При работе с большими текстовыми файлами это может оказаться намного медленнее, чем использование дескриптора файла.
Обратите внимание, что не надо смешивать использование дескрипторов файлов и имён файлов. Т.е. не надо сначала использовать FileOpen() для открытия файла, а потом использовать имя файла в этой функции. Используйте либо дескриптор, либо имя файла в своих программах, но не оба вперемешку!

С точки зрения производительности, использовать эту функцию в цикле, увеличивая параметр line на 1 при в каждом шаге цикла - является плохой идеей. Это заставляет AutoIt перечитывать файл с самого начала до указанной строки.

AutoIt может корректно считывать текст как из файлов в кодировке ANSI, так и в кодировке UTF16/UTF8.

См. также

FileWriteLine, IniRead, FileOpen, FileRead, FileWrite, FileSetPos, FileGetPos

Пример

$hFile = FileOpen(@ScriptDir & '\FileReadLine.au3', 0)

; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
If $hFile = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

; Читает построчно текст, пока не будет достигнут конец файла EOF
While 1
    $sLine = FileReadLine($hFile)
    If @error = -1 Then ExitLoop
    If MsgBox(1, "Прочитанная строка:", $sLine) = 2 Then ExitLoop
WEnd

FileClose($hFile)

MsgBox(0, "Содержимое 4-ой строки", FileReadLine(@ScriptDir & '\FileReadLine.au3', 4))