Перейти на главную страничку сайта (список статей, файлы для скачивания)
Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.
Оригинал статьи в AutoHotkey.chm: "FileRead", в содержании - "File, Directory and Disk Management" - "FileRead", v1.0.46.12.
Ник переводчика: YMP.
Настоящее имя переводчика: Юрий Попов.
Считывает текст файла в переменную.
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 |
Равен 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
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.