Yrd. Doç. Dr. Caner ÖZCAN

Benzer belgeler
Yrd. Doç. Dr. Caner ÖZCAN

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ALGORİTMA VE PROGRAMLAMA II

Eln 1002 Bilgisayar Programlama II

C Dosyalama. Öğr. Gör. M. Ozan AKI. Rev 1.0

Temel Dosya İşlemleri. Kütük Organizasyonu 1

Temel Bilgisayar Programlama

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

DOSYA İŞLEMLERİ Programlama dilleri hafta -

Eln 1001 Bilgisayar Programlama I

Dosyalar 1.1 Dosya Nedir?

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Metin Dosyaları. Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü

DOSYALAR. Temel terimler Hafta. Dr. Fahri Vatansever

Chapter 11 Dosya İşleme

PROGRAMLAMA. Dosyalama İşlemleri. Yrd. Doç. Dr. Bülent Çobanoğlu. Sakarya Üniversitesi Mekatronik Mühendisliği. Yrd.Doç.Dr.

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Genel Programlama II

12. Saat : Dosyalar I (Files)

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Dosyalama İşlemleri. Ders Notları

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

C/C++ Disk G/Ç İşlemleri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

Temel Giriş/Çıkış Fonksiyonları

Verileri Sıralı ve Random Erişimli Dosyalamak

Özyineleme (Recursion)

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

ALGORİTMA VE PROGRAMLAMA I

İSMET AKTAR ANADOLU TEKNİK LİSESİ BİLİŞİM TEKNOLOJİLERİ ALANI WEB PROGRAMCILIĞI DALI

Sınav tarihi : Süre : 60 dak.

Veri Yapıları Laboratuvarı

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Bilgisayar Programlama MATLAB

Diziler (Arrays) Çok Boyutlu Diziler

Programlama Dilleri 1. Ders 4: Diziler

C PROGRAMLAMA D İ L İ

Fen ve Mühendislik Uygulamalarında MATLAB

Strings(Karakter Dizisi)

Hafta 12 Karakter Tutan Diziler

C Konsol Giriş Çıkış Fonksiyonları

Bölüm 11: Dosya Sistem Gerçekleştirilmesi

Dr. Fatih AY Tel: fatihay@fatihay.net

BİL1001 Bilgisayar Bilimlerine Giriş 1

C Programlama Dilininin Basit Yapıları

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz.

NB Ekran Seri Port Üzerinden Veri Okuma/Yazma. Genel Bilgi Protokol Oluşturma Veri Okuma Veri Yazma

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

BTP 205 İŞLETİM SİSTEMLERİ

Yrd. Doç. Dr. Caner ÖZCAN

Bilgisayar Sistemlerine Genel Bakış

C PROGRAMLAMA D İ L İ

ALGORİTMA VE PROGRAMLAMA I

void main() { int a[] = {1, 2, 3, 4, 5, 6}; int *p=&a[2]; int **pp=&p; printf("%d", **pp+2); }

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

Programlama Dilleri II

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

Stringler. Fonksiyon ve Metotlar

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

C nin Stantart Dosya Fonksiyonlarının Uyguladığı Tamponlama Mekanizması

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA

Yrd. Doç. Dr. Caner ÖZCAN

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Telefon Rehberi Uygulaması

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

2 ISINMA TURLARI - DERLEYİCİ VE DERLEME KAVRAMLARIYLA BİRLİKTE GCC DERLEYİCİSİNE BİR BAKIŞ

Algoritma ve Akış Diyagramları

ALGORİTMA VE PROGRAMLAMA I

BÖLÜM 12: DOSYA İŞLEMLERİ

3. Bölüm Algoritmalar

ALGORİTMA VE PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

Pointer Kavramı. Veri Yapıları

Sanal Bellek (Virtual Memory)

PROGRAMLAMAYA GİRİŞ DERS 2

C Programlama printf() Fonksiyonu

MATLAB de Programlama & Dosya Yönetimi. EE-346 Hafta 6 Dr. Ayşe DEMİRHAN

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA II

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Sıralı bir dosyayı açmak için FileOpen komutundan faydalanılır. Bu komutun genel kullanılış biçimi aşağıdaki gibidir:

Transkript:

Yrd. Doç. Dr. Caner ÖZCAN

GİRİŞ Değişken ve dizilerde tutulan değerler programın çalışması esnasında değerlerini korurlarken programın çalışması sona erdiğinde veri kaybolur. Dosyalar verinin kalıcı olarak saklanması için kullanılır. Bilgisayarlar dosyaları disk, flash bellek gibi depolama aygıtlarında tutarlar. 2

Veri Hiyerarşisi Bilgisayarlar tarafından işlenen tüm veriler 1 ler ve 0 ların kombinasyonundan oluşur. Bit: Bilgisayar sistemlerindeki en küçük veri birimidir. En küçük birim olan bit değeri 1 veya 0 olabilir. Byte: Harfler, rakamlar, özel semboller karakterledir. Bilgisayarlar yalnızca 1 ler ve 0 lar ile işlem yapabildiği için bilgisayarlardaki karakter setinde yer alan her bir karakter 1 ler ve 0 ların diziliminden oluşur (bayt). 1 bayt = 8 bit Alan: Karakterlerin bir araya gelmesiyle oluşturduğu anlamlı bütün. Örn: kişi adı Kayıt: Birbiri ile ilişkili alanların bir araya gelmesiyle oluşur. Struct veya class ile oluşturulur. Örn: Bir okuldaki bir öğrenciye ait numara, ad, soyad, adres gibi alanların bir araya gelmesiyle bir kayıt oluşturulur. Dosya: Birbiri ile ilişkili kayıtların bir araya gelmesiyle oluşur. Örn: Öğrencilere ait dosya Database: Birbiri ile ilişkili dosyaların bir araya getirilmesi ile oluşturulur. 3

