Lua - File I/O: A Beginner's Guide

Hai pengguna masa depan Lua! Hari ini, kita akan memulakan sebuah perjalanan yang menarik ke dalam dunia Input/Output (I/O) Fail di Lua. Jangan bimbang jika anda belum pernah memrogram sebelum ini - saya akan menjadi panduannya yang ramah, menjelaskan segala-galanya secara berperingkat. Jadi, ambil secangkir minuman kesukaan anda, dan mari kita masuk ke dalamnya!

Lua - File I/O

Apa Itu File I/O?

Sebelum kita mula, mari kita memahami apa maksud File I/O. Dalam istilah yang mudah, ia adalah bagaimana program kita berinteraksi dengan fail di komputer. Kita boleh membaca data dari fail (Input) atau menulis data ke fail (Output). Ia seperti menjalankan sebuah perbualan dengan storan komputer anda!

Penunjuk Fail Implicit

Lua membuat operasi fail menjadi sangat mudah dengan sesuatu yang dipanggil "penunjuk fail implisit". Jangan biarkan istilah yang keren ini menakutkan anda - ia hanya bermaksud Lua menguruskan beberapa detil di belakang layar, supaya kita dapat fokus kepada hal yang penting.

Membaca Dari Fail

Mari kita mula dengan membaca dari fail. Bayangkan anda ada fail bernama "hello.txt" dengan kandungan "Hello, Lua!".

local content = io.read("*all")
print(content)

Bila anda jalankan kode ini, ia akan mencetak "Hello, Lua!" ke skrin. Ilmu sihir, kan? mari kita lihat apa yang berlaku:

  • io.read("*all") membaca keseluruhan kandungan fail.
  • Kita simpan kandungan ini ke dalam variabel content.
  • Kemudian kita cetaknya.

Menulis Ke Fail

Sekarang, mari kita cuba menulis ke fail:

io.write("Lua adalah hebat!")

Baris ini akan menulis "Lua adalah hebat!" ke fail. Tetapi tunggu, ke fail mana? Secara default, Lua menulis ke "output standard", yang biasanya adalah skrin komputer anda. Untuk menulis ke fail sebenar, kita perlu menggunakan io.output():

io.output("output.txt")
io.write("Lua adalah hebat!")
io.close()

Berikut adalah apa yang dilakukan setiap baris:

  1. io.output("output.txt") memberitahu Lua untuk menulis ke fail bernama "output.txt".
  2. io.write("Lua adalah hebat!") menulis pesan kita ke fail.
  3. io.close() menutup fail, yang penting untuk memastikan semua data disimpan.

Membaca Baris demi Baris

Kadang-kadang, kita mahu membaca fail baris demi baris. Lua membuat ini sangat mudah:

for line in io.lines("input.txt") do
print(line)
end

Kode ini akan mencetak setiap baris dari "input.txt" ke skrin. Ia seperti sihir - Lua secara automatik membuka fail, membacanya baris demi baris, dan menutupnya selepas selesai!

Penunjuk Fail Eksplisit

Sekarang, mari kita tingkatkan dan bicarakan "penunjuk fail eksplisit". Ini memberikan kita lebih banyak kawalan atas operasi fail kita.

Membuka Fail

Untuk membuka fail secara eksplisit, kita gunakan io.open():

local file = io.open("data.txt", "r")
if file then
local content = file:read("*all")
print(content)
file:close()
else
print("Tidak dapat membuka fail")
end

Mari kitaongkikan ini:

  1. io.open("data.txt", "r") membuka "data.txt" dalam mode baca ("r").
  2. Kita periksa jika file wujud (dalam kes fail tidak dapat dibuka).
  3. Jika ia wujud, kita baca keseluruhan kandungannya dengan file:read("*all").
  4. Kita cetak kandungan dan tutup fail.
  5. Jika fail tidak dapat dibuka, kita cetak mesej ralat.

Menulis Dengan Penunjuk Eksplisit

Menulis juga berfungsi sama:

local file = io.open("output.txt", "w")
if file then
file:write("Lua adalah menakjubkan!\n")
file:write("Saya suka memrogram!")
file:close()
else
print("Tidak dapat membuka fail untuk menulis")
end

Kode ini membuka "output.txt" dalam mode tulis ("w"), menulis dua baris kepadanya, dan kemudian menutup fail.

Metod Fail Berguna

Berikut adalah jadual metod fail yang berguna yang anda boleh gunakan:

Metod Keterangan
file:read(...) Membaca dari fail mengikut format yang diberikan
file:write(...) Menulis string ke fail
file:lines() Mengembalikan penjelajah untuk membaca fail baris demi baris
file:seek(whence, offset) Menetapkan posisi fail untuk membaca/menulis
file:flush() Menyimpan data yang ditulis ke fail
file:close() Menutup fail

Contoh Dunia Real: Aplikasi Catatan Sederhana

Mari kita gabungkan segalanya dan buat aplikasi catatan sederhana:

-- Fungsi untuk menambah catatan
function add_note()
print("Masukkan catatan anda:")
local note = io.read()
local file = io.open("notes.txt", "a")
if file then
file:write(note .. "\n")
file:close()
print("Catatan ditambah dengan jaya!")
else
print("Ralat: Tidak dapat membuka fail")
end
end

-- Fungsi untuk membaca semua catatan
function read_notes()
local file = io.open("notes.txt", "r")
if file then
print("Catatan anda:")
for line in file:lines() do
print(line)
end
file:close()
else
print("Tiada catatan ditemui atau gagal membuka fail")
end
end

-- Loop program utama
while true do
print("\nApa yang anda hendak lakukan?")
print("1. Tambah catatan")
print("2. Baca catatan")
print("3. Keluar")
local choice = io.read("*n")

if choice == 1 then
add_note()
elseif choice == 2 then
read_notes()
elseif choice == 3 then
print("Selamat tinggal!")
break
else
print("Pilihan tak sah. Sila cuba lagi.")
end
end

Program ini membolehkan anda menambah catatan ke fail dan membacanya kembali. Ia menggunakan kedua-dua operasi baca dan tulis, memberikan anda rasa bagaimana File I/O boleh digunakan dalam aplikasi sebenar.

Kesimpulan

Tahniah! Anda baru saja mengambil langkah pertama ke dalam dunia File I/O di Lua. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencuba konsep ini. Cobalah untuk mengubah aplikasi catatan ini atau cipta projek anda sendiri menggunakan operasi fail.

File I/O mungkin kelihatan menakutkan pada permulaan, tetapi dengan masa, anda akan menemui ia adalah alat yang sangat kuat dalam bekas perisai pemrograman anda. Ia membolehkan program anda menyimpan dan mengambil data, menjadikan mereka lebih berguna dan berpelbagaian.

Teruskan untuk mengoding, terus belajar, dan terutamanya, bersenang-senang! Dunia pemrograman penuh dengan kemungkinan yang menarik, dan anda baru saja memulakan pengembaraan anda. Selamat coding Lua!

Credits: Image by storyset