Halo, dan selamat datang kembali.
Dalam kuliah ini, saya ingin berbicara tentang pemosisian file, pada dasarnya
beberapa fungsi yang memungkinkan Anda untuk mengubah posisi file.
Jadi untuk banyak aplikasi, Anda akan harus dapat mengakses data
dalam file selain urutan berurutan.
Urutan berurutan dimulai di awal dan kemudian
byte demi byte menjelang akhir.
Itu tidak selalu berguna karena Anda mungkin ingin benar-benar masuk
ke tengah file dan mengambil data atau di akhir file dan ambil data.
Itu semua tergantung pada aplikasi.
Anda tidak selalu ingin pergi dari awal hingga akhir.
Jadi ada berbagai fungsi yang dapat Anda gunakan untuk mengakses
data dalam urutan acak.
Ada dua aspek dari posisi file.
Salah satunya adalah mencari tahu di mana Anda berada dalam file dan yang lainnya
bergerak ke titik tertentu dalam file.
Itu benar-benar dua hal yang kamu ingin mencari tahu
ketika Anda berbicara tentang file dan posisi a file, apa yang sebenarnya ditunjuk.
Sekali lagi, di mana Anda berada dalam file sendiri dan apakah Anda ingin pindah ke
tempat lain dalam file atau tidak.
Jadi Anda dapat mengakses file di posisi acak terlepas dari apakah Anda
membuka file, Anda dapat memindahkan file partner Anda.
Anda tidak perlu membuka file untuk mengubah di mana Anda berada untuk mengubah
melihat di mana Anda berada.
Jadi cari tahu di mana Anda berada kita akan berbicara tentang pertama.
Anda memiliki dua fungsi untuk ditemukan di mana Anda berada dalam satu file.
Disebut ftel dan satu adalah disebut fgetpos, posisi fget.
Untuk ftell, fungsi sebenarnya definisi cukup sederhana.
Anda kembali bersama dan Anda mengambil file pointer.
Dan fungsi ini akan menerima penunjuk file sebagai argumen
dan itu akan mengembalikan bilangan bulat panjang nilai yang menentukan posisi karakter
dalam file, jadi itu akan memberitahu Anda posisi.
Anda dapat menggunakannya dengan membuat variabel dalam hal ini fpos, yang akan menjadi apa yang
akan didapat dikembalikan dan kemudian meneruskan penunjuk
file itu dan memanggil ftel.
Variabel posisi f sekarang berlaku posisi saat ini dalam file
dan Anda dapat menggunakannya untuk kembali ke posisi pada waktu berikutnya.
Jadi itu akan mengembalikan fposition Anda.
Ini adalah cara Anda bisa mendapatkan posisi titik saat ini
di mana Anda menunjuk.
Nilainya adalah offset dalam byte dari awal file.
Jadi sangat mudah untuk gunakan pass di pointer Anda, itu akan
kembali dan memberi tahu Anda di mana Anda ada di file Anda berdasarkan pada
dasarnya dari awal file sampai berapa byte dari awal.
Jadi dalam contoh ini, kami membuat penunjuk file bernama fp dan kami membuat bilangan
bulat yang disebut panjang.
Kita akan membuka file, dan ini hanya untuk dibaca.
Kami akan membuat yakin itu bukan nol.
Jika ya, kita pergi untuk mengembalikan kesalahan.
Dan kemudian jangan khawatir tentang fseek.
Fseek sebenarnya baru saja pergi untuk pergi ke akhir file.
Ini adalah fungsi lain yang membantu kami.
Saya hanya menggunakannya untuk mendemonstrasikan ftel.
Fseek akan pergi sampai akhir dari file, dan kemudian Anda
akan mengatakan ftell fp, dan itu terjadi untuk memberi tahu Anda bahwa pada dasarnya Anda akan berada
di akhir file.
Jadi tautan yang dikembalikan ada di akhir file.
Dan jadi apa yang akan terjadi adalah itu akan
mengembalikan ukuran total file berdasarkan panjangnya karena Anda benar-benar memindahkan penunjuk Anda ke akhir
dan kemudian Anda mengatakan di mana saya dan dikatakan Anda berada di
akhir, jadi kembalikan akhir.
Dan akhirnya adalah jumlah byte sejak terakhir kali Anda membaca.
Jadi mari kita lihat ini di dalam dari IDE kami yang bagus, blok kode kami.
Jadi inilah contoh pengkodean kami tempat kami membuat penunjuk file kami.
Kami mengaturnya ke nol, buat yakin itu bukan nol.
Kami mencoba membukanya.
Dan kemudian kami melakukan pencarian yang adil akan mengubah pointer file kami.
Ftel akan memberi tahu kami tempat yang kita tunjuk.
Jadi itu akan menunjuk ke akhir dan itu akan menjadi
sejumlah byte sampai akhir.
Saat kami menjalankan ini, apa yang akan Anda lakukan yang perlu diperhatikan adalah menampilkan 24 byte.
Jadi itu berarti Anda berada di akhir file karena file tersebut adalah file kecil dan
file tersebut hanya berisi 24 byte.
Biasanya, Anda akan menggunakan ftel setelahnya Anda telah selesai menulis atau membaca atau setelah
Anda melakukannya di cari di mana Anda pindah ke suatu tempat.
Tapi sangat mudah untuk menelepon ftel dengan penunjuk file dan kemudian len hanya
memberi tahu Anda di mana Anda berada.
Anda juga dapat menggunakan fget posisi atau fungsi fgetpos.
Dan ini adalah fungsi kedua memberikan informasi tentang posisi file
saat ini.
Ini sedikit lagi rumit dari ftel.
Ini mengembalikan bilangan bulat.
Dibutuhkan file pointer dan itu juga mengambil posisi f tipe t.
Jadi parameter pertama adalah penunjuk file itu, jadi Anda tahu file
apa yang perlu Anda baca.
Parameter kedua adalah pointer ke a jenis yang didefinisikan dalam standardio. H.
Posisi f tipe t mampu merekam setiap posisi dalam file.
Jadi fungsi posisi fget adalah dirancang untuk
digunakan ketika fungsi pemosisian fset posisi.
Jadi Anda menggunakan posisi fset dan maka Anda menggunakan posisi fget dalam
kombinasi dengan itu.
Jadi fungsi posisi fget menyimpan posisi saat ini dan
informasi status file untuk file tersebut dan posisi
dan kembalikan nol jika operasi berhasil, kembalikan a nilai integer bukan nol untuk kegagalan.
Jadi Anda bisa membuat variabel tipe posisi s.
Dan di sini kita katakan itu hanya di sini.
Kemudian kita sebut posisi fget.
Kami menentukan dalam penunjuk file kami, dan kita tentukan dalam tipe posisi f kita.
Kita harus melewati ampersand, the alamat karena itu bukan pointer.
Jadi dalam hal ini, arus posisi file ada di
variabel hello atau here.
Jadi, Anda harus mendeklarasikan variabel dari tipe f posisi t karena
itulah yang Anda lewati di parameter, parameter kedua Anda.
Anda dapat mendeklarasikan pointer dari ketik f posisi t bintang karena
tidak akan ada kenangan terkait untuk menyimpan data posisi.
Jadi mari kita lihat contohnya ini akan lebih masuk akal.
Dalam hal ini, kami membuat file kami pointer, kami membuat posisi tipe t
milik kami, kami sebut terbuka dan kemudian kita sebut posisi fget.
Dan kami memasukkan file kami pointer di posisi akhir kita.
Jadi di situlah kita berada menyimpan posisi.
Kita akan mendapatkan posisi di mana kita berada.
Kemudian ketika kita mengatakan f put s, kami sedang menulis beberapa data
ke mana pun kami pindah.
Jadi sekali lagi, f dapatkan posisi dan ftell memberi tahu Anda dari mana Anda ingin
menulis atau membaca.
Itu di suatu tempat di tengah.
Bukan di awal, itu tidak di akhir.
Anda pindah.
Anda biasanya akan bergerak dengan pencarian atau gerakan Anda dengan sesuatu yang lain, dapatkan
posisi dan itu memberitahu Anda di mana Anda berada.
Jadi fget posisi dan ftell adalah akan memberi tahu Anda dengan tepat ke mana Anda
menunjuk, dan itu berarti Anda dapat pindah ke tempat lain dan Anda
akan dapat membaca.
Sekarang mengatur posisi di a file sampai saat ini, kami hanya membaca
di mana kita berada.
Kami tidak akan benar-benar membaca di mana kita berada kecuali
kita mengatur sesuatu, kita melakukan membaca dan menulis.
Jadi sebagai pelengkap ftell, Anda juga memiliki fseek.
Dan fseek akan memungkinkan Anda untuk pindah ke suatu tempat untuk posisi Anda.
Ini mengembalikan sebuah int.
Ini mengembalikan pointer file, long fset dan bilangan asli asli.
Parameter pertama adalah pointer ke file yang Anda reposisi.
Parameter kedua dan ketiga menentukan di mana Anda ingin pergi dalam file.
Parameter kedua adalah offset di mana titik referensi
ditentukan oleh parameter ketiga.
Titik referensi bisa menjadi satu dari tiga nilai yang Anda
tentukan dengan nama yang telah ditentukan.
Mencari set, mencari saat ini dan mencari akhir.
Seek set mendefinisikan awal file.
Carilah skr mendefinisikan arus position dalam file dan seek
end mendefinisikan akhir file.
Jadi untuk file mode teks, argumen kedua harus berupa nilai yang
dikembalikan oleh ftel.
Jadi, Anda harus memperhatikan itu dengan fseek dan ftel, mereka digunakan bersama.
Jadi argumen ketiga untuk teks file mode harus dicari.
Untuk file teks, semua operasi dengan fseek dilakukan dengan mengacu pada
awal file untuk file biner yang belum banyak
kita pelajari.
Tetapi untuk file biner, argumen offset hanyalah
jumlah byte relatif.
Oleh karena itu, Anda dapat menyediakan nilai positif atau
negatif untuk offset ketika referensi titik ditentukan sebagai mencari skr.
Jadi mari kita lihat sebuah contoh.
Di sini, dalam contoh ini, lagi, kami melakukan fput.
Jadi kami menulis beberapa data ke kami file, dan kemudian kami menggunakan fseek.
Fseek akan menggerakkan Anda.
Di sini ini mengatakan bahwa Anda akan memindahkan tujuh byte dan kami menggunakan
set pencarian untuk mengatakan kami ingin untuk pindah ke suatu tempat pada
dasarnya tujuh byte dari awal.
Dan kita bisa pindah dari awal file dengan
tujuh byte yang akan memindahkannya.
Setelah tujuh byte, kita bisa benar-benar menulis data untuk itu.
Dan kami juga akan dapat gunakan ftell untuk melihat oh setelah tujuh byte
di mana kita berada.
Anda dapat menggunakan informasi tersebut untuk mengambil kembali dari tempat Anda berada.
Sekali lagi, inti dari fseek dan masalahnya adalah Anda melihat di mana
Anda berada untuk menentukan tempat Anda ingin menulis atau membaca.
Jadi fseek s benar-benar akan pindah posisi, tell akan memberitahu Anda
di mana Anda berada.
Posisi Fset juga seperti fseek.
Tapi posisi fset adalah sedikit lebih rumit.
Ini akan pergi dengan posisi fset.
Jadi fset get get position juga sangat mirip dengan posisi fset.
Dengan posisi fset, itu menentukan parameter pertama sebagai penunjuk ke
file yang terbuka.
Parameter kedua adalah penunjuk posisi f tipe t.
Posisi yang disimpan di alamat diperoleh
dengan memuat posisi fget.
Jadi posisi fset memiliki file Anda pointer dan kemudian variabel Anda yang sebenarnya.
Dan variabel di sini sebelumnya disetel oleh panggilan ke posisi fget.
Sekali lagi, Anda akan menggunakan fset dan fget bersama-sama.
Posisi fset mengembalikan a nilai bukan nol pada kesalahan atau
nol ketika berhasil.
Fungsi ini dirancang untuk bekerja dengan nilai yang
dikembalikan oleh posisi fget.
Jadi Anda hanya bisa menggunakannya untuk sampai ke nomor dalam file untuk mendapatkan tempat di file
yang Anda telah sebelumnya.
Fseek memungkinkan Anda untuk pergi ke mana saja posisi hanya dengan menentukan
offset yang sesuai.
Jadi di sini kita terlihat seperti kita punya posisi f kami posisi tipe t.
Kami membuka file kami dan kemudian kita sebut posisi fget.
Di posisi fget, kami menentukan di mana kita ingin
memindahkan penunjuk, di mana kita sebenarnya membaca atau menulis dalam file.
Kemudian kami menggunakan fput untuk kemanapun kita memindahkannya.
Dan kemudian posisi fset akan menjadi lagi atur sesuatu secara khusus di mana kita
ingin menulis dan kemudian menulisnya dari mana pun kita mau.
Jadi dengan semua fungsi ini, Anda ingin benar-benar melihat ke mana Anda
menunjuk.
Ini akan menjadi jauh lebih mudah untuk mengerti begitu kita memiliki tantangan kita.
Jadi dengan membaca dan menulis, Anda selalu ingin pindah ke suatu tempat ke titik
tujuan Anda menulis.
Anda tidak selalu ingin menulis untuk awal atau akhir.
Jadi fungsi-fungsi ini sangat berguna untuk memindahkan di mana Anda ingin memposisikan
di mana saja dalam file.
Terima kasih