DOSYA İŞLEMLERİ Programlama dilleri hafta -

Benzer belgeler
Temel Bilgisayar Programlama

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

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

12. Saat : Dosyalar I (Files)

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Eln 1002 Bilgisayar Programlama II

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

ALGORİTMA VE PROGRAMLAMA II

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

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

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

Yrd. Doç. Dr. Caner ÖZCAN

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

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

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

Adı Soyadı Öğrenci No. Toplam (100p) 2 (10p) +10p. 5 (25p) +10p. 3 (20p) 4 (25p) 1 (20p)

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

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

Yrd. Doç. Dr. Caner ÖZCAN

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Genel Programlama II

ALGORİTMA VE PROGRAMLAMA II

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

ALGORİTMA VE PROGRAMLAMA II

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

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

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

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

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ü

Dosyalar 1.1 Dosya Nedir?

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

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

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

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

ELN1001 BİLGİSAYAR PROGRAMLAMA I

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

Eln 1001 Bilgisayar Programlama I

Girdi Çıktı İşlemleri

BİL1001 Bilgisayar Bilimlerine Giriş 1

Diziler (Arrays) Çok Boyutlu Diziler

DOSYALAR. Temel terimler Hafta. Dr. Fahri Vatansever

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Fen ve Mühendislik Uygulamalarında MATLAB

int printf (const char *format [, argument,...]);

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

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

Bilgisayar Programlama MATLAB

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

C dilinde if-else yapısı

Programlama Dilleri 1. Ders 4: Diziler

Adı Soyadı : Öğrenci No :

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

ALGORİTMA VE PROGRAMLAMA I

C PROGRAMLAMA D İ L İ

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

PROGRAMLAMAYA GİRİŞ DERS 2

elemanlı bir dizide bir sinyalin 1 er saniye aralıklarla ölçülen gerilim değerleri tutulmaktadır. Bu sinyalin tepeden tepeye genliğini,

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Adım Adım C. Dr. Hidayet Takcı

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Programlama Dilleri 1. Ders 5: Göstericiler

Genel Programlama II

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

C PROGRAMLAMA D İ L İ

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

Hafta 12 Karakter Tutan Diziler

