Яндекс.Метрика

FileRead -Autohotkey

Считывает текст файла в переменную.

Считывает текст файла в переменную.

FileRead, OutputVar, Filename

Параметры

OutputVar Имя переменной, куда будет помещён текст. OutputVar будет пустой, если произойдёт ошибка, например, если файл используется или не существует (в этом случае ErrorLevel устанавливается в 1). Переменная также будет пустой, если читается пустой файл (в этом случае ErrorLevel устанавливается в 0).
Filename Имя файла для чтения. Если полный путь не задан, предполагается, что файл находится в папке, указанной в переменной A_WorkingDir.

Options: нижеследующие опции могут ставиться непосредственно перед именем файла. Если опций несколько, разделяйте их одиночными пробелами или табуляциями. Например: *t *m5000 C:\Log Files\200601.txt

*c: загрузить (в память) файл ClipboardAll (файл, куда было сохранено полное содержимое буфера обмена). Все другие опции игнорируются, если присутствует *c.

*m1024 [v1.0.43.03+]: если эта опция опущена, загружается файл целиком, если только он не больше 1 Гб (тогда он не загружается вообще). Иначе замените 1024 на десятичное или шестнадцатеричное число байт в пределах от 1 до 1073741824 (1 Гб). Если файл больше указанного размера, загрузится только его начальная часть. Замечание: это может привести к тому, что последняя строка будет заканчиваться только возвратом каретки (`r) вместо `r`n.

*t: заменить все пары символов возврата каретки и перевода строки (`r`n) на переводы строки (`n). Однако эта операция снижает производительность и обычно не является необходимой. Например, текст, содержащий `r`n, уже находится в правильном формате для добавления в текстовое поле (Edit) в окне Gui. Также команда FileAppend определяет присутствие `r`n, когда она открывает новый файл; она знает, что нужно писать сочетание `r`n как есть и не станет превращать его в `r`r`n. И наконец, нижеследующий цикл разбора будет работать корректно независимо от того, чем оканчиваются строки текста - `r`n или только `n: Loop, parse, MyFileContents, `n, `r

ErrorLevel

Равен 0, если загрузка файла в память успешна. Устанавливается в 1, если встретилась проблема, например: 1) файл не существует; 2) файл блокирован или недоступен; 3) недостаточно памяти для загрузки файла.

Примечания

Когда цель заключается в загрузке всего или большей части файла в память, FileRead работает намного быстрее, чем цикл чтения файла.

Если файл больше 1 Гб, ErrorLevel устанавливается в 1 и OutputVar будет пустой, если только не указана опция *m, при которой загружается только начальная часть файла.

FileRead не подчиняется директиве #MaxMem. Если есть опасения по поводу использования слишком большого количества памяти, проверяйте предварительно размер файла командой FileGetSize.

Если указанный файл содержит двоичные нули (которые никогда не встречаются в нормальных текстовых файлах), только текст, предшествующий первому двоичному нулю, будет "виден" для команд и функций AutoHotkey. Тем не менее всё содержимое файла будет находиться в OutputVar и может быть доступно при помощи "продвинутых" методов, таких как оператор адреса (&); например: *(&OutputVar + 1000)

FileRead можно использовать для быстрой сортировки содержимого файла, как в следующем примере:

FileRead, Contents, C:\Address List.txt if not ErrorLevel ; Загрузка успешна. { Sort, Contents FileDelete, C:\Address List (alphabetical).txt FileAppend, %Contents%, C:\Address List (alphabetical).txt Contents = ; Освободить память. }

Пример

FileRead, OutputVar, C:\My Documents\My File.txt
Теги страницы: