Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.65 KB | None | 0 0
  1. KCsoport *KCsoport_betolt(JKategoria *jkategoria){
  2.  
  3.     /* Fájlkezelés */
  4.  
  5.     // Fájl elérési útvonalának meghatározása
  6.     char kerdeskategoriak_utvonal[50];
  7.     sprintf(kerdeskategoriak_utvonal, "kategoria_%d/kerdescsoportok.txt", jkategoria->azonosito);
  8.  
  9.     FILE *fp;
  10.     fp = fopen(kerdeskategoriak_utvonal, "r"); // Fájl megnyitása
  11.     // Hibakezelés (nem sikerült megnyitni a fájlt)
  12.     if(!fp)
  13.         hibakepernyo("Nem sikerült megnyitni a kérdéscsoportokat tartalmazó fájlt!");
  14.  
  15.     /* Kérdéscsoportok betöltése */
  16.  
  17.     // Láncolt lista első eleme (strázsa)
  18.     KCsoport *elso = (KCsoport *)malloc(sizeof(KCsoport));
  19.     elso->kovetkezo = NULL;
  20.  
  21.     KCsoport uj; // Új (betöltött), hozzáfűzendő elem
  22.  
  23.     // Fájlon végig, elemek betöltése
  24.     int scanf_p; // scanf által beolvasott paraméterek száma
  25.     int i = 1; // sorok számolása, hogy a hiba kiírható legyen
  26.     while ((scanf_p = fscanf(fp, "%d;%[^\n]\n", &(uj.azonosito), uj.nev)) != EOF){
  27.         if(scanf_p == 2){ // Sikerült mind a 2 paramétert beolvasni
  28.              KCsoport_hozzafuz(elso, &uj); // Hozzáfűzés a láncolt listához
  29.         }else{ // Hibás sor
  30.             char feketelyuk[2000]; // ~ /dev/null
  31.             fscanf(fp, "%[^\n]\n", feketelyuk); // Hibás sor átugrása
  32.             fprintf(stderr, "%s:%d hibás formátumú!\n", kerdeskategoriak_utvonal, i); // Hiba kiírása
  33.         }
  34.         i++; // Sorok számolásához
  35.     }
  36.  
  37.     /* Fájlkezelés */
  38.     fclose(fp); // Fájl bezárása
  39.  
  40.     /* Visszatérés */
  41.     return elso; // Visszatérés a láncolt lista első (strázsa) elemére mutató pointerrel
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement