- 23 Dic 2018
- 122
- 70
Os dejo por aquí un programilla en C para gestionar un dox.
Es muy sencillo, esta hecho con el fin de aprender a programar en c y tiene campos como nombre, apellidos, pueblo, codigo postal e IP.
Si tenéis alguna duda sobre el me comentáis, un saludo.
Es muy sencillo, esta hecho con el fin de aprender a programar en c y tiene campos como nombre, apellidos, pueblo, codigo postal e IP.
Si tenéis alguna duda sobre el me comentáis, un saludo.
C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
struct t_info{
char *nombre;
char *apellido1;
char *apellido2;
char *municipio;
char *codigoPostal;
char *ip;
};
struct t_Dox{
int ref;
struct t_info informacion;
};
void menu(struct t_Dox *dox);
void addDox(struct t_Dox *dox);
void eliminarDox(struct t_Dox *dox);
void buscarDox(struct t_Dox *dox);
void listarDox(struct t_Dox *dox);
void main(){
struct t_Dox doxeo;
menu(&doxeo);
}
void menu(struct t_Dox *dox){
int opcion;
do
{
printf("\tGESTION DE DOX's\n");
printf("\t==================\n\n");
printf("1. ADD dox\n");
printf("2. Eliminar dox\n");
printf("3. Buscar dox\n");
printf("4. Listado de dox\n");
printf("5. Salir\n");
do
{
printf("Elige una opción entre 1 y 5: ");
scanf("%d",&opcion);
} while (opcion < 1 || opcion > 5);
switch(opcion)
{
case 1:
addDox(dox);
break;
case 2:
eliminarDox(dox);
break;
case 3:
buscarDox(dox);
break;
case 4:
listarDox(dox);
break;
}
} while (opcion != 5);
}
void addDox(struct t_Dox *dox){
int ref;
char refChar[8];
printf("Dame el numero de referencia que valdrá para buscarlo mas tarde\n");
scanf("%d",&ref);
dox->ref=ref;
itoa(ref,refChar,10);
strcat(refChar,".txt");
FILE *f;
if((f = fopen(refChar, "r"))==NULL)
{
f = fopen(refChar, "w+");
/***********************/
fprintf(f, "REFERENCIA: \n");
fprintf(f, "%d",ref);
fprintf(f, "\n");
/***********************/
printf("Introduce el nombre: \n");
scanf("%s",&dox->informacion.nombre);
fprintf(f, "Nombre: \n");
fprintf(f, "%s ",&dox->informacion.nombre);
fprintf(f, "\n");
/***********************/
printf("Introduce el Primer apellido: \n");
scanf("%s",&dox->informacion.apellido1);
fprintf(f, "Primer Apellido: \n");
fprintf(f, "%s ",&dox->informacion.apellido1);
fprintf(f, "\n");
/***********************/
printf("Introduce el Segundo apellido: \n");
scanf("%s",&dox->informacion.apellido2);
fprintf(f, "Segundo Apellido: \n");
fprintf(f, "%s ",&dox->informacion.apellido2);
fprintf(f, "\n");
/***********************/
printf("Introduce municipio: \n");
scanf("%s",&dox->informacion.municipio);
fprintf(f, "Municipio: \n");
fprintf(f, "%s ",&dox->informacion.municipio);
fprintf(f, "\n");
/***********************/
printf("Codigo postal: \n");
scanf("%s",&dox->informacion.codigoPostal);
fprintf(f, "Codigo postal: \n");
fprintf(f, "%s ",&dox->informacion.codigoPostal);
fprintf(f, "\n");
/***********************/
printf("Ip: \n");
scanf("%s",&dox->informacion.ip);
fprintf(f, "IP: \n");
fprintf(f, "%s ",&dox->informacion.ip);
fprintf(f, "\n");
/***********************/
fclose(f);
}else{
printf("YA EXISTE\n");
fclose(f);
}
}
void eliminarDox(struct t_Dox *dox){
int ref;
char refChar[8];
printf("Dame el numero de referencia a eliminar\n");
scanf("%d",&ref);
itoa(ref,refChar,10);
strcat(refChar,".txt");
if(remove(refChar)==-0){
printf("Archivo eliminado con exito");
printf("\n");
}else printf("No se encuentra el archivo");
}
void buscarDox(struct t_Dox *dox){
FILE *f;
char buffer[1024];
char c;
int ref;
char refChar[8];
printf("Dame el numero de referencia Del dox: \n");
scanf("%d",&ref);
itoa(ref,refChar,10);
strcat(refChar,".txt");
if((f = fopen(refChar, "r"))==NULL){
printf("Ningún dox con referencia %d, si quiere crear un dox, pulse 1 en el menú. \n",ref);
}else{
fgets(buffer,1024,f);
fgets(buffer,1024,f);
fgets(buffer,1024,f);
printf("Nombre: \n");
fgets(buffer, 1024, f);
printf("%s",buffer);
printf("\n");
fgets(buffer,1024,f);
fgets(buffer, 1024, f);
printf("Apellido 1: \n");
printf("%s",buffer);
fgets(buffer, 1024, f);
fgets(buffer, 1024, f);
printf("\n");
printf("Apellido 2: \n");
printf("%s",buffer);
fgets(buffer, 1024, f);
fgets(buffer, 1024, f);
printf("\n");
printf("Municipio: \n");
printf("%s",buffer);
fgets(buffer, 1024, f);
fgets(buffer, 1024, f);
printf("\n");
printf("Codigo postal: \n");
printf("%s",buffer);
fgets(buffer, 1024, f);
fgets(buffer, 1024, f);
printf("\n");
printf("IP: \n");
printf("%s",buffer);
printf("\n");
fclose(f);
}
}
void listarDox(struct t_Dox *dox){
WIN32_FIND_DATA findFileData;
HANDLE hFind;
hFind = FindFirstFile("*", &findFileData);
if(hFind==INVALID_HANDLE_VALUE)
{
printf("La carpeta no existe o no se puede acceder");
}
else
{
do
{
if(findFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
printf("Directorio: %s",findFileData.cFileName);
printf("\n");
}
else
{
printf("%s\n",findFileData.cFileName);
printf("\n");
}
}while(FindNextFile(hFind,&findFileData)!=0);
FindClose(hFind);
}
}