IsDir
Fungsi
IsDir mengembalikan TRUE jika path menunjuk ke sebuah direktori. Jika
path tidak ada atau bukan sebuah direktori, fungsi ini mengembalikan
FALSE. Konvensi pemanggilan adalah:
Boolean
= IsDir ( Path )
PRINT
IsDir("/etc/password")
False
PRINT
IsDir(Application.Home &/ ".gambas")
True
PRINT
IsDir("/windows")
False
Stat
Fungsi
Stat mengembalikan informasi tentang file atau direktori. File
informasi objek dikembalikan meliputi jenis, ukuran, tanggal
modifikasi terakhir / waktu, perizinan, dll properti file berikut
dapat diperoleh
dengan menggunakan fungsi ini:
.Group .Hidden .LastAccess .LastChange .LastModified .Link .Mode
.Path .Perm .SetGID
.SetUID .Size .Sticky .Time .Type .User
Standar
konvensi pemanggilan untuk Stat adalah:
File
info = Stat (Path)
WITH
Stat("/home")
PRINT
.Type = gb.Directory
PRINT
Round(.Size / 1024); "K"
END
WITH
konsol
akan merespon dengan :
True
4K
Mari
kita mengalihkan perhatian kita sejenak untuk memeriksa sintaks di
atas. Sebagaimana yang anda ingat dari Bab 2, "WITH
.. END WITH" Pernyataan ini
terutama digunakan untuk menetapkan nilai properti. Ekspresi Sebuah
awal dengan titik (".") Terletak antara WITH
dan END WITH
mengacu pada objek dinamai WITH
- dalam hal ini, "/ home" subdirektori. "Gb"
adalah kelas statis yang mencakup semua konstanta Gambas dasar yang
digunakan oleh banyak fungsi. "Gb.Directory"
adalah konstanta flag yang digunakan oleh properti Stat.Type
untuk menunjuk direktori. Ketika fungsi Stat itu dipanggil dengan
argumen path file, nilai Stat.Type
disediakan dibandingkan dengan flag gb.Directory. Karena Stat.Type
tidak dapat diberi nilai yang berbeda dari apa yang laporan sistem,
kesetaraan dalam hal ini bukanlah hasil suatu tugas. Gambas
memperlakukan sebagai ujian Boolean dari apakah atau tidak ini path
khusus, seperti yang dilaporkan oleh sistem, memiliki flag
gb.Directory
diatur ke TRUE. Stat.Size mengembalikan
ukuran file atau direktori. Untuk PRINT
ukuran direktori dalam bentuk kilobyte, nilai (dalam bytes)
dikembalikan oleh Stat.Size
dibagi dengan 1024 byte / kilobyte, maka dibulatkan ke integer
terdekat dengan fungsi Round, yang akan kita jumpai dalam Bab 10.
Temp / Temp$
Temp
$ mengembalikan nama file yang unik yang berguna untuk membuat
file-file sementara. Nama file dibuat akan berada di direktori / tmp.
Konvensi
pemanggilnya adalah:
File
name = Temp$([Name])
/tmp/gambas.[User
ID]/[Process ID]/[Name].tmp
Jika
tidak ada nama file prefiks opsional disertakan, maka Gambas akan
menetapkan integer sebaliknya, dan bilangan bulat berurutan untuk
menambahkan file
sementara.
Contoh
:
PRINT
Temp$()
kembali:
/tmp/gambas.0/12555/1.tmp
PRINT
Temp$(another)
kembali:
/tmp/gambas.0/12555/another.tmp
OPEN and CLOSE
OPEN
dan CLOSE
bekerja sebagai sebuah tim. OPEN
membuka file untuk membaca, menulis, membuat atau menambahkan data.
Kecuali kata kunci CREATE
ditentukan, file tersebut harus ada. Jika kata
kunci CREATE
yang ditentukan, maka file dibuat, atau dihapus jika sudah ada. Jika
file yang dibuka untuk menulis, path untuk itu harus mutlak karena
path relatif adalah, secara default, diasumsikan untuk merujuk ke
file yang ada di dalam proyek Gambas saat ini atau folder arsip.
Memanggil konvensi untuk OPEN
adalah:
file
= OPEN path/filename FOR [ READ|INPUT ] [ WRITE|OUTPUT ] [ CREATE |
APPEND ] [ WATCH ]
Jika
kata kunci APPEND
yang ditentukan, maka pointer file akan dipindahkan ke akhir file
setelah file dibuka. Jika Anda menggunakan INPUT
atau OUTPUT,
maka input-output adalah buffer.
Jika Anda menggunakan kata kunci READ
or WRITE, input-output bukan
buffer. Jika kata kunci WATCH
ditentukan, file tersebut dilihat oleh interpreter menggunakan
pedoman kondisional berikut:
- Jika setidaknya satu byte dapat ditulis ke dalam file, maka handler File_Write event () dipanggil.
Catatan
tentang "Endianness" dan "Streaming":
Untuk tujuan kami, "Endianness"
mengacu pada urutan byte byte disimpan dalam file data. Jika byte
paling signifikan disimpan dalam posisi pertama, diikuti oleh byte
decreasingly signifikan, maka format adalah "big-endian".
Sebuah contoh dari konsep big-endian akan menjadi nomor "dua
puluh empat". Dalam "little-endian" format, byte
paling signifikan yang dihadapi terlebih dahulu. Jumlah yang sama,
diungkapkan dalam format little-endian, akan menjadi "dua puluh
empat". Endianness penting ketika Anda ingin membaca data dari
"stream" sebagai data biner. "Stream" mengacu
untuk mengakses setiap file dari sebuah proses, apakah itu aliran
terbatas seperti file pada disk, atau aliran tak terbatas seperti
data dari videocam atau data yang dikirimkan melalui internet melalui
TCP (Transmission Control Protocol).
Contoh-contoh
berikut menunjukkan bagaimana untuk membaca data dari file BMP,
dikenal menggunakan format little-endian:
DIM
hFile AS File
DIM
iData AS Integer
hFile
= OPEN "image.bmp" FOR INPUT
hFile.ByteOrder
= gb.LittleEndian
...
READ
#hFile, iData
CLOSE
adalah fungsi timbal balik dan hanya menutup sebuah
file yang dibuka.
Sintaks untuk menggunakan CLOSE
adalah:
CLOSE
# File
Disini
sebuah contoh tentang membuka dan menutup file :
'
Gambas Class File
sCurrentFileName
AS String
sCurrentFileLength
AS Integer
PUBLIC
SUB Form_Open()
DIM
sInputLine AS String
DIM
hFileIn AS File
sCurrentFileName = "The
Raven.txt"
IF
Exist(sCurrentFileName) THEN
hFioleIn
= OPEN sCurrentFileName FOR READ
sCurrentFileLength =
Lof(hFileIn)
WHILE
NOT Eof(hFileIn)
LINE
INPUT #hFileIn, sInputLine 'explained
below
TextArea1.Text= TextArea1.Text
& Chr(13) & Chr(10) & sInputLine
WEND
CLOSE
hFileIn
ELSE
Message.Info("File "
& sCurrentFileName & " does not exist.")
ENDIF
END
Kang mau tanya tentang script
BalasHapustau gak script yang bikin button buka terminal,
button mengetik perintah di terminal dan menampilkan proses di terminal pada gambas.
juga button untuk menutup terminal
Maaf untuk Saudara Teuku, Saya tidak bisa menjawab pertanyaan Saudara, karena saya sendiri sedang mempelajari Gambas, Saya rekomendasikan masuk ke Group Gambas di FB. Mohon maaf sekali lagi.
HapusAkang, kenapa berhenti mentranslate ?
BalasHapustolong diselesaikan dong pentrenslate tanya. Sangat bermanfaat kang :)
Wah maaf Kang Azrul, jika anda menunggu translate berikutnya, dua tahun saya disibukkan oleh pekerjaan sebagai guru. Mudah2an dalam waktu bisa meneruskan terjemahannya.
BalasHapus