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 .