/*int sayi1, sayi2,toplam=0;

C PROGRAMLAMA D İ L İ

BİLGİSAYAR PROGRAMLAMA DERSİ

Chapter 11 Dosya İşleme

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Ş (

BİLGİSAYAR PROGRAMLAMA DERSİ

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

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Giris {\} /\ Suhap SAHIN Onur GÖK

Pascal Programlama Dili

STRİNG DİZİLER(KATARLAR)

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

Algoritma ve Programlamaya Giriş

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

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

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

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

GİRİŞ/ÇIKIŞ VE TANIMLAMA DEYİMLERİ

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

Görsel Programlama 1

PROGRAMLAMA TEMELLER. C Program Yap s

Giriş. ENF102 Jeoloji

C Konsol Giriş Çıkış Fonksiyonları

Program Akış Kontrol Yapıları

ALGORİTMA VE PROGRAMLAMA II

C PROGRAMLAMA DİLİNE GİRİŞ

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Kocaeli Üniversitesi C Bilgisayar Programlama Ara Sınavı Test Soruları

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Transkript:

BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DOSYA İŞLEMLERİ Programlama dilleri 1-10. hafta - Araş. Gör. Nesibe YALÇIN

Dosya İşlemleri Programın çalışma esnasında her türlü değişken içinde tutulan ve işlenen bilgiler RAM de tutulur. Program sona erdiğinde RAM de kullanılan alan boşaltılır. Bazı verilerin saklanmasına gerek duyulur. Programda bir dosya, FILE türünde bir pointer/gösterici ile bildirilir. FILE * dosya_gostericisi; FILE sözcüğü, stdio.h içerisinde bildirilmiş bir yapıdır. 2

Metin Dosyaları ve Binary Dosyalar Metin dosyaları, sıralı ve satırlar halinde metin bilgilerinden oluşmaktadır. Her satırda toplam 255 karakter bulunur. Her satırda 0 veya daha fazla karakter içerir. Kod içinde satır sonlarına \n yeni satır (new line) konulur, fakat program dosyaya kayıt yaparken satır sonuna CR-LF (CarriageReturn LineFeed, Shift+Enter) işareti koyar. Bu işarete, satır sonu (end of line) işareti denir. 3

Metin Dosyaları ve Binary Dosyalar Veri okunurken ise satır sonu işareti programa \n yeni satır karakteri olarak çevrilir. Binary (ikili) dosyalarda veriler bellekteki gösterim biçimleriyle saklanırlar. Bütün veriler byte byte ardışık olarak dosyaya yazılır. Her iki dosya çeşidinde de dosya sonunu gösteren işaret EOF (end of file) vardır. 4

Bir dosyaya okuma/yazma yapmak için ilk olarak dosyanın açılması gerekir. Dosya açmak için fopen() fonksiyonu kullanılır. FILE * dosya; // dosya göstericisi dosya=fopen("dosya_adı","dosyanın_modu"); Hangi dosyanın açılacağını ve dosyanın ne amaçla açıldığını belirtiyoruz. FILE *fp = fopen("deneme.dat","r"); FILE *fptr = fopen("sayilar.bin", "rb"); 5

Dosya Açma Modları Açılış modunda metin dosyaları için t, ikili dosyalar için b eklenir. Bu belirleme yapılmamışsa, varsayılan açılış modu metindir (yani t). r: Dosyayı sadece okumak için açar (read only). Bu şekilde açılacak metin dosyası mutlaka sistem üzerinde bulunmalıdır aksi halde hata oluşur. rt : Okuma için bir metin dosyası açar. rb : Okuma için bir dosyayı ikili sistemde açar. 6

Dosya Açma Modları w: Dosyayı sadece yazmak için açar (write only). Eğer açılması istenen metin dosyası sistem üzerinde yok ise oluşturulacaktır. Eğer var ise dosya silinerek yerine yenisi konulacaktır!!! wt : Metin dosyasını yazma için açar/oluşturur. wb : Yazma için ikili sistemde bir dosya açar/oluşturur. a: Dosyanın sonuna ekleme yapmak için açar (append). Dosya yoksa yeni oluşturulacak, var ise öncekinin sonundan yazmak üzere hazır hale gelecektir. at : Metin dosyasının sonuna ekleme yapar. ab : İkili sistemde bir dosyaya ekleme yapar. 7

Dosya Açma Modları r+ : Okuma/yazma için bir metin dosyası açar. (r+t) w+ : Okuma/yazma için bir metin dosyası açar. (w+t) a+ : Okuma/yazma için bir metin dosyası açar. (a+t) r+b w+b a+b : Okuma ve yazma için bir ikili sistem dosyası açar. : Okuma ve yazma için bir ikili sistem dosyası oluşturur. : Okuma ve yazma için bir ikili sistem dosyasına ekleme yapar. rb+, wb+, ab+, rt+, wt+, at+ şeklinde açma modların da vardır. 8

Açılan dosya fclose() ile tekrar kapatılmalıdır. Genel olarak:... FILE *dosya;... dosya = fopen( dosya_adı, mod );... fclose(dosya);... 9

Dosyanın açılıp açılmadığını kontrol etmek için; FILE *dizin; dizin= fopen("deneme.dat", "w"); if( dizin == NULL ) { printf("dosya acilmiyor..."); exit(1); }... // dosya açılırsa yapılacak işlemler... fclose(dizin); 10

fprintf(); Dosyaya formatlı veri yazar. FILE *fp=fopen("deneme.txt","w"); int a=2,b=3; fprintf(fp,"%d, %d",a,b); fclose(fp); fputs(); Dosyaya string yazar. FILE *fp=fopen("deneme.txt","a"); char *kelime="bilecik"; fputs(kelime, fp); fputs("\n merhaba", fp); fclose(fp); 11

#include <stdio.h> #include <conio.h> #include <stdlib.h> void main() { float x,y,z,hacim; FILE * fp = fopen("d:\\hacim.txt","w+"); if( fp== NULL) { puts("dosya acilamiyor."); exit(1); } printf("odanin boyutlarini girin : "); scanf("%f %f %f",&x,&y,&z); hacim=x*y*z; \ yerine \\ kullanılır. fprintf(fp, "Hacim:\n %.2f * %.2f * %.2f= %.2f",x,y,z,hacim); fclose(fp); puts("bilgiler kaydedildi."); getch(); } 12

fputc(); Dosyaya karakter yazar. FILE *fp=fopen("deneme.txt","w"); char x='&'; fputc(x,fp); fclose(fp); fgetc(); Dosyadan karakter okur. FILE *fp=fopen("deneme.txt","r"); char x=fgetc(fp); fclose(fp); printf("%c",x); 13

fscanf(); Dosyadan formatlı veri okur. D:\Prog.Dil.1\notlar.txt 14

#include <stdio.h> #include <conio.h> #include <stdlib.h> void main() { FILE *oku=fopen("d:\\prog.dil.1\\notlar.txt","r"); if(oku==null) { printf("dosya acilamadi..."); getch(); exit(1); } char sube,ad [10],soyad[20]; float boy,kilo; fscanf(oku,"%c %s %s %f %f\n",&sube,ad,soyad,&boy,&kilo); printf("%c %s %s %f %f\n",sube,ad,soyad,boy,kilo); fscanf(oku,"%c %s %s %f %f",&sube,ad,soyad,&boy,&kilo); printf("%c %s %s %f %f",sube,ad,soyad,boy,kilo); fclose(oku); getch(); } 15

fgets(); Dosyadan string/karakter dizisi okur. 16

#include <stdio.h> #include <conio.h> void main() { FILE *fptr=fopen("sehirler.txt","r"); char sehir[20]; fgets(sehir,20,fptr); printf("%s",sehir); fgets(sehir,20,fptr); printf("%s",sehir); fgets(sehir,20,fptr); printf("%s",sehir); fclose(fptr); getch(); } 17

feof(); Dosyanın sonuna gelinip gelinmediğini gösterir. Eğer dosyanın sonuna gelindiyse true değerini döndürür. Fonksiyon false ise dosyanın sonuna gelinmemiş demektir. void main() { FILE *fptr; char sehir[20]; if((fptr=fopen("sehirler.txt", "r"))==null){ printf("okuma icin acilamadi..."); exit(1); } while(!feof(fptr)) { fgets(sehir,20,fptr); printf("%s",sehir); } fclose(fptr); getch(); } 18

EOF; End Of File (dosya sonu) anlamındadır. #include <stdio.h> #include <conio.h> #include <stdlib.h> void main(){ FILE *fptr; char ch='x'; if((fptr=fopen("sehirler.txt", "r"))==null) { printf("okuma icin acilamadi..."); exit(1); } while(ch!=eof) { ch=fgetc(fptr); printf("%c",ch); } fclose(fptr); getch(); } 19

Uygulamalar C sürücüsünde projeler klasöründe uygulama alt klasöründeki veri.dat isimli dosyayı sadece okuma modu ile açan deyimi yazınız. Klavyeden girilen bir kelime içindeki harfleri alt alta bir dosyaya yazan programı yazınız. fclose(fp); fputc(fp, *a); fputs(fptr, b); c=fgetc(); fgets(d, 10, fptr); Hatalı olan satırları bulup düzeltiniz. 20

Uygulamalar «ogrenci.txt» adlı dosyada öğrencilere ilişkin numara, ad, soyad, vize, final ve ortalama not bilgileri tutulmaktadır. Kullanıcı tarafından girilen öğrenci numarasına göre dosyada arama yaparak ilgili öğrenciye ait bilgileri ekrana yazan programı yazınız. 21

Uygulamalar «sayilar1.txt» içerisinde 10 adet, «sayilar2.txt» içerisinde ise 5 adet küçükten büyüğe sayılar bulunmaktadır. Bu iki dosya içindeki sayıları sıralı bir şekilde «sayilar.txt» adlı tek bir dosyaya yazan programı yazınız. 22