Euphoria - Файловый ввод-вывод
Используя язык программирования 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 предоставляет основные методы, необходимые для работы с файлами по умолчанию. Вы можете выполнять большую часть манипуляций с файлами, используя следующие методы:
- open()
- close()
- printf()
- gets()
- getc()
Открыт метод
Прежде чем вы сможете прочитать или записать файл, вы должны открыть его с помощью встроенного в Euphoria метода open () . Эта функция создает файловый дескриптор, который используется для вызова других связанных с ним вспомогательных методов.
Синтаксис
integer file_num = open(file_name, access_mode)
Вышеупомянутый метод возвращает -1 в случае ошибки при открытии файла с заданным именем. Вот параметры -
file_name - Аргумент имя_файла - это строковое значение, содержащее имя файла, к которому вы хотите получить доступ.
access_mode- Access_mode определяет режим, в котором файл должен быть открыт. Например, чтение, запись, добавление и т. Д. Полный список возможных значений для режимов открытия файла приведен в следующей таблице -
S.No | Режимы и описание |
---|---|
1 | r Открывает текстовый файл только для чтения. Указатель файла помещается в начало файла. |
2 | rb Открывает файл для чтения только в двоичном формате. Указатель файла помещается в начало файла. |
3 | w Открывает текстовый файл только для записи. Заменяет файл, если он существует. Если файл не существует, создает новый файл для записи. |
4 | wb Открывает файл для записи только в двоичном формате. Заменяет файл, если он существует. Если файл не существует, создает новый файл для записи. |
5 | u Открывает файл для чтения и записи. Указатель файла устанавливается в начале файла. |
6 | ub Открывает файл для чтения и записи в двоичном формате. Указатель файла помещается в начало файла. |
7 | a Открывает файл для добавления. Указатель файла находится в конце файла, если файл существует (режим добавления). Если файл не существует, создается новый файл для записи. |
8 | ab Открывает файл для добавления в двоичном формате. Указатель файла находится в конце файла, если файл существует (режим добавления). Если файл не существует, создается новый файл для записи. |
пример
В следующем примере создается новый текстовый файл в текущем каталоге вашей системы 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 () сбрасывает всю незаписанную информацию и закрывает файл, после чего чтение или запись в файл невозможны.
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(fn, 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(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 .