Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

Slides:



Advertisements
Benzer bir sunumlar
Bölüm 11 Metin Dosyaları Metin Dosyaları Dosya Açma ve Kapama
Advertisements

String fonksiyonları:
DİZİLER – I. Kısım YRD.DOÇ.DR. CİHAD DEMİRLİ
Dosya ve Klasör İşlemleri
Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Internet Tabanlı Programlama Dr. Erman Yukselturk
Dosyaya Bilgi Yazmak ve Dosyadan Okumak
Elektrik-Elektronik Mühendisliği Bölümü DİZİLER C Programlama Dili Yaz Stajı Cengiz TEPE SAMSUN 2007.
MATLAB’ de Programlama
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Bölüm 10 Yapılar ve Birleşimler
Nesneye Yönelik Programlama
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
12. HAFTA Mayıs 2010.
Yapısal Program Geliştirme – if, if-else
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
DOSYA İŞLEMLERİ.
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
Görsel C# ile Windows Programlama
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 7: Dosyalama İşlemleri Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Nesneye Dayalı Programlama
FONKSİYONLAR.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
DOSYA İŞLEMLERİ.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
BM-103 Programlamaya Giriş Güz 2014 (7. Sunu)
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
BM-103 Programlamaya Giriş Güz 2014 (8. Sunu)
C# ile Seri İletişim Aslı Ergün.
PHP Dosya İşlemleri.
Fscanf fonksiyonu fscanf () : Dosyadan bilgiyi okumak ve değişkenlere aktarmak için kullanılır. int fscanf(FILE *dosya, char* format, değişken adres listesi);
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bölüm 3: Diziler BTEP 102 – Veri Yapıları ve Programlama
BM-103 Programlamaya Giriş Güz 2014 (4. Sunu)
BM-103 Programlamaya Giriş Güz 2014 (9. Sunu)
DİZİLER Arrays.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Dosya ve Klasör İşlemleri
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
PROGRAMLAMA Dosyalama İşlemleri
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BİLGİSAYAR programlama II
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BİLGİSAYAR PROGRAMLAMA Ders 10: Dosyalama İşlemleri
BİLGİSAYAR PROGRAMLAMA DERSİ 7. DERS NOTU Konu: Dosya Yönetim.
Fonksiyonlar ve Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
C Programlama Dili Bilgisayar Mühendisliği.
BİLGİSAYAR PROGRAMLAMA Ders 10: Dosyalama İşlemleri
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
Bilgisayar Programlamasına ve Veri Analizine Giriş
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
Bilgisayar Programlamasına ve Veri Analizine Giriş - VII
YAPISAL PROGRAMLAMA Hafta-7
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
C ile Programlamaya Giriş
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Algorİtma ve Programlama II Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

YZM 1102 – Algoritma ve Programlama II Genel Bakış… Dosya İşlemleri (Rastgele Erişim) fread() fwrite() rewind() fseek() remove() YZM 1102 – Algoritma ve Programlama II

Dosya İşlemleri - Bölüm 3 YZM 1102 – Algoritma ve Programlama II

fread() ve fwrite() Fonksiyonları Verileri dosyaya yazma ve dosyadan okuma işlemlerinde fwrite() ve fread() fonksiyonları da kullanılabilir. Daha önce kullandığımız fprintf() ve fscanf() fonksiyonları dosyadan veri okuma ve dosyaya veri yazma işlemlerinde veriler üzerinde değişim yaparak çalıştığından, fread() ve fwrite() fonksiyonlarını kullanmak daha pratiktir. YZM 1102 – Algoritma ve Programlama II

fread() ve fwrite() Fonksiyonları (devam…) fprintf() fonksiyonunu kullanarak bir dosyaya sayı (int) yazarken, sayının dosyanın ASCII metnine çevrilmesi gerekir. fprintf(fptr ,"%d", sayi ); Yine fscanf() fonksiyonu ile bir dosyadan bir sayı okurken, sayının fscanf() fonksiyonunun dahili format yapısına çevrilmesi gerekir. fscanf (fptr,"%d", &sayi); YZM 1102 – Algoritma ve Programlama II

fread() ve fwrite() Fonksiyonları (devam…) size_t fread ( void *tampon-bellek, size_t boyut, size_t id1, FILE *fp); fp ile gösterilen dosyadan okunan boyut yapısında id1 kadar değeri tampon-bellek ile gösterilen belleğe atar. Burada, boyut ifadesi okunan verinin byte olarak değerini, id1 ifadesi ise kaç adet veri okunduğunu belirler. fread() fonksiyonu okunan veri sayısını geri verir. Bu değer 0 ise, herhangi bir veri okunmamış demektir. Bu durumda, ya bir hata olmuştur ya da dosya sonu gelmiştir. YZM 1102 – Algoritma ve Programlama II

