Created
November 25, 2019 22:29
-
-
Save BalintCsala/62fb432de3d5e968fea2b3e14b70b085 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <ctype.h> | |
#include <stdbool.h> | |
#include "c-econio\econio.h" | |
typedef struct bejegyzes{//az adatokat tartalmazo struktúra létrehozása | |
char keresztnev[50]; | |
char vezeteknev[50]; | |
char foglalkozas[50]; | |
char lakcim[50]; | |
char telefonszam[50]; | |
char vezetekes[50]; | |
char email[50]; | |
char datum[50]; | |
}bejegyzes; | |
//bejegyzes telefonkonyv[1000]; | |
bejegyzes* telefonkonyv; | |
int db = 0; | |
int sorok_szama(){ | |
FILE* fp; | |
fp = fopen("telefonkonyv.txt", "r"); //fajl megnyitása | |
if (fp == NULL) { | |
perror("Fájl megnyitása sikertelen"); | |
return -1; | |
} | |
int db = 0; | |
char sor[400]; | |
while(fgets(sor, sizeof sor, fp) != NULL){ | |
++db; | |
} | |
return db; | |
} | |
void adatbazis_beolvasas(){ | |
telefonkonyv = (bejegyzes*)malloc(sizeof(bejegyzes)*sorok_szama() / 8); | |
FILE* fp; | |
fp = fopen("telefonkonyv.txt", "r"); //fajl megnyitása | |
if (fp == NULL) { | |
perror("Fájl megnyitása sikertelen"); | |
return; | |
} | |
/* char sor[420]; | |
int i = 0; | |
while (fgets(sor, sizeof sor, fp) != NULL ){ | |
//sscanf(sor,"%s\000%s\000%s\000%s\000%s\000%s\000%s", | |
sscanf(sor,"%[^\000],%[^\000],%[^\000],%[^\000],%[^\000],%[^\000]", | |
telefonkonyv[i].keresztnev, | |
telefonkonyv[i].vezeteknev, | |
telefonkonyv[i].foglalkozas, | |
telefonkonyv[i].lakcim, | |
telefonkonyv[i].telefonszam, | |
telefonkonyv[i].vezetekes, | |
telefonkonyv[i].email | |
); | |
++i; | |
} | |
}*/ | |
db = 0; | |
int d; | |
while (fscanf(fp, "%d\n", &d) != EOF) { | |
fscanf(fp, "%[^\n]\n", telefonkonyv[db].vezeteknev); | |
fscanf(fp, "%[^\n]\n", telefonkonyv[db].keresztnev); | |
fscanf(fp, "%[^\n]\n", telefonkonyv[db].foglalkozas); | |
fscanf(fp, "%[^\n]\n", telefonkonyv[db].lakcim); | |
fscanf(fp, "%[^\n]\n", telefonkonyv[db].telefonszam); | |
fscanf(fp, "%[^\n]\n", telefonkonyv[db].vezetekes); | |
fscanf(fp, "%[^\n]\n", telefonkonyv[db].email); | |
db++; | |
} | |
} | |
void adatbazis_kiiras(){ | |
for (int i = 0; i<db; i++){ | |
printf("%s;%s;%s;%s;%s;%s;%s;\n" | |
, telefonkonyv[i].keresztnev | |
, telefonkonyv[i].vezeteknev | |
, telefonkonyv[i].foglalkozas | |
, telefonkonyv[i].email | |
, telefonkonyv[i].telefonszam | |
, telefonkonyv[i].vezetekes | |
, telefonkonyv[i].lakcim | |
); | |
} | |
} | |
void vcard(){//még nem tetszőleges adatok megadásával dolgozik, de működőképes vCard-ot hoz létre | |
//születésnap itt nincsen | |
char keresztnev[50] = "lilla veronika"; | |
char vezeteknev[50] = "vincze"; | |
char telefonszam[50] ="06701234567"; | |
char vezetekes[50]= "123-4567"; | |
char foglalkozas[50] = "naplopo"; | |
char email[50]="[email protected]"; | |
char lakcim[50]="sotet lyuk"; | |
FILE* fp; | |
fp = fopen("vcard.vcf", "w"); | |
if (fp == NULL) { | |
perror("Fájl megnyitása sikertelen"); | |
return; | |
} | |
fprintf(fp, "BEGIN:VCARD\n");//az eredeti vCard-ból kivettem egy-két felesleges dolgot, de azok nélkül is működik, gmail-ben kipróbáltam | |
fprintf(fp, "VERSION:4.0\n"); | |
fprintf(fp, "N:"); fprintf(fp, keresztnev); fprintf(fp, ";"); fprintf(fp, vezeteknev); fprintf(fp, ";;\n"); | |
fprintf(fp, "TITLE:"); fprintf(fp, foglalkozas); fprintf(fp, "\n"); | |
fprintf(fp, "TEL;TYPE=HOME,VOICE:"); fprintf(fp, telefonszam); fprintf(fp, "\n"); | |
fprintf(fp, "TEL;TYPE=WORK,VOICE:"); fprintf(fp, vezetekes); fprintf(fp, "\n"); | |
fprintf(fp, "ADR;TYPE=HOME:;;"); fprintf(fp, lakcim); fprintf(fp, "\n"); | |
fprintf(fp, "EMAIL:"); fprintf(fp, email); fprintf(fp, "\n"); | |
fprintf(fp, "END:VCARD"); | |
fclose(fp); | |
return; | |
} | |
void fajlbair (){//csak segédlet gyanánt írtam, később törlöm/átalakítom mássá | |
FILE *fp; | |
fp = fopen("szamok.txt", "w"); | |
if (fp == NULL) { | |
perror("Fájl megnyitása sikertelen"); | |
return; | |
} | |
int tomb[6]; | |
printf("Irj be hat szamot!\n"); | |
for(int i = 0; i < 6; ++i){ | |
scanf("%d", &tomb[i]); | |
} | |
for (int i = 0; i < 6; ++i){ | |
fprintf(fp, "%d\n", tomb[i]); | |
} | |
fclose(fp); | |
fclose(fp); | |
return; | |
} | |
void nevjegyfelvetel(){//A tömbbe beleírja az adatokat, de a fájlba még nem! | |
char keresztnev[50]; | |
char vezeteknev[50]; | |
char foglalkozas[50]; | |
char lakcim[50]; | |
char telefonszam[50]; | |
char vezetekes[50]; | |
char email[50]; | |
char datum[50]; | |
char c; | |
printf("Kerlek add meg az adatokat! Ahova nem szeretnel adatot, irj egy '-' jelet!\n(ha tobb adat is van, akkor '_' karakterrel elvalasztva!)"); | |
printf("\nAdd meg a keresztnevet:\t"); | |
scanf("%s",keresztnev); | |
printf("\nAdd meg a vezeteknevet:\t"); | |
scanf("%s",vezeteknev); | |
printf("\nAdd meg az illeto foglalkozasat:\t"); | |
scanf("%s",foglalkozas); | |
printf("\nLakcime:\t"); | |
scanf("%s",lakcim); | |
printf("\nTelefonszama(mobil):\t"); | |
scanf("%s",telefonszam); | |
printf("\nTelefonszama(vezetekes):\t"); | |
scanf("%s",vezetekes); | |
printf("\nE-mail cime?\t"); | |
scanf("%s",email); | |
printf("\nMikor szuletett?\n"); | |
scanf("%s", datum); | |
printf("\n%s %s %s %s %s %s %s", keresztnev, vezeteknev, foglalkozas, lakcim, telefonszam, vezetekes, email); | |
printf("\nEz igy jo lesz?(i(igen)/n(nem)\n"); | |
scanf("%c", &c); //Itt...továbbmegy..Sajnos nem kér be semmit a felhasználótól. | |
if(c == 'n'){ | |
return; | |
} | |
else{ | |
bejegyzes* telefonkonyv_temp = (bejegyzes *)realloc(telefonkonyv, sizeof(bejegyzes)*(db+1)); | |
telefonkonyv = telefonkonyv_temp; | |
strcpy(telefonkonyv[db].keresztnev, keresztnev); | |
strcpy(telefonkonyv[db].vezeteknev, vezeteknev); | |
strcpy(telefonkonyv[db].foglalkozas, foglalkozas); | |
strcpy(telefonkonyv[db].lakcim, lakcim); | |
strcpy(telefonkonyv[db].telefonszam, telefonszam); | |
strcpy(telefonkonyv[db].vezetekes, vezetekes); | |
strcpy(telefonkonyv[db].email, email); | |
++db; | |
printf("\nNevjegy sikeresen hozzaadva.\n"); | |
return; | |
} | |
} | |
int fomenu(){ | |
//econio_clrscr(); | |
printf("\n\nTELEFONKONYV ver. 0.5\n\n"); | |
printf("Telefonkonyv kiirasa: 1\n"); | |
printf("Nevjegyfelvetel: 2\n"); | |
printf("Iras: 3\n"); | |
printf("vCard?: 4\n"); | |
printf("Kilepes : 5\n\n"); | |
fflush(stdin); | |
char VALAMI = getc(stdin); | |
switch(VALAMI) | |
{ | |
case '1': | |
adatbazis_kiiras(); | |
return 0; | |
case '2': | |
nevjegyfelvetel(); | |
return 0; | |
case '3': | |
fajlbair(); | |
return 0; | |
case '4': | |
vcard(); | |
return 0; | |
case '5': | |
printf("\nSzia!:)"); | |
printf("\n"); | |
return -1; | |
default: | |
printf("\nSzia!:)"); | |
printf("\n"); | |
return -1; | |
} | |
} | |
int main(){ | |
adatbazis_beolvasas(); | |
while(fomenu()!=-1){ | |
//getc(stdin); | |
; | |
} | |
free(telefonkonyv); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment