IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   C ve C++ (https://www.ircforumlari.net/c-ve-c/)
-   -   Rastgele Erişim (https://www.ircforumlari.net/c-ve-c/297042-rastgele-erisim.html)

toXic 13 Kasım 2009 11:57

Rastgele Erişim
 
Normalde, bir dosya açıldıktan sonra, ilk okuma veya yazma işlemi dosyanın hemen başından yapılır. Bir sonraki işlem ise, en son işlem tarafından etkilenen son baytı izleyen bayttan başla***** yapılır. Bundan dolayı, buna sıralı erişim denir. Bunu yapmadan, yani önceki baytları okuyup veya yazmadan, istediğimiz bir bayta ulaşmak (yani rastgele erişim yapmak) için fseek kullanırız:

Kod:

fseek(dosya_gostergesi, uzun_sayi, nereden)

Yukarıdaki çağrıda ilk iki argümanın tipleri isimlerinden anlaşılabilir. nereden ise ya SEEK_SET (dosyanın başından), ya SEEK_CUR (şu anki konumundan) yada SEEK_END (dosyanın sonundan) olabilir. fseek işletildikten sonra dosya_gostergesi tarafından işaret edilen dosya üzerindeki okuma veya yazma nereden ile belirtilmiş yerden uzun_sayi mesafedeki bayttan başlıyacaktır. Eğer herhangi bir hata olursa, fseek sıfırdan farklı bir sayı döndürür, aksi takdirde 0 verir. Bir metin dosyasında bir karakterin konumunun hesaplanmasının anlamlı yada en azından taşınabilir bir özellik olmadığına dikkat edin; fseek tamamen ikili (ham) girdi/çıktı içindir.
Eğer, birtakım işlemlerden sonra, dosyanın başından kaç bayt ileride olduğunuzu öğrenmek isterseniz ftell kullanın:

Kod:

uzun_sayi = ftell(dosya_gostergesi)

uzun_sayi’ya miktarı koyacaktır; eğer bir hata olursa -1L verecektir.
Sık sık dosyayı “geri sarmak”, yani başına fseek yapmak isteyebilirsiniz.

Kod:

rewind(dosya_gostergesi)
Bunu yapmanın kısa yoludur..


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 18:59.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk