Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/03/2015, 11:49
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Emoticones en vez de Numeros y buscar elementos

Prueba esto:
Código PHP:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

#define MAXLENGTH 9
//----------------------------------------------------------------------------
typedef struct
{
   
char Tipo[MAXLENGTH];
   
int Numero;
   
char Nombre[MAXLENGTH];
   
char Fabrica[MAXLENGTH];
   
char Tamanio[MAXLENGTH];
   
int Venta;
   
int Compra;
}
sRegistro;

sRegistro registro;
void Menu(void);
void CrearArchivo(FILE *Archivo);
void VerDatos(FILE *Archivo);
void InsertarDatos(FILE *Archivo);
void VerDatos(FILE *Archivo);
void LeerRegistroX(FILE *Archivo);
void BuscarNombre(FILE *Archivo);
void MostrarRegistro(sRegistro registro);
//----------------------------------------------------------------------------

int main()
{
   
int opcion,exit=0;
   
FILE *archivo;

   
system("color 0b");
   while(!exit)
   {
      
Menu();
      
printf("\nOpcion: ");
      
scanf("%d",&opcion);
      switch(
opcion)
      {
         case 
1:
            
CrearArchivo(archivo);
            
printf("\n\n");
            
system("PAUSE");
            
system("CLS");
            break;
         case 
2:
            
InsertarDatos(archivo);
            
printf("\n\n");
            
system("PAUSE");
            
system("CLS");
            break;
         case 
3:
            
VerDatos(archivo);
            
printf("\n\n");
            
system("PAUSE");
            
system("CLS");
            break;
         case 
4:
            
LeerRegistroX(archivo);
            
printf("\n\n");
            
system("PAUSE");
            
system("CLS");
            break;
         case 
5:
            
BuscarNombre(archivo);
            
printf("\n\n");
            
system("PAUSE");
            
system("CLS");
            break;
         case 
6:
            exit=
1;
            break;
         default:
            
printf("\nopcion no valida");
      }
   }
   return 
0;
}
//----------------------------------------------------------------------------

void Menu(void)
{
   
printf("\nMenu: ");
   
printf("\n\t 1.-Crea archivo ");
   
printf("\n\t 2.-Insertar Datos");
   
printf("\n\t 3.-Ver Datos");
   
printf("\n\t 4.-Mostrar un registro");
   
printf("\n\t 5.-Buscar por nombre");
   
printf("\n\t 6.-Salir ");
}
//----------------------------------------------------------------------------

void CrearArchivo(FILE *Archivo)
{
   
Archivo=fopen("Ejemplo.txt","r");
   if (!
Archivo)
   {
      
Archivo=fopen("Ejemplo.txt","w");
      
printf("\nArchivo creado!");
   }
   else
   {
      
printf("\nEl archivo ya existe!");
   }
   
fclose (Archivo);
}
//----------------------------------------------------------------------------

void InsertarDatos(FILE *Archivo)
{
   
Archivo=fopen("Ejemplo.txt","a");
   if(
Archivo==NULL){
      
printf("\nArchivo no existe! n Por favor creelo");
   }else{
      
printf("\nTipo de Refreso :");
      
fflush(stdin);
      
fgets(registro.TipoMAXLENGTHstdin);
      
registro.Tipo[strlen(registro.Tipo)-1]='\0';
      
printf("\nNumero de Refresco: ");
      
fflush(stdin);
      
scanf("%d", &registro.Numero);
      
printf("\nNombre de Refresco : ");
      
fflush(stdin);
      
fgets(registro.NombreMAXLENGTHstdin);
      
registro.Nombre[strlen(registro.Nombre)-1]='\0';
      
printf("\nCompania que lo Fabrica :");
      
fflush(stdin);
      
fgets(registro.FabricaMAXLENGTHstdin);
      
registro.Fabrica[strlen(registro.Fabrica)-1]='\0';
      
printf("\nTamano :");
      
fflush(stdin);
      
fgets(registro.TamanioMAXLENGTHstdin);
      
registro.Tamanio[strlen(registro.Tamanio)-1]='\0';
      
printf("\nPrecio de Venta :");
      
fflush(stdin);
      
scanf("%d",&registro.Venta);
      
printf("\nPrecio de Compra :");
      
fflush(stdin);
      
scanf("%d",&registro.Compra);
      
fwrite(&registrosizeof(registro), 1,Archivo);
      
fclose(Archivo);
   }
}
//----------------------------------------------------------------------------

