Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
C Programlama

BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C örnek kodlar > c_ornek00037

C örnek kodlar

Bir metin dosyasında boşluk karakteriyle ayrılmış sütun halindeki bilgileri okuma

bg_getValFromFile() fonksiyonunu kullanarak, "deneme.txt" adıyla kaydedilmiş olan aşağıdakine benzer bir dosyadan ilk sütun adını kullanarak, diğer sütunlardaki verileri okuyabiliriz.

Ahmet Saygılı 27 İskenderun
Mehmet Kalem 35 Malatya
Aytaç Kalender 57 Ankara
Murat Nazik 45 Kars
Ekrem Sakin 21 İstanbul

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* bg_getValFromFile(const char* file, const char* kod, int don, char *pdizi);

int main(void)
{
  char cdizi[4][20];
  int id;

  strcpy(cdizi[0], "Murat");

  bg_getValFromFile("deneme.txt", cdizi[0], 1, cdizi[1]);
  bg_getValFromFile("deneme.txt", cdizi[0], 2, cdizi[2]);
  bg_getValFromFile("deneme.txt", cdizi[0], 3, cdizi[3]);

  for (id=0; id<4; id++) printf("%s ", cdizi[id]);

  return 0;
}

char* bg_getValFromFile(const char* file, const char* kod, int don, char *pdizi)
{
  FILE *fp;
  long int fsize=0, rsize=0;
  char *pfile, *active;
  int id;

  // Dosyayı okuma için açma
  if((fp=fopen(file, "r"))==NULL) {
	  exit(1);
  }

  fseek(fp, 0, SEEK_END); // Dosya sonuna erişme
  fsize=ftell(fp); // Dosyanın aktif konum yani dosya sonu değerini alma
  if(fsize==-1) return NULL;
  fseek(fp, 0, SEEK_SET); // Dosya aktif konumunu başa alma
  pfile = (char *) malloc((fsize+1) * sizeof(char)); // Dinamik bellek tahsisi
  rsize = fread(pfile, sizeof(char), fsize, fp); // Dosya içeriğini okuma
  pfile[fsize] = '\0';

  active = strstr(pfile, kod);
  if (active) {
      for (id=0; id<don; id++) {
           active = strstr(active, " ");
           active++;
      }
      sprintf(pdizi, "%.*s", (don>2) ? strchr(active, '\n')-active : strchr(active, ' ')-active, active);
  }

  fclose (fp); // Dosya kapatma
  free(pfile); // Bellek boşaltma

  return pdizi;
}

Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

Murat Nazik 45 Kars