fread() ve fwrite() Fonksiyonları (devam…) size_t fwrite (void *tampon-bellek, size_t boyut, size_t id1, FILE *fp); fwrite() fonksiyonu, fread() fonksiyonunun yaptığı işlemin tam tersini yapar. fwrite() fonksiyonu, tampon-bellek ile gösterilen bellekte bulunan boyut yapısında id1 kadar değeri fp ile gösterilen dosyaya yazar. Burada, boyut parametresi yazılan byte olarak değerini, id1 parametresi ise kaç adet veri yazıldığını belirler. fwrite() fonksiyonu yazılan veri sayısını geri verir. Sadece bir hata meydana geldiğinde bu değer id1 değerinden az olur. YZM 1102 – Algoritma ve Programlama II

Örnek 1: fread ve fwrite Kullanımı int veri türünde dizi isimli 5 elemanı bir dizi tanımlayınız. Dizinin elemanları klavyeden girilerek bir döngü içerisinde doldurulacaktır. Dizi değerleri deneme.txt isimli bir dosyaya fwrite() fonksiyonu kullanılarak yazılıp ve dosya kapatılacaktır. Dizi elemanlarının değerlerine bir döngü içerisinde 0 değeri atanıp dizi elemanları ekrana yazdırılacaktır. Daha sonra deneme.txt dosyasındaki dizi elemanları fread() fonksiyonu kullanılarak bir döngyşe diziye aktarılır. Dizi elemanları ekrana yazdırılır. YZM 1102 – Algoritma ve Programlama II

Örnek 1: fread ve fwrite Kullanımı YZM 1102 – Algoritma ve Programlama II

Örnek 1: fread ve fwrite Kullanımı 1, 2 ve 3 nolu adımlar YZM 1102 – Algoritma ve Programlama II

Örnek 1: fread ve fwrite Kullanımı 4, 5 ve 6 nolu adımlar YZM 1102 – Algoritma ve Programlama II

Örnek 1: fread ve fwrite Kullanımı - Eklenti Diziden veriler dosyaya yazılırken ve dosyadan okunurken işlemleri döngü içerisinde değil tek seferde tamamlayalım. YZM 1102 – Algoritma ve Programlama II

YZM 1102 – Algoritma ve Programlama II rewind() Fonksiyonu Normalde bir dosyaya yazma işlemini tamamladıktan sonra, dosyayı tekrar okumak istediğimizde dosyayı kapatır ve dosyayı okuma modunda tekrar açarız. fopen("w"); dosyaYazmaIslemleri(); fclose(fp); fopen("r"); dosyaOkumaIslemleri(); YZM 1102 – Algoritma ve Programlama II

rewind() Fonksiyonu (devam…) Dosya açma kapatma işlemi yerine, bir dosyanın aktif konumunu dosya başına almak için rewind() fonksiyonunu kullanabilir. void rewind (FILE *fp); fp parametresi ile gösterilen dosyanın aktif konum göstergesini dosyanın başına alır. Bu fonksiyon herhangi bir değer geri vermez. Çünkü, başarılı bir şekilde açılan dosyanın aktif konumu başa alınabilir. YZM 1102 – Algoritma ve Programlama II

Örnek 2: rewind ve struct Kullanımı Aşağıdaki yapıyı tanımlayınız. typedef struct { int HesapNo; char Isim[100]; float Bakiye; } stHesap; musteri.txt isimli dosyaya Hesap No değeri 0 olana kadar Hesap bilgilerini yazılmasını sağlayın. Dosyaya yazma işlemi için fwrite() fonksiyonunu kullanın. Yazma işleminden sonra dosya başına rewind() fonksiyonu kullanarak konumlandırma yapın. Son olarak dosyadan okuma işlemini fread() fonksiyonu kullanarak gerçekleştirin. YZM 1102 – Algoritma ve Programlama II

Örnek 2: rewind ve struct Kullanımı Aşağıdaki yapıyı tanımlayınız. typedef struct { int HesapNo; char Isim[100]; float Bakiye; } stHesap; musteri.txt isimli dosyaya Hesap No değeri 0 olana kadar Hesap bilgilerini yazılmasını sağlayın. Dosyaya yazma işlemi için fwrite() fonksiyonunu kullanın. Yazma işleminden sonra dosya başına rewind() fonksiyonu kullanarak konumlandırma yapın. Son olarak dosyadan okuma işlemini fread() fonksiyonu kullanarak gerçekleştirin. YZM 1102 – Algoritma ve Programlama II

Örnek 2: rewind ve struct Kullanımı YZM 1102 – Algoritma ve Programlama II