void VerDatos(FILE *Archivo)
{
   
int nReads;
   
Archivo=fopen("Ejemplo.txt","r");
   if (
Archivo==NULL){
      
printf("\nArchivo no existe! n Por favor creelo");
   }else{
      
printf("\nTipo       Numero  Nombre    Fabrica    Tamano       Venta      Compra");
      do{
         
nReads fread(&registrosizeof(registro), 1,Archivo);
         if(
nReads == 1){
            
MostrarRegistro(registro);
         }
      }while(!
feof(Archivo));
      
printf("\n");
      
fclose(Archivo);
   }
}
//----------------------------------------------------------------------------

void LeerRegistroX(FILE *Archivo)
{
   
int sizenRegistrospos=0nReads;

   
Archivo=fopen("Ejemplo.txt","r");

   if (
Archivo==NULL){
      
printf("\nArchivo no existe! n Por favor creelo");
   }else{
      
fseek(Archivo SEEK_END);
      
size ftell(Archivo);
      
nRegistros size/sizeof(registro);

      if(
nRegistros 0){
         
printf("Introduce el numero de registro a mostrar: ");
         
scanf("%d",&pos);
         if(
pos || pos >= nRegistros){
            
printf("\nEl registro elegido no existe.");
         }else{
            
printf("\nTipo       Numero  Nombre    Fabrica    Tamano       Venta      Compra");
            
memset(&registro0sizeof(registro));
            
fseek(Archivo sizeof(registro)*posSEEK_SET);
            
nReads fread(&registrosizeof(registro), 1Archivo);
            if(
nReads == 1){
               
MostrarRegistro(registro);
            }
         }
      }
      
fclose(Archivo);
   }
}
//----------------------------------------------------------------------------

void BuscarNombre(FILE *Archivo)
{
   
int sizenRegistrosnReadscontador=0;
   
char cadena[8];
   
char *encontrado;

   
Archivo=fopen("Ejemplo.txt","r");

   
memset(cadena0sizeof(cadena));
   
fflush(stdin);
   
printf("Introduce el nombre o parte de el: ");
   
fgets(cadena,MAXLENGTH,stdin);
   
fflush(stdin);
   if (
Archivo==NULL){
      
printf("\nArchivo no existe! n Por favor creelo");
   }else{
      
fseek(Archivo SEEK_END);
      
size ftell(Archivo);
      
nRegistros size/sizeof(registro);
      
fseek(Archivo 0SEEK_SET);
      
cadena[strlen(cadena)-1]='\0';
      if(
nRegistros 0){
         
printf("\nTipo       Numero  Nombre    Fabrica    Tamano       Venta      Compra");
         do{
            
memset(&registro0sizeof(registro));
            
nReads fread(&registrosizeof(registro), 1Archivo);
            if(
nReads == 1){
               
encontrado strstr(registro.Nombre,cadena);

               if(
encontrado != NULL){
                  
MostrarRegistro(registro);
                  
contador++;
               }
            }
         }while(!
feof(Archivo));
      }
      if(
contador == 0)
         
printf("\n\nNo se encontro ningun registro con ese nombre.");
      
fclose(Archivo);
   }
}
//----------------------------------------------------------------------------

void MostrarRegistro(sRegistro registro)
{
   
int largo,nMods;

   
largo strlen(registro.Tipo);
   
nMods MAXLENGTH-largo-1;
   if(
nMods 0)
      
memset(&registro.Tipo[largo], ' ',nMods);
   
largo strlen(registro.Nombre);
   
nMods MAXLENGTH-largo-1;
   if(
nMods 0)
      
memset(&registro.Nombre[largo], ' ',nMods);
   
largo strlen(registro.Fabrica);
   
nMods MAXLENGTH-largo-1;
   if(
nMods 0)
      
memset(&registro.Fabrica[largo], ' ',nMods);
   
largo strlen(registro.Tamanio);
   
nMods MAXLENGTH-largo-1;
   if(
nMods 0)
      
memset(&registro.Tamanio[largo], ' ',nMods);

   
printf("\n%s   %d\t   %s  %s   %s     %d  \t%d ",registro.Tipo,
   
registro.Numero,registro.Nombre,registro.Fabrica,registro.Tamanio,
   
registro.Venta,registro.Compra);
}
//---------------------------------------------------------------------------- 
Hice algunos cambios de cosas que haces y no me gustan.