Her Yönüyle C
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Her Yönüyle C

Hepsi Burada
 
AnasayfaAnasayfa  PortalliPortalli  GaleriGaleri  AramaArama  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 DOSYALAMA

Aşağa gitmek 
YazarMesaj
Admin
Admin
Admin


Erkek
Mesaj Sayısı : 804
Yaş : 35
Location : KoCaElİ
Kayıt tarihi : 29/10/07

Character sheet
Field:
DOSYALAMA Left_bar_bleue100/100DOSYALAMA Empty_bar_bleue  (100/100)

DOSYALAMA Empty
MesajKonu: DOSYALAMA   DOSYALAMA Icon_minitimePtsi Kas. 12, 2007 2:26 am

Giriş Çoğu programda, bazı verilerin disk üzerinde saklanmasına gerek duyulur. C programlama dilinde, disk dosyasına erişme (okuma ve yazma için) iki farklı yöntemle yapılır. Bunlar üst düzey ve alt düzey olarak adlandırılır. Bunlardan üst düzey G/Ç yöntemi ANSI C tarafından desteklenmektedir. Alt düzey G/Ç ANSI C tarafından desteklenmemektedir. Bu kısımda Üst düzey G/Ç konu edilecektir[1].
Dosya Açma ve Kapama Bir dosyaya okuma/yazma yapmak için onun açılması gerekir. Bunun için fopen() fonksiyonu kullanılır. Açılan dosya fclose() ile tekrar kapatılır. Genel olarak:
#include
...
FILE *dosya; /* dosya işaretçisi */
...
dosya = fopen(char dosya_adı,char mod);

dosya işlemleri ...

fclose(dosya);
...
Burada FILE, stdio.h içerisinde bildirilmiş bir yapıdır. mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir[2]. Bunlar:

Tablo 15.1: Dosya açma modları



Açılış Modu
İşlem Türü

r
Yalnızca okuma (read only). Dosyanın açılabilmesi için önceden oluştrulmuş olması gerekir. Bu modda açılmş olan bir dosyaya yazma yapılamaz.

w
Yalnızca yazma (write only). Dosya diskte kayıtlı olsun veya olamsın dosya yeniden oluşturulur. Bu modda açılmış olan bir dosyadan okuma yapılamaz.

a
Ekleme (append). Kayıtlı bir dosyanın sonuna veri eklemek için açılır. Bu modda açılmış olan bir dosyadan okuma yapılamaz.

r+
Okuma ve yazma. Bu modda açılmış olan bir dosyanın daha önce varolması gerekir.

w+
Okuma ve yazma. Bu modda açılmış olan bir dosya var olsun veya olmasın dosya yeniden oluşturulur.

a+
Okuma ve yazma. Kayıtlı bir dosyanın sonuna veri eklemek için açılır.deneme.dat adlı bir dosyanın, yazmak için açılıp açılmadığını test etmek için aşağıdaki kod kullanılır:
#include
...
FILE *yaz; /* dosya işaretçisi */
...
yaz = fopen("deneme.dat","w");

if( yaz==NULL )
{
puts("bu dosya acilmiyor...");
exit();
}

/* açılırsa! dosya işlemleri */
...
fclose(yaz);
...






NOT

Yukarıdaki program parçasında, deneme.dat ile ana program aynı dizin içinde olmalıdır. Aksi halde dosyanın tam yolu bildirilmelidir.
Örneğin dosyanın yolu C:\\WINDOWS\\DESKTOP\\deneme.dat ise dosya açılırken yaz = fopen("C:\\\\WINDOWS\\\\DESKTOP\\\\deneme.dat","w");şeklinde açık yol bildirilmelidir.
Aynı işlem Linux ortamında örneğin yaz = fopen("/home/bingul/DATA/deneme.dat","w");şeklinde olabilir.
Metin ve İkili Dosyalar İşletim sistemlerinde genelde iki çeşit dosya kullanımına rastlanmaktadır. Bunlar metin (text) ve ikili (binary) dosyalar olmak üzere ikiye ayrılır. Dosyanın hangi türden olduğu açılırken fopen() fonksiyonu ile belirtilebilir. Açılış modunda metin dosyaları için t ikili dosyalar için b eklenir. Örneğin "r+t" şeklinde bir açılış modu var olan bir dosyanın okuma yazma ve metin olarak açılacağı anlamına gelir. Benzer olarak "wb" açılış modu dosyanın ikili modda oluşturulacağını gösterir. Fakat bu belirleme yapılmamışsa, varsayılan açılış modu metindir (yani t).
Dosya Fonksiyonları
Bu kısımda, Tablo 15.2'de verilen dosyalama foksiyonlarının bazılarının kullanımı, örnek programlar üzerinde anlatılmıştır.
Tablo 15.2: Üst düzey dosyalama fonksiyonları



Fonksiyon
Görevi

fopen()
Dosya oluşturur, açar

fclose()
Dosyayı kapatır

putc()
Dosyaya bir karakter yazar

getc()
Dosyadan bir karakter okur

feof()
Dosya sonuna gelindiğini sorgular

fprintf()
Dosyaya formatlı veri yazar

fscanf()
Dosyadan formatlı veri okur

fputs()
Dosyaya katar yazar

fgets()
Dosyadan katar okur

fwrite()
Dosyaya dizi yazar

fread()
Dosyadan dizi okur
Program 15.1: Bir dosyaya veri yazma




[color=gray] 1:
/* 15prg01.c:
2: 10 öğrenciye ait bilgileri ogrenci.txt dosyasına kaydeder. */

3:
4: #include
5: #include
6:
7: main()
8: {
9: FILE *di; /* dosya işaretçisi */
10: const int n=10; /* öğrenci sayısı */
11: char ad[10];
12: int no,Not,i=0;
13:
14: if( (di=fopen("ogrenci.txt","w"))==NULL ){
15: puts("Dosya acilmadi... !\\n");
16: exit(0);
17: }
18:
19: puts("10 ogrenciye ait bilgileri girin:");
20:
21: while( i++
Sayfa başına dön Aşağa gitmek
https://cprogramlama.yetkin-forum.com
 
DOSYALAMA
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» DOSYALAMA

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Her Yönüyle C :: C Programlama :: C Konu Anlatımları-
Buraya geçin: