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 .