io
This is a part of system.nim, you should not manually import it.
Импорты
- since, formatfloat
Типы
File = ptr CFile
- Тип, представляющий дескриптор файла. Исходный код Редактировать
FileMode = enum fmRead, ## Open the file for read access only. fmWrite, ## Open the file for write access only. ## If the file does not exist, it will be ## created. Existing files will be cleared! fmReadWrite, ## Open the file for read and write access. ## If the file does not exist, it will be ## created. Existing files will be cleared! fmReadWriteExisting, ## Open the file for read and write access. ## If the file does not exist, it will not be ## created. The existing file will not be cleared. fmAppend ## Open the file for writing only; append data ## at the end.- Режим файла при открытии. Исходный код Редактировать
FileHandle = cint
- Тип, представляющий дескриптор файла ОС; полезен для доступа к файлам на низком уровне. Исходный код Редактировать
Переменные
stdin: File
- Стандартный поток ввода. Исходный код Редактировать
stdout: File
- Стандартный поток вывода. Исходный код Редактировать
stderr: File
- Стандартный поток ошибок. Исходный код Редактировать
Процедуры
proc readBuffer(f: File; buffer: pointer; len: Natural): int {...}{. tags: [ReadIOEffect], gcsafe, locks: 0, raises: [IOError].}- считывает
lenбайт в буфер, указанный по адресуbuffer. Возвращает фактическое количество считанных байтов, которое может быть меньшеlen(если не осталось столько байтов), но не больше. Исходный код Изменить proc readBytes(f: File; a: var openArray[int8 | uint8]; start, len: Natural): int {...}{. tags: [ReadIOEffect], gcsafe, locks: 0.}- считывает
lenбайт в буферa, начиная с позицииa[start]. Возвращает фактическое количество считанных байтов, которое может быть меньшеlen(если не осталось столько байтов), но не больше. Исходный код Изменить proc readChars(f: File; a: var openArray[char]; start, len: Natural): int {...}{. tags: [ReadIOEffect], gcsafe, locks: 0, raises: [IOError].}-
считывает
lenбайт в буферa, начиная с позицииa[start]. Возвращает фактическое количество считанных байтов, которое может быть меньшеlen(если не осталось столько байтов), но не больше.Предупреждение: Буфер
Исходный код Изменитьaдолжен быть предварительно выделен. Это можно сделать, например, с помощьюnewString. proc write(f: File; c: cstring) {...}{.tags: [WriteIOEffect], gcsafe, locks: 0, raises: [IOError].}- Записывает значение в файл
f. Может выбросить исключение IO. Исходный код Изменить proc writeBuffer(f: File; buffer: pointer; len: Natural): int {...}{. tags: [WriteIOEffect], gcsafe, locks: 0, raises: [IOError].}- записывает байты из буфера, на который указывает параметр
bufferв файлf. Возвращает количество фактически записанных байтов, которое может быть меньшеlenв случае ошибки. Исходный код Изменить proc writeBytes(f: File; a: openArray[int8 | uint8]; start, len: Natural): int {...}{. tags: [WriteIOEffect], gcsafe, locks: 0.}- записывает байты из
a[start..start+len-1]в файлf. Возвращает количество фактически записанных байтов, которое может быть меньшеlenв случае ошибки. Исходный код Изменить proc writeChars(f: File; a: openArray[char]; start, len: Natural): int {...}{. tags: [WriteIOEffect], gcsafe, locks: 0, raises: [IOError].}- записывает байты из
a[start..start+len-1]в файлf. Возвращает количество фактически записанных байтов, которое может быть меньшеlenв случае ошибки. Исходный код Изменить proc write(f: File; s: string) {...}{.tags: [WriteIOEffect], gcsafe, locks: 0, raises: [IOError].}- Исходный код Изменить
proc close(f: File) {...}{.tags: [], gcsafe, raises: [].}- Закрывает файл. Исходный код Изменить
proc readChar(f: File): char {...}{.tags: [ReadIOEffect], raises: [IOError, EOFError].}- Считывает один символ из потока
f. Не следует использовать в производительно-критичных кодах. Исходный код Изменить proc flushFile(f: File) {...}{.tags: [WriteIOEffect], raises: [].}- Очищает буфер
f. Исходный код Изменить proc getFileHandle(f: File): FileHandle {...}{.raises: [], tags: [].}- Возвращает дескриптор файла
f. Это полезно только для платформо-зависимого программирования. Обратите внимание, что в Windows это не возвращает специфичный для Windows дескриптор, а дескриптор, используемый C библиотекой, что бы это ни значило. ИспользуйтеgetOsFileHandleвместо этого. Исходный код Изменить proc getOsFileHandle(f: File): FileHandle {...}{.raises: [], tags: [].}- возвращает системный дескриптор файла
f. Это полезно только для платформо-зависимого программирования. Исходный код Изменить proc setInheritable(f: FileHandle; inheritable: bool): bool {...}{.raises: [], tags: [].}-
управляет тем, может ли дескриптор файла унаследоваться дочерними процессами. Возвращает
trueпри успехе. Требуется системный дескриптор файла, который можно получить с помощью getOsFileHandle.Эта процедура не гарантируется для всех платформ. Проверьте доступность с помощью
Исходный код Изменитьdeclared() <system.html#declared,untyped>. proc readLine(f: File; line: var TaintedString): bool {...}{.tags: [ReadIOEffect], gcsafe, locks: 0, raises: [IOError].}- считывает строку текста из файла
fвline. Может выбросить исключение IO. Строка текста может быть ограниченаLFилиCRLF. Символ(ы) новой строки не являются частью возвращаемой строки. Возвращаетfalseесли достигнут конец файла,trueв противном случае. Если возвращаетсяfalse, тоlineне содержит новых данных. Исходный код Изменить proc readLine(f: File): TaintedString {...}{.tags: [ReadIOEffect], gcsafe, locks: 0, raises: [IOError, EOFError].}- считывает строку текста из файла
f. Может выбросить исключение IO. Строка текста может быть ограниченаLFилиCRLF. Символ(ы) новой строки не являются частью возвращаемой строки. Исходный код Изменить proc write(f: File; i: int) {...}{.tags: [WriteIOEffect], gcsafe, locks: 0, raises: [IOError].}- Исходный код Изменить
proc write(f: File; i: BiggestInt) {...}{.tags: [WriteIOEffect], gcsafe, locks: 0, raises: [IOError].}- Исходный код Изменить
proc write(f: File; b: bool) {...}{.tags: [WriteIOEffect], gcsafe, locks: 0, raises: [IOError].}- Исходный код Изменить
proc write(f: File; r: float32) {...}{.tags: [WriteIOEffect], gcsafe, locks: 0, raises: [IOError].}- Исходный код Изменить
proc write(f: File; r: BiggestFloat) {...}{.tags: [WriteIOEffect], gcsafe, locks: 0, raises: [IOError].}- Исходный код Изменить
proc write(f: File; c: char) {...}{.tags: [WriteIOEffect], gcsafe, locks: 0, raises: [].}- Исходный код Изменить
proc write(f: File; a: varargs[string, `$`]) {...}{.tags: [WriteIOEffect], gcsafe, locks: 0, raises: [IOError].}- Исходный код Изменить
proc endOfFile(f: File): bool {...}{.tags: [], gcsafe, locks: 0, raises: [].}- Возвращает true, если
fнаходится в конце. Исходный код Изменить proc readAll(file: File): TaintedString {...}{.tags: [ReadIOEffect], gcsafe, locks: 0, raises: [IOError].}-
Считывает все данные из потока
file.Выбрасывает исключение IO в случае ошибки. Ошибка возникает, если текущая позиция файла не находится в начале файла.
Исходный код Изменить proc writeLine[Ty](f: File; x: varargs[Ty, `$`]) {...}{.inline, tags: [WriteIOEffect], gcsafe, locks: 0.}- записывает значения
xвfи затем записывает "\n". Может выбросить исключение IO. Исходный код Изменить proc open(f: var File; filename: string; mode: FileMode = fmRead; bufSize: int = -1): bool {...}{.tags: [], raises: [], gcsafe, locks: 0.}-
Открывает файл с именем
filenameс заданнымmode.По умолчанию режим — только чтение. Возвращает true, если файл был открыт. Не выбрасывает исключений, если файл не удалось открыть.
Дескриптор файла, связанный с полученным
Исходный код ИзменитьFileне наследуется. proc reopen(f: File; filename: string; mode: FileMode = fmRead): bool {...}{. tags: [], gcsafe, locks: 0, raises: [].}-
переоткрывает файл
fс заданнымfilenameиmode. Это часто используется для перенаправления переменных файловstdin,stdoutилиstderr.По умолчанию режим — только чтение. Возвращает true, если файл удалось переоткрыть.
Дескриптор файла, связанный с
Исходный код Изменитьfне наследуется. proc open(f: var File; filehandle: FileHandle; mode: FileMode = fmRead): bool {...}{. tags: [], raises: [], gcsafe, locks: 0.}
-
Создаёт
Fileизfilehandleс заданнымиmode.По умолчанию режим — только чтение. Возвращает true, если файл был успешно открыт.
Переданный дескриптор файла больше не будет наследуемым.
Исходный код Изменить proc open(filename: string; mode: FileMode = fmRead; bufSize: int = -1): File {...}{. raises: [IOError], tags: [].}-
Открывает файл с именем
filenameс заданнымmode.По умолчанию режим — только чтение. Вызывает исключение
IOErrorв случае неудачного открытия файла.Дескриптор файла, связанный с полученным
Исходный код ИзменитьFileне является наследуемым. proc setFilePos(f: File; pos: int64; relativeTo: FileSeekPos = fspSet) {...}{.gcsafe, locks: 0, raises: [IOError], tags: [].}- Устанавливает позицию указателя файла, используемого для операций чтения/записи. Первый байт файла имеет индекс ноль. Исходный код Изменить
proc getFilePos(f: File): int64 {...}{.gcsafe, locks: 0, raises: [IOError], tags: [].}- Возвращает текущую позицию указателя файла, используемого для чтения из файла
f. Первый байт файла имеет индекс ноль. Исходный код Изменить proc getFileSize(f: File): int64 {...}{.tags: [ReadIOEffect], gcsafe, locks: 0, raises: [IOError].}- Возвращает размер файла (в байтах)
f. Исходный код Изменить proc setStdIoUnbuffered() {...}{.tags: [], gcsafe, locks: 0, raises: [].}- Настраивает
stdin,stdoutиstderrдля работы без буферизации. Исходный код Изменить proc readFile(filename: string): TaintedString {...}{.tags: [ReadIOEffect], gcsafe, locks: 0, raises: [IOError].}- Открывает файл с именем
filenameдля чтения, вызывает readAll, и закрывает файл после этого. Возвращает строку. Вызывает исключение IO в случае ошибки. Если вам нужно вызвать это внутри макроса времени компиляции, вы можете использовать staticRead. Исходный код Изменить proc writeFile(filename, content: string) {...}{.tags: [WriteIOEffect], gcsafe, locks: 0, raises: [IOError].}- Открывает файл с именем
filenameдля записи. Затем записываетcontentполностью в файл и закрывает файл после этого. Вызывает исключение IO в случае ошибки. Исходный код Изменить proc writeFile(filename: string; content: openArray[byte]) {...}{.raises: [IOError], tags: [WriteIOEffect].}- Открывает файл с именем
filenameдля записи. Затем записываетcontentполностью в файл и закрывает файл после этого. Вызывает исключение IO в случае ошибки. Исходный код Изменить proc readLines(filename: string; n: Natural): seq[TaintedString] {...}{. raises: [IOError, EOFError], tags: [ReadIOEffect].}- Читает
nстрок из файла с именемfilename. Вызывает исключение IO в случае ошибки. Вызывает EOF, если файл не содержит как минимумnстрок. Доступно во время компиляции. Строка текста может быть ограниченаLFилиCRLF. Символы новой строки не являются частью возвращаемых строк. Исходный код Изменить
Итераторы
iterator lines(filename: string): TaintedString {...}{.tags: [ReadIOEffect], raises: [IOError, IOError].}-
Итерируется по любой строке в файле с именем
filename.Если файл не существует, возникает
IOError. Конечные символы новой строки удаляются из итерируемых строк. Пример:import strutils proc transformLetters(filename: string) = var buffer = "" for line in filename.lines: buffer.add(line.replace("a", "0") & '\x0A') writeFile(filename, buffer)Исходный код Изменить iterator lines(f: File): TaintedString {...}{.tags: [ReadIOEffect], raises: [IOError].}-
Итерируется по любой строке в файле
f.Конечные символы новой строки удаляются из итерируемых строк. Пример:
proc countZeros(filename: File): tuple[lines, zeros: int] = for line in filename.lines: for letter in line: if letter == '0': result.zeros += 1 result.lines += 1Исходный код Изменить
Шаблоны
template stdmsg(): File
- Шаблон, который расширяется либо до stdout, либо до stderr, в зависимости от
useStdoutAsStdmsgпереключателя во время компиляции. Исходный код Изменить template readLines(filename: string): seq[TaintedString] {...}{. deprecated: "use readLines with two arguments".}- Исходный код Изменить
© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/io.html