Örnek 2: rewind ve struct Kullanımı YZM 1102 – Algoritma ve Programlama II

Örnek 2: rewind ve struct Kullanımı YZM 1102 – Algoritma ve Programlama II

YZM 1102 – Algoritma ve Programlama II fseek() Fonksiyonu Şimdiye kadar yazdığımız bütün kodlarda, dosyadan yaptığımız okuma işlemlerini dosyanın başından sonuna doğru bir sıra dahilinde yaptık. Bu tipte dosya erişimine Sıralı Erişim denilmektedir. Bunun yanında, fseek() fonksiyonunu kullanarak dosyaların herhangi bir yerindeki bilgi okunabilir. Bu tipte dosya erişimine Rastgele Erişim denilmektedir. YZM 1102 – Algoritma ve Programlama II

fseek() Fonksiyonu (devam…) int fseek (FILE *fp, long ara, int yer); fp parametresi işlem yapılan dosyayı, ara parametresi yer ifadesinin gösterdiği değerin tanımladığı dosya konumundan, işlem yapılmak istenen yerin byte olarak uzaklığını verir. yer parametresi dosyada arama işleminin başlayacağı yeri gösterir. YZM 1102 – Algoritma ve Programlama II

fseek() Fonksiyonu (devam…) yer parametresinin alabileceği değerler aşağıdaki gibidir: SEEK_SET (0) Aramayı dosya başından başlatır. SEEK_CUR (1) Aramayı aktif konumdan başlatır. SEEK_END (2) Aramayı dosya sonundan başlatır. YZM 1102 – Algoritma ve Programlama II

Örnek 3: Rastgele Erişimli Bir Dosyaya Rastgele Veri Yazmak Aşağıdaki yapıyı tanımlayınız. typedef struct { int HesapNo; char Isim[100]; float Bakiye; } stHesap; musteri.txt isimli dosyaya Hesap No değeri 0 olana kadar Hesap bilgilerinin yazılmasını sağlayın. Hesap No’ya göre dosyanın konumlanmasını sağlayın. Örn: Hesap No: 4 girilirse ise kaydı fseek() fonksiyonu ile konumlandırıp, dosyada 4. sıraya ekleyelim. Dosyaya yazma işlemi için fwrite() fonksiyonunu kullanın. Yazma işleminden sonra dosya başına rewind() fonksiyonu kullanarak konumlandırma yapın. Son olarak dosyadan okuma işlemini fread() fonksiyonu kullanarak gerçekleştirin. YZM 1102 – Algoritma ve Programlama II

Örnek 3: Rastgele Erişimli Bir Dosyaya Rastgele Veri Yazmak YZM 1102 – Algoritma ve Programlama II

Örnek 3: Rastgele Erişimli Bir Dosyaya Rastgele Veri Yazmak YZM 1102 – Algoritma ve Programlama II

YZM 1102 – Algoritma ve Programlama II remove() Fonksiyonu Bir dosyayı silmek için kullanılır. int remove (char *dosya-adı); remove() fonksiyonu dosya-adı parametresi ile gösterilen dosyayı siler. Başarılı bir şekilde sona erdiğinde 0 değerini, aksi takdirde 0 olmayan bir değer geri verir. YZM 1102 – Algoritma ve Programlama II

YZM 1102 – Algoritma ve Programlama II Örnek 4: Dosya Silme musteri.txt isimli dosya program tarafından oluşturulacaktır. Daha sonra aşağıdaki ekran çıktısı desteklenecektir. YZM 1102 – Algoritma ve Programlama II

Farklı Örnek: Bilgisayarı Kapatma C sistem kaynaklarına direk erişebildiği için C ile farklı mümkündür. Bu kapsamda kullanılan fonksiyonlardan bir tanesi system dir. system("C:\\WINDOWS\\System32\\shutdown /s"); YZM 1102 – Algoritma ve Programlama II

Farklı Örnek: Bilgisayarı Kapatma YZM 1102 – Algoritma ve Programlama II

YZM 1102 – Algoritma ve Programlama II KAYNAKLAR N. Ercil Çağıltay ve ark., C DERSİ PROGRAMLAMAYA GİRİŞ, Ada Matbaacılık, ANKARA; 2009. Milli Eğitim Bakanlığı "Programlamaya Giriş ve Algoritmalar Ders Notları", 2007 C Programlama Dili, Şerafettin ARIKAN Problem Solving and Program Design in C, Hanly, Koffman http://www.AlgoritmaveProgramlama.com YZM 1102 – Algoritma ve Programlama II

İYİ ÇALIŞMALAR… Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag@cbu.edu.tr YZM 1102 – Algoritma ve Programlama II