Skip to content

Instantly share code, notes, and snippets.

@BalintCsala
Created November 25, 2019 22:29
Show Gist options
  • Save BalintCsala/62fb432de3d5e968fea2b3e14b70b085 to your computer and use it in GitHub Desktop.
Save BalintCsala/62fb432de3d5e968fea2b3e14b70b085 to your computer and use it in GitHub Desktop.
#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