Используя язык программирования Euphoria, вы можете писать программы, которые читают и изменяют данные файлов на вашем гибком диске или жестком диске, или создавать новые файлы в качестве формы вывода. Вы даже можете получить доступ к устройствам на вашем компьютере, таким как принтер и модем.
В этой главе описаны все основные функции ввода / вывода, доступные в Euphoria. Для получения информации о дополнительных функциях, пожалуйста, обратитесь к стандартной документации Euphoria.
Отображение на экране
Простейший способ создания выходных данных — использование оператора put (), в котором вы можете передать любую строку для отображения на экране. Существует другой метод printf (), который также можно использовать в случае, если вам нужно отформатировать строку с использованием динамических значений.
Эти методы преобразуют выражения, которые вы передаете им, в строку и записывает результат в стандартный вывод следующим образом:
#!/home/euphoria-4.0b2/bin/eui puts(1, "Euphoria is really a great language, isn't it?" )
Это дает следующий результат на вашем стандартном экране —
Euphoria is really a great language, isn't it?
Открытие и закрытие файлов
Euphoria предоставляет основные методы, необходимые для работы с файлами по умолчанию. Вы можете сделать большую часть манипуляций с файлом, используя следующие методы —
- открыть()
- близко()
- Е ()
- получает ()
- ЕОКП ()
Открытый метод
Прежде чем вы сможете прочитать или написать файл, вы должны открыть его с помощью встроенного в Euphoria метода open () . Эта функция создает дескриптор файла, который используется для вызова других вспомогательных методов, связанных с ним.
Синтаксис
integer file_num = open(file_name, access_mode)
Выше метод возвращает -1 в случае ошибки при открытии данного имени файла. Вот параметры —
-
file_name — аргумент file_name представляет собой строковое значение, которое содержит имя файла, к которому вы хотите получить доступ.
-
access_mode — access_mode определяет режим, в котором файл должен быть открыт. Например, чтение, запись, добавление и т. Д. Полный список возможных значений для режимов открытия файлов приведен в следующей таблице:
file_name — аргумент file_name представляет собой строковое значение, которое содержит имя файла, к которому вы хотите получить доступ.
access_mode — access_mode определяет режим, в котором файл должен быть открыт. Например, чтение, запись, добавление и т. Д. Полный список возможных значений для режимов открытия файлов приведен в следующей таблице:
S.No | Режимы и описание |
---|---|
1 |
р Открывает текстовый файл только для чтения. Указатель файла находится в начале файла. |
2 |
Р.Б. Открывает файл для чтения только в двоичном формате. Указатель файла находится в начале файла. |
3 |
вес Открывает текстовый файл только для записи. Перезаписывает файл, если файл существует. Если файл не существует, создает новый файл для записи. |
4 |
термометру Открывает файл для записи только в двоичном формате. Перезаписывает файл, если файл существует. Если файл не существует, создает новый файл для записи. |
5 |
U Открывает файл для чтения и записи. Указатель файла устанавливается в начале файла. |
6 |
UB Открывает файл для чтения и записи в двоичном формате. Указатель файла находится в начале файла. |
7 |
Открывает файл для добавления. Указатель файла находится в конце файла, если файл существует (режим добавления). Если файл не существует, он создает новый файл для записи. |
8 |
аб Открывает файл для добавления в двоичном формате. Указатель файла находится в конце файла, если файл существует (режим добавления). Если файл не существует, он создает новый файл для записи. |
р
Открывает текстовый файл только для чтения. Указатель файла находится в начале файла.
Р.Б.
Открывает файл для чтения только в двоичном формате. Указатель файла находится в начале файла.
вес
Открывает текстовый файл только для записи. Перезаписывает файл, если файл существует. Если файл не существует, создает новый файл для записи.
термометру
Открывает файл для записи только в двоичном формате. Перезаписывает файл, если файл существует. Если файл не существует, создает новый файл для записи.
U
Открывает файл для чтения и записи. Указатель файла устанавливается в начале файла.
UB
Открывает файл для чтения и записи в двоичном формате. Указатель файла находится в начале файла.
Открывает файл для добавления. Указатель файла находится в конце файла, если файл существует (режим добавления). Если файл не существует, он создает новый файл для записи.
аб
Открывает файл для добавления в двоичном формате. Указатель файла находится в конце файла, если файл существует (режим добавления). Если файл не существует, он создает новый файл для записи.
пример
В следующем примере создается новый текстовый файл в текущем каталоге в вашей системе Linux —
#!/home/euphoria-4.0b2/bin/eui integer file_num constant ERROR = 2 constant STDOUT = 1 file_num = open("myfile,txt", "w") if file_num = -1 then puts(ERROR, "couldn't open myfile\n") else puts(STDOUT, "File opend successfully\n") end if
Если файл открывается успешно, то он «myfile.txt» создается в вашем текущем каталоге и дает следующий результат —
File opend successfully
Метод close ()
Метод close () сбрасывает любую неписанную информацию и закрывает файл, после чего чтение и запись в файл больше невозможны.
Euphoria автоматически закрывает файл, когда ссылочный объект файла переназначается другому файлу. Рекомендуется использовать метод close () для закрытия файла.
Синтаксис
close( file_num );
Здесь дескриптор файла, полученный при открытии файла, передается как параметр.
пример
В следующем примере создается файл, как указано выше, а затем он закрывается перед существованием программы.
#!/home/euphoria-4.0b2/bin/eui integer file_num constant ERROR = 2 constant STDOUT = 1 file_num = open("myfile.txt", "w") if file_num = -1 then puts(ERROR, "couldn't open myfile\n") else puts(STDOUT, "File opend successfully\n") end if if file_num = -1 then puts(ERROR, "No need to close the file\n") else close( file_num ) puts(STDOUT, "File closed successfully\n") end if
Это дает следующий результат —
File opend successfully File closed successfully
Чтение и запись файлов
Euphoria предоставляет набор методов доступа, облегчающих нашу жизнь при чтении или записи файла в текстовом или двоичном режиме. Давайте посмотрим, как использовать методы printf () и gets () для чтения и записи файлов.
Метод printf ()
Метод printf () записывает любую строку в открытый файл.
Синтаксис
printf(fn, st, x)
Вот параметры —
-
fn — дескриптор файла, полученный из метода open ().
-
st — Строка формата, где десятичное число или атом отформатированы с использованием% d, а строка или последовательность отформатирована с использованием% s.
-
x — Если x — последовательность, то спецификаторы формата из st сопоставляются с соответствующими элементами x. Если x является атомом, то обычно st содержит только один спецификатор формата и применяется к x. Тем не мение; Если st содержит несколько спецификаторов формата, то каждый из них применяется к одному и тому же значению x.
fn — дескриптор файла, полученный из метода open ().
st — Строка формата, где десятичное число или атом отформатированы с использованием% d, а строка или последовательность отформатирована с использованием% s.
x — Если x — последовательность, то спецификаторы формата из st сопоставляются с соответствующими элементами x. Если x является атомом, то обычно st содержит только один спецификатор формата и применяется к x. Тем не мение; Если st содержит несколько спецификаторов формата, то каждый из них применяется к одному и тому же значению x.
пример
В следующем примере открывается файл и записывается имя и возраст человека в этом файле —
#!/home/euphoria-4.0b2/bin/eui integer file_num constant ERROR = 2 constant STDOUT = 1 file_num = open("myfile.txt", "w") if file_num = -1 then puts(ERROR, "couldn't open myfile\n") else puts(STDOUT, "File opend successfully\n") end if printf(file_num, "My name is %s and age is %d\n", {"Zara", 8}) if file_num = -1 then puts(ERROR, "No need to close the file\n") else close( file_num ) puts(STDOUT, "File closed successfully\n") end if
Приведенный выше пример создает файл myfile.txt . Записывает заданное содержимое в этот файл и, наконец, закрывается. Если вы откроете этот файл, он будет иметь следующий контент —
My name is Zara and age is 8
Метод gets ()
Метод gets () читает строку из открытого файла.
Синтаксис
gets(file_num)
Здесь передаваемым параметром является описание файла, возвращаемое методом opend () . Этот метод начинает чтение с начала файла строка за строкой. Символы имеют значения от 0 до 255. Атом -1 возвращается в конец файла.
пример
Давайте возьмем файл myfile.txt, который уже создан.
#!/home/euphoria-4.0b2/bin/eui integer file_num object line constant ERROR = 2 constant STDOUT = 1 file_num = open("myfile.txt", "r") if file_num = -1 then puts(ERROR, "couldn't open myfile\n") else puts(STDOUT, "File opend successfully\n") end if line = gets(file_num) printf( STDOUT, "Read content : %s\n", {line}) if file_num = -1 then puts(ERROR, "No need to close the file\n") else close( file_num ) puts(STDOUT, "File closed successfully\n") end if
Это дает следующий результат —
File opend successfully Read content : My name is Zara and age is 8 File closed successfully
Euphoria предоставляет список многих методов, которые помогают вам манипулировать файлами. Эти методы перечислены в подпрограммах библиотеки Euphoria .