Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "SeznamSvetu.h"
- #include <stdbool.h>
- #define _CRT_SECURE_NO_WARNINGS
- #define BUFFER 1024
- static tSvet* svet = NULL;
- bool prvni = true;
- static tSvet* prvniSvetVSeznamu=NULL;
- static tSvet* aktualniSvet = NULL;
- static tSvet *seznamSvetu = NULL;
- static tSvet *historie=NULL;
- char* rozdelovac = NULL;
- void nactiSvety(){ /*definice funkce nactiSvety, Dekladace a popis v SeznamSvetu.h*/
- system("cls");
- char radek[BUFFER];
- FILE* file;
- file = fopen("data.csv", "r");
- if (file == NULL){
- printf("\n_____________________________________________________");
- printf("\n Pri otevirani souboru nastala neocekavana chyba \n");
- printf("_____________________________________________________\n");
- fflush(stdin);
- getch();
- return 0;
- }
- else{
- printf("\n_____________________________________________________");
- printf("\nNacteni Svetu probehlo uspesne \n");
- printf("_____________________________________________________\n");
- }
- svet = vytvorSvet();
- while (feof(file) == 0){
- fgets(radek, BUFFER, file);
- int pocetPolVRadku = 1;
- for (int i = 0; i <= strlen(radek); i++){
- if (radek[i] == ';') pocetPolVRadku++;
- }
- for (int i = 0; i < pocetPolVRadku; i++)
- {
- if (i == 0){
- rozdelovac = strtok(radek, ";");
- svet->cisloSveta = atoi(rozdelovac);
- printf("%d\n", svet->cisloSveta);
- }
- if (i == 1){
- rozdelovac = strtok(NULL, ";");
- strcpy(svet->nazevSveta, rozdelovac);
- puts(svet->nazevSveta);
- }
- if (i == 2){
- rozdelovac = strtok(NULL, ";");
- svet->zprava = (char*)realloc(svet->zprava, sizeof(rozdelovac)*strlen(rozdelovac));
- strcpy(svet->zprava, rozdelovac);
- puts(svet->zprava);
- }
- if (i > 2){
- if (i > POCETSOUHVEZDI + 3){
- svet->poleSouhvezdi = realloc(svet->poleSouhvezdi, (sizeof(char*)*(i - 3)));
- }
- rozdelovac = strtok(NULL, ";");
- svet->poleSouhvezdi[i - 3] = (char*)calloc(strlen((rozdelovac)), sizeof(char));
- strcpy(svet->poleSouhvezdi[i - 3], rozdelovac);
- puts(svet->poleSouhvezdi[i - 3]);
- }
- }
- zretezit(svet);
- }
- puts(seznamSvetu->nazevSveta);
- fclose(file);
- }
- void zretezit(tSvet* svet){
- if (prvni == true){
- seznamSvetu =vytvorKopii(svet);
- prvni = false;
- }
- else{
- if ((seznamSvetu->next == NULL) && (svet != seznamSvetu)){
- seznamSvetu->next = svet;
- }
- if (aktualniSvet == NULL){
- aktualniSvet = seznamSvetu;
- }
- aktualniSvet->next = vytvorKopii(svet);
- aktualniSvet = aktualniSvet->next;
- }
- }
- tSvet* najdiSvet(char* hledanySvet){ //definice funkce najdi svet, dekladace v seznamSvetu.
- puts(seznamSvetu->nazevSveta);
- puts(hledanySvet);
- while(seznamSvetu->next!=NULL){
- if (strcmp(hledanySvet, svet->nazevSveta)==0){
- puts(seznamSvetu->nazevSveta);
- return svet;
- }seznamSvetu=seznamSvetu->next;
- }
- return NULL;
- }
- void smazSvety(){ /*Definice fce smazSvety, dekladace v seznamSvetu.h*/
- }
- 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
- , které na aktuální pozici toto souhvězdí obsahují(a zároveň souhlasí i všechna předchozí zadaná souhvězdí).
- Pokud jsou všechna souhvězdí správná, uživateli se zobrazí zpráva nalezeného světa.
- Dále se pomocí funkce vytvorKopii vytvoří kopie nalezeného světa a uloží se do seznamu historie. */
- void vypisSvety(); /* dekladace funkce vypisSvety,vypíše všechny světy */
- void vypisHistorii(); /*dekladace funkce vypisHistorii, vypíše všechny světy, které byly otevřeny pomocí správné kombinace souhvězdí.*/
- void vypisSvetySouh(); /*dekladace funkce vypisSvetySouh, vypíše všechny světy, které obsahují na libovolném místě hledané souhvězdí. */
- void pridejSvet(); /*dekladace funkce pridejSvet, přidá nový svět*/
- void odeberSvet(); /*dekladace funkce odeberSvet, odebere svět dle názvu světa*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement