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 .