Advertisement
Smudla

Untitled

Dec 28th, 2014
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.97 KB | None | 0 0
  1. #include "SeznamSvetu.h"
  2. #include <stdbool.h>
  3. #define _CRT_SECURE_NO_WARNINGS
  4. #define BUFFER 1024
  5. static tSvet* svet = NULL;
  6. bool prvni = true;
  7. static tSvet* prvniSvetVSeznamu=NULL;
  8. static tSvet* aktualniSvet = NULL;
  9. static tSvet *seznamSvetu = NULL;
  10. static tSvet *historie=NULL;
  11. char* rozdelovac = NULL;
  12.  
  13.  
  14. void nactiSvety(){ /*definice funkce nactiSvety, Dekladace a popis v SeznamSvetu.h*/
  15.     system("cls");
  16.     char radek[BUFFER];
  17.     FILE* file;
  18.     file = fopen("data.csv", "r");
  19.     if (file == NULL){
  20.         printf("\n_____________________________________________________");
  21.         printf("\n Pri otevirani souboru nastala neocekavana chyba \n");
  22.         printf("_____________________________________________________\n");
  23.         fflush(stdin);
  24.         getch();
  25.         return 0;
  26.     }
  27.     else{
  28.         printf("\n_____________________________________________________");
  29.         printf("\nNacteni Svetu probehlo uspesne \n");
  30.         printf("_____________________________________________________\n");
  31.     }
  32.     svet = vytvorSvet();
  33.     while (feof(file) == 0){
  34.         fgets(radek, BUFFER, file);
  35.         int pocetPolVRadku = 1;
  36.         for (int i = 0; i <= strlen(radek); i++){
  37.             if (radek[i] == ';') pocetPolVRadku++;
  38.         }
  39.         for (int i = 0; i < pocetPolVRadku; i++)
  40.         {
  41.             if (i == 0){
  42.                 rozdelovac = strtok(radek, ";");
  43.                 svet->cisloSveta = atoi(rozdelovac);
  44.                 printf("%d\n", svet->cisloSveta);
  45.             }
  46.             if (i == 1){
  47.                 rozdelovac = strtok(NULL, ";");
  48.                 strcpy(svet->nazevSveta, rozdelovac);
  49.                 puts(svet->nazevSveta);
  50.             }
  51.             if (i == 2){
  52.                 rozdelovac = strtok(NULL, ";");
  53.                 svet->zprava = (char*)realloc(svet->zprava, sizeof(rozdelovac)*strlen(rozdelovac));
  54.                 strcpy(svet->zprava, rozdelovac);
  55.                 puts(svet->zprava);
  56.             }
  57.             if (i > 2){
  58.                 if (i > POCETSOUHVEZDI + 3){
  59.                     svet->poleSouhvezdi = realloc(svet->poleSouhvezdi, (sizeof(char*)*(i - 3)));
  60.                 }
  61.                 rozdelovac = strtok(NULL, ";");
  62.                 svet->poleSouhvezdi[i - 3] = (char*)calloc(strlen((rozdelovac)), sizeof(char));
  63.                 strcpy(svet->poleSouhvezdi[i - 3], rozdelovac);
  64.                 puts(svet->poleSouhvezdi[i - 3]);
  65.             }
  66.        
  67.     }
  68.         zretezit(svet);
  69. }
  70. puts(seznamSvetu->nazevSveta);
  71. fclose(file);
  72. }
  73.  
  74. void zretezit(tSvet* svet){
  75.     if (prvni == true){
  76.         seznamSvetu =vytvorKopii(svet);
  77.         prvni = false;
  78.     }
  79.     else{
  80.         if ((seznamSvetu->next == NULL) && (svet != seznamSvetu)){
  81.             seznamSvetu->next = svet;
  82.         }
  83.         if (aktualniSvet == NULL){
  84.             aktualniSvet = seznamSvetu;
  85.         }
  86.  
  87.         aktualniSvet->next = vytvorKopii(svet);
  88.         aktualniSvet = aktualniSvet->next;
  89.     }
  90. }
  91.  
  92. tSvet* najdiSvet(char* hledanySvet){        //definice funkce najdi svet, dekladace v seznamSvetu.
  93.         puts(seznamSvetu->nazevSveta);
  94.         puts(hledanySvet);
  95.         while(seznamSvetu->next!=NULL){
  96.             if (strcmp(hledanySvet, svet->nazevSveta)==0){
  97.                 puts(seznamSvetu->nazevSveta);
  98.                 return svet;
  99.             }seznamSvetu=seznamSvetu->next;
  100.         }
  101.     return NULL;
  102. }
  103.  
  104. void smazSvety(){ /*Definice fce smazSvety, dekladace v seznamSvetu.h*/
  105.                  
  106.                  
  107.                  
  108.                  
  109.                  
  110. }
  111.  
  112.  
  113. void vytvorDiru(); /*dekladace funkce vytvorDiru, uživatel postupně zadává jednotlivá souhvězdí.Po každém zadanvoid ém souhvězdí se uživateli zobrazí pouze ty světy
  114.               , které na aktuální pozici toto souhvězdí obsahují(a zároveň souhlasí i všechna předchozí zadaná souhvězdí).
  115.               Pokud jsou všechna souhvězdí správná, uživateli se zobrazí zpráva nalezeného světa.
  116.               Dále se pomocí funkce vytvorKopii vytvoří kopie nalezeného světa a uloží se do seznamu historie. */
  117.  
  118. void vypisSvety();  /* dekladace funkce vypisSvety,vypíše všechny světy */
  119.  
  120.  void vypisHistorii(); /*dekladace funkce vypisHistorii, vypíše všechny světy, které byly otevřeny pomocí správné kombinace souhvězdí.*/
  121.  
  122.  void vypisSvetySouh(); /*dekladace funkce vypisSvetySouh, vypíše všechny světy, které obsahují na libovolném místě hledané souhvězdí. */
  123.  
  124.  void pridejSvet(); /*dekladace funkce pridejSvet, přidá nový svět*/
  125.  
  126.  void odeberSvet(); /*dekladace funkce odeberSvet, odebere svět dle názvu světa*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement