Euphoria - Pliki I / O

Korzystając z języka programowania Euphoria, możesz pisać programy, które odczytują i zmieniają dane plików na dyskietce lub dysku twardym, lub tworzyć nowe pliki jako formę wyjścia. Możesz nawet uzyskać dostęp do urządzeń na komputerze, takich jak drukarka i modem.

W tym rozdziale opisano wszystkie podstawowe funkcje I / O dostępne w Euphorii. Aby uzyskać informacje na temat większej liczby funkcji, zapoznaj się ze standardową dokumentacją Euphoria.

Wyświetlanie na ekranie

Najprostszym sposobem uzyskania danych wyjściowych jest użycie instrukcji puts () , w której można przekazać dowolny ciąg znaków do wyświetlenia na ekranie. Istnieje inna metoda printf (), której można również użyć w przypadku, gdy trzeba sformatować ciąg przy użyciu wartości dynamicznych.

Te metody konwertują wyrażenia, które przekazujesz, na ciąg i zapisują wynik na standardowe wyjście w następujący sposób -

#!/home/euphoria-4.0b2/bin/eui
 
puts(1, "Euphoria is really a great language, isn't it?" )

Daje to następujący wynik na ekranie standardowym -

Euphoria is really a great language, isn't it?

Otwieranie i zamykanie plików

Euphoria domyślnie udostępnia podstawowe metody niezbędne do manipulowania plikami. Możesz wykonywać większość operacji na plikach, korzystając z następujących metod -

  • open()
  • close()
  • printf()
  • gets()
  • getc()

Otwarta metoda

Zanim będziesz mógł odczytać lub zapisać plik, musisz go otworzyć za pomocą wbudowanej metody open () firmy Euphoria . Ta funkcja tworzy deskryptor pliku, który jest używany do wywoływania innych powiązanych z nią metod pomocniczych.

Składnia

integer file_num = open(file_name, access_mode)

Powyższa metoda zwraca -1 w przypadku błędu podczas otwierania podanej nazwy pliku. Oto parametry -

  • file_name - Argument nazwa_pliku to ciąg znaków zawierający nazwę pliku, do którego chcesz uzyskać dostęp.

  • access_mode- access_mode określa tryb, w którym plik ma zostać otwarty. Na przykład odczyt, zapis, dołączanie itp. Pełna lista możliwych wartości trybów otwierania plików jest podana w poniższej tabeli -

S.Nr Tryby i opis
1

r

Otwiera plik tekstowy tylko do odczytu. Wskaźnik pliku jest umieszczany na początku pliku.

2

rb

Otwiera plik do odczytu tylko w formacie binarnym. Wskaźnik pliku jest umieszczany na początku pliku.

3

w

Otwiera plik tekstowy tylko do zapisu. Zastępuje plik, jeśli istnieje. Jeśli plik nie istnieje, tworzy nowy plik do zapisu.

4

wb

Otwiera plik do zapisu tylko w formacie binarnym. Zastępuje plik, jeśli istnieje. Jeśli plik nie istnieje, tworzy nowy plik do zapisu.

5

u

Otwiera plik do odczytu i zapisu. Wskaźnik pliku jest ustawiany na początku pliku.

6

ub

Otwiera plik do odczytu i zapisu w formacie binarnym. Wskaźnik pliku jest umieszczany na początku pliku.

7

a

Otwiera plik do dołączenia. Wskaźnik pliku znajduje się na końcu pliku, jeśli plik istnieje (tryb dołączania). Jeśli plik nie istnieje, tworzy nowy plik do zapisu.

8

ab

Otwiera plik do dołączenia w formacie binarnym. Wskaźnik pliku znajduje się na końcu pliku, jeśli plik istnieje (tryb dołączania). Jeśli plik nie istnieje, tworzy nowy plik do zapisu.

Przykład

Poniższy przykład tworzy nowy plik tekstowy w bieżącym katalogu w systemie 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

Jeśli plik otwiera się pomyślnie, to w bieżącym katalogu tworzony jest plik „myfile.txt” i daje następujący wynik -

File opend successfully

Close () metoda

Metoda close () usuwa wszelkie niepisane informacje i zamyka plik, po czym nie można już czytać ani zapisywać w pliku.

Euphoria automatycznie zamyka plik, gdy obiekt odniesienia pliku zostanie ponownie przypisany do innego pliku. Dobrą praktyką jest używanie metody close () do zamykania pliku.

Składnia

close( file_num );

Tutaj deskryptor pliku otrzymany podczas otwierania pliku jest przekazywany jako parametr.

Przykład

Poniższy przykład tworzy plik jak powyżej, a następnie zamyka go przed utworzeniem programu -

#!/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

Daje to następujący wynik -

File opend successfully
File closed successfully

Czytanie i pisanie plików

Euphoria zapewnia zestaw metod dostępu, które ułatwiają nam życie podczas czytania lub pisania pliku w trybie tekstowym lub binarnym. Zobaczmy, jak używać metod printf () i gets () do odczytu i zapisu plików.

Printf () Metoda

Metoda printf () zapisuje dowolny ciąg znaków do otwartego pliku.

Składnia

printf(fn, st, x)

Oto parametry -

  • fn - Deskryptor pliku otrzymany z metody open ().

  • st - Sformatuj ciąg, w którym liczba dziesiętna lub atom jest sformatowana przy użyciu% d, a ciąg lub sekwencja jest sformatowana przy użyciu% s.

  • x- Jeśli x jest sekwencją, to specyfikatory formatu z st są dopasowywane do odpowiednich elementów x. Jeśli x jest atomem, to normalnie st zawiera tylko jeden specyfikator formatu i jest stosowany do x. Jednak; jeśli st zawiera wiele specyfikatorów formatu, to każdy z nich jest stosowany do tej samej wartości x.

Przykład

Poniższy przykład otwiera plik i zapisuje imię i nazwisko oraz wiek osoby w tym pliku -

#!/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

Powyższy przykład tworzy plik myfile.txt . Zapisuje daną zawartość w tym pliku i ostatecznie zamyka. Jeśli otworzysz ten plik, będzie miał następującą zawartość -

My name is Zara and age is 8

Gets () Metoda

Metoda gets () odczytuje ciąg znaków z otwartego pliku.

Składnia

gets(file_num)

Tutaj przekazanym parametrem jest opis pliku zwracany przez metodę opend () . Ta metoda rozpoczyna czytanie od początku wiersza pliku po wierszu. Znaki mają wartości od 0 do 255. Atom -1 jest zwracany na końcu pliku.

Przykład

Weźmy plik myfile.txt, który jest już utworzony.

#!/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

Daje to następujący wynik -

File opend successfully
Read content : My name is Zara and age is 8

File closed successfully

Euphoria zawiera listę wielu metod, które pomagają w manipulowaniu plikami. Metody te są wymienione w Procedurach biblioteki Euphoria .