toXic | 25 Şubat 2010 14:06 | C De Dosya işlemleri.. C De Dosya işlemleri Şu (text tabanli) su sekilde yapilir.. Kod:
fopen("Dosya","acissekli");
Dosya, Belirlenen Yerde Var olmasi gerekmektedir. Aksi takdirde Program işlemi gerçekleştirmeyecektir. Kod:
r -> Okumak icin Kullanilir. Örneğin ; Kod:
#define OKU ibo.txt
FILE *dosya;
char buf[BUFSIZE];
dosya = fopen(OKU, "r");
if (dosya != NULL) {
while (fgets(buf, sizeof(buf), dosya)) {
buf[strlen(buf)-1] = 0;
printf("Bilgiler Sunlardir %s\n", buf);
}
Öncelikle Bence, Programda dosya kontrol edilmeli.
Bu sekilde Kontrol edebiliriz. Kod:
if (dosya != NULL) { Dosya yok ise; Kod:
if (dosya != NULL) {
printf("Böyle Bir dosya bulunamadi.."); SEKLİNDE Uyaririz.
eğer dosya var ise ve bilgileri vermek icin. Kod:
} else {
printf("%s", buf); Bu sekil devam ederiz.
Kodlarimizi Birleştirirsek; Kod:
if (dosya != NULL) {
printf("Böyle Bir dosya bulunamadi..");
} else {
printf("%s", buf);
} Diğeri; Kod:
w -> yazmak icin kullanilir, eğer o isimde bir dosya var ise, silinir 0'lanir. Eğer Dosya olmasa bile, kendisi olusturur..
Basit Bir program yazalim daha iyi anlamak icin. Toplama islemi icin olabilir. Kod:
#include <stdio.h>
main ()
{
int sayi1;
int sayi2;
int toplam;
// Bunlari kisaca, int sayi1,sayi2,toplam olarakda belirtebiliriz.
// toplama islemi.
toplam = sayi1 + sayi2;
// ekrana yazdirma
printf("İki sayi girin.\n");
//sayiyi alma
scanf("%d\n", &sayi1);
scanf("%d\n", &sayi2);
printf("Girdiginiz sayilar %d ve %d toplami %d", sayi1, sayi2, toplam);
return 0;
} w işlevini kullanmak icin ise, programi su hale getiriyoruz.. Kod:
#include <stdio.h>
main ()
{
int sayi1;
int sayi2;
int toplam;
// Bunlari kisaca, int sayi1,sayi2,toplam olarakda belirtebiliriz.
// toplama islemi.
toplam = sayi1 + sayi2;
// ekrana yazdirma
printf("İki sayi girin.\n");
//sayiyi alma
scanf("%d\n", &sayi1);
scanf("%d\n", &sayi2);
printf("Girdiginiz sayilar %d ve %d toplami %d", sayi1, sayi2, toplam);
FILE *dosya_yaz;
dosya_yaz=fopen("toxic.txt","w");
fprintf("%d,%d", sayi1, sayi2);
system("PAUSE");
return 0;
} bir diğeri ise;
a -> sona ekleme anlamina gelir..
örneğin; Kod:
// Dosyaya Yazdirma..
static void.........
..............
...................
..................
......................
....................
// dosya işlemi..
time_t irc_time;
struct tm tdate;
irc_time = time(NULL);
tdate = *localtime(&irc_time);
FILE * pFile;
pFile = fopen ("operskullananlar.txt", "a");
fprintf (pFile, "Tarih: %02d-%02d-%02d Saat: %02d:%02d Nick: %s IP: %s \n", tdate.tm_mday, tdate.tm_mon + 1,
tdate.tm_year - 100, tdate.tm_hour, tdate.tm_min, sptr->name, sptr->user->realhost);
Bu sekilde Kullanilir..
Bit tabanlı dosyalar için rb, ab,wb Kullanilir. Ve Bunlarin yaninda + simgesi olursa, hem okuma hemde yazma anlamina gelmektedir..
İyi calismalar.. |