Veri Hiyerarşisi 4

Veri Hiyerarşisi Kayıt Anahtarı: Bir dosya içerisindeki belli kayıtların elde edilebilmesi için en azından kayıtlara ait bir alanın anahtar olarak kullanılması gerekir. Örn: Bir okul dosyasında öğrenci numarası kayıt anahtarı olarak belirlenebilir. Sıralı Dosya: Kayıtları dosya içerisinde tutmanın en popüler yöntemi. Records typically sorted by record key 5

Dosyalar ve Stream C de bir dosya bayt dizisi olarak ele alınır. Dosya sonunda end-of-file işaretçisi bulunur - veya dosya belirli bir bayt değerinde son bulur. Dosya açıldığında bir stream oluşturulur. Stream, dosya ile program arasında bir iletişim kanalı oluşturur. Bir dosyayı açmak dosyanın veri yapısını işaret eden bir pointer döndürür. Örnek dosya işaretçileri: stdin - standard input (klavyeden veri okumayı sağlar) stdout - standard output (ekrana veri yazdırmayı sağlar) stderr - standard error (ekran) 6

Dosyalar ve Stream Dosya yapısı (bir dosya açıldığında dosyanın yapısını işaret eden bir pointer döndürülür) Dosya tanımlayıcı İşletim sisteminin açık dosya tablosunda bir indis Dosya Kontrol Bloğu (FCB) Her dizi elemanında bulunur. Sistem bunu kullanarak dosyayı yönetir. Giriş, çıkış ve hata işlemleri stdin, stdout ve stderr işaretçileri ile değiştirilir. 7

Dosyalar ve Stream Oku/yaz fonksiyonları standart giriş kütüphanesinde fgetc Dosyadan bir karakter okur Parametre olarak bir dosya işaretçisi alır fgetc( stdin) getchar ile aynı işi yapar fputc Dosyaya bir karakter yazar. Parametre olarak bir dosya işaretçisi ve yazılacak olan karakteri alır fputc( 'a', stdout ), putchar( 'a' ) ile aynı işi yapar. fgets Dosyadan bir satır okur fputs Dosyaya bir satır yazar fscanf / fprintf scanf ve printf fonksiyonlarının dosya işlemlerindeki karşılıklarıdır 8

Sıralı Erişilen Dosya Oluşturma C herhangi bir veri yapısını kullanmayı zorunlu kılmaz. Programcı kendi veri yapısını kendisi belirler. Dosya oluşturma FILE *myptr; myptr isminde bir dosya işaretçisi tanımlar. myptr = fopen("myfile.dat", openmode); Fopen fonksiyonu belirtilen dosyayı gösteren bir dosya işaretçisi döndürür. İki parametre alır açılacak dosya ve dosyanın açılış modu. Eğer dosya açma başarısız olursa NULL döner. fprintf Dosyaya yazmak için kullanılır. Printf ten farkı ilk parametre yazılacak dosyayı işaret eden bir pointer dır. 9

Sıralı Erişilen Dosya Oluşturma feof( Dosya işaretçisi ) Eğer end-of-file göstergeci belirtilen dosya için ayarlanmış ise true döndürür. fclose( Dosya işaretçisi) Belirtilen dosyayı kapatır. Program sonlandırıldığında otomatik olarak gerçekleştirilir. Detaylar Programlar bir veya daha fazla dosya üzerinde işlem gerçekleştirebilir. Her dosyanın farklı bir ismi olmalı her birinin kendine özel işaretçisi olmalıdır. 10

Sıralı Erişilen Dosya Oluşturma Dosya açma modları 11

Sıralı Erişilen Dosya Oluşturma 12

Sıralı Erişilen Dosya Oluşturma 13

Sıralı Erişimli Dosyadan Okuma Sıralı erişimli dosyayı okuma Bir dosya işaretçisi oluştur, dosyayı okumak için bu işaretçiyi dosyaya bağla myptr = fopen( "myfile.dat", "r" ); fscanf kullanarak dosyadan oku Scanf gibi ancak ilk parametre dosyayı gösteren bir işaretçidir fscanf( myptr, "%d%s%f", &myint, mystring, &myfloat ); Baştan sona kadar dosya okunur Dosya konumu işaretçisi Okunacak veya yazılacak sonraki bayt sayısını belirtir. İşaretçi değildir, ancak bir tamsayıdır ( bayt konumunu belirten bri sayı) Bayt ofseti de denir rewind( myptr ) Dosya konumu işaretçisini dosyanın başına alır (bayt 0) 14

Sıralı Erişilen Dosya Okuma ve İçerik Yazma 15

Uygulama-1 16

Uygulama-1 17

Uygulama-1 18

Uygulama-1 19

Sıralı Erişimli Dosyadan Okuma Sıralı erişimli dosya Bir veriyi değiştirirken diğer verileri değiştirme riski taşır Alanlar boyut olarak farklı olabilirler 1, 34, -890 tümü tamsayıdır ancak disk üzerinde farklı boyuttadırlar 300 White 0.00 400 Jones 32.87 (dosyadaki eski veri) Eğer biz White ismini Worthington olarak değiştirmek istersek Jones kaydına ait veriler üzerine yeni veriler yazılır. Veri üzerine yazılır 20