Euforia - I / O File

Dengan menggunakan bahasa pemrograman Euphoria, Anda dapat menulis program yang membaca dan mengubah data file pada floppy drive atau hard drive Anda, atau membuat file baru sebagai bentuk output. Anda bahkan dapat mengakses perangkat di komputer Anda seperti printer dan modem.

Bab ini menjelaskan semua fungsi I / O dasar yang tersedia di Euphoria. Untuk informasi tentang fungsi lainnya, silakan merujuk ke dokumentasi Euphoria standar.

Menampilkan di Layar

Cara termudah untuk menghasilkan keluaran adalah menggunakan pernyataan put () di mana Anda dapat meneruskan string apa pun untuk ditampilkan di layar. Ada metode lain printf () yang juga dapat digunakan jika Anda harus memformat string menggunakan nilai dinamis.

Metode ini mengonversi ekspresi yang Anda berikan ke string dan menulis hasilnya ke output standar sebagai berikut -

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

Ini menghasilkan hasil berikut di layar standar Anda -

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

Membuka dan Menutup File

Euforia menyediakan metode dasar yang diperlukan untuk memanipulasi file secara default. Anda dapat melakukan sebagian besar manipulasi file menggunakan metode berikut -

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

The terbuka Metode

Sebelum Anda dapat membaca atau menulis file, Anda harus membukanya menggunakan metode open () built-in Euphoria . Fungsi ini membuat deskriptor file yang digunakan untuk memanggil metode pendukung lain yang terkait dengannya.

Sintaksis

integer file_num = open(file_name, access_mode)

Metode di atas mengembalikan -1 jika ada kesalahan dalam membuka nama file yang diberikan. Berikut adalah parameternya -

  • file_name - Argumen nama_file adalah nilai string yang berisi nama file yang ingin Anda akses.

  • access_mode- Access_mode menentukan mode di mana file harus dibuka. Misalnya, baca, tulis tambahkan, dll. Daftar lengkap nilai yang mungkin untuk mode pembukaan file diberikan dalam tabel berikut -

S.No Mode & Deskripsi
1

r

Membuka file teks untuk membaca saja. Penunjuk file ditempatkan di awal file.

2

rb

Membuka file untuk membaca hanya dalam format biner. Penunjuk file ditempatkan di awal file.

3

w

Membuka file teks untuk menulis saja. Menimpa file jika file tersebut ada. Jika file tidak ada, buat file baru untuk menulis.

4

wb

Membuka file untuk menulis hanya dalam format biner. Menimpa file jika file tersebut ada. Jika file tidak ada, buat file baru untuk menulis.

5

u

Membuka file untuk membaca dan menulis. Penunjuk file diatur di awal file.

6

ub

Membuka file untuk membaca dan menulis dalam format biner. Penunjuk file ditempatkan di awal file.

7

a

Membuka file untuk ditambahkan. Penunjuk file berada di akhir file jika file tersebut ada (mode tambah). Jika file tidak ada, itu membuat file baru untuk ditulis.

8

ab

Membuka file untuk ditambahkan dalam format biner. Penunjuk file berada di akhir file jika file tersebut ada (mode tambah). Jika file tidak ada, itu membuat file baru untuk ditulis.

Contoh

Contoh berikut membuat file teks baru di direktori saat ini di sistem Linux Anda -

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

Jika file berhasil dibuka, maka "myfile.txt" dibuat di direktori Anda saat ini dan menghasilkan hasil sebagai berikut -

File opend successfully

The dekat () Method

Metode close () menghapus semua informasi yang tidak tertulis dan menutup file, setelah itu tidak ada lagi pembacaan atau penulisan yang dapat dilakukan pada file tersebut.

Euforia secara otomatis menutup file ketika objek referensi file dipindahkan ke file lain. Ini adalah praktik yang baik untuk menggunakan metode close () untuk menutup file.

Sintaksis

close( file_num );

Di sini deskriptor file yang diterima saat membuka file diteruskan sebagai parameter.

Contoh

Contoh berikut membuat file seperti di atas dan kemudian menutupnya sebelum ada program -

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

Ini menghasilkan hasil sebagai berikut -

File opend successfully
File closed successfully

Membaca dan Menulis File

Euphoria menyediakan sekumpulan metode akses untuk mempermudah hidup kita saat membaca atau menulis file baik dalam mode teks maupun mode biner. Mari kita lihat bagaimana menggunakan metode printf () dan gets () untuk membaca dan menulis file.

The printf () Method

Metode printf () menulis string apa pun ke file yang terbuka.

Sintaksis

printf(fn, st, x)

Berikut adalah parameternya -

  • fn - Deskriptor file yang diterima dari metode open ().

  • st - Format string di mana desimal atau atom diformat menggunakan% d dan string atau urutan diformat menggunakan% s.

  • x- Jika x berurutan, maka penentu format dari st dicocokkan dengan elemen x yang sesuai. Jika x adalah atom, maka biasanya st hanya berisi satu penentu format dan diterapkan ke x. Namun; jika st berisi beberapa penentu format, maka masing-masing diterapkan ke nilai x yang sama.

Contoh

Contoh berikut membuka file dan menulis nama dan usia seseorang di file ini -

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

Contoh di atas membuat file myfile.txt . Apakah menulis konten yang diberikan dalam file itu dan akhirnya ditutup. Jika Anda membuka file ini, itu akan memiliki konten berikut -

My name is Zara and age is 8

The mendapat () Method

Metode gets () membaca string dari file yang terbuka.

Sintaksis

gets(file_num)

Parameter yang dilewatkan di sini adalah deskripsi file yang dikembalikan dengan metode opend () . Metode ini mulai membaca dari awal file baris demi baris. Karakter memiliki nilai dari 0 hingga 255. Atom -1 dikembalikan pada akhir file.

Contoh

Mari kita ambil file myfile.txt yang sudah dibuat.

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

Ini menghasilkan hasil sebagai berikut -

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

File closed successfully

Euphoria menyediakan daftar banyak metode yang membantu Anda dalam memanipulasi file. Metode ini tercantum dalam Rutinitas Perpustakaan Euphoria .