270 lines
6.1 KiB
C++
270 lines
6.1 KiB
C++
|
||
#include <conio.h>
|
||
#include <ctype.h>
|
||
#include <string.h>
|
||
#include <stdlib.h>
|
||
#include <stdio.h>
|
||
#include "..\herm.h"
|
||
#include "..\..\libs\bdatos\bdatos.hh"
|
||
|
||
HermStruct Hermanos;
|
||
BDatos Dbf;
|
||
void RellenaStructura(FILE *file);
|
||
void obten_linea(FILE *file, char *buf);
|
||
|
||
void PreparaNuevoRegistro(void);
|
||
|
||
void main( void )
|
||
{
|
||
long registro = 0;
|
||
FILE *origen;
|
||
|
||
printf( "\nConvertidor de fichero: PROCESANDO..." );
|
||
|
||
|
||
if ( (origen = fopen( "hermanos.txt", "r" ) ) != NULL )
|
||
{
|
||
Dbf.AbrirReg( "hermanos.dbf", sizeof( HermStruct ) );
|
||
|
||
do
|
||
{
|
||
RellenaStructura(origen);
|
||
// La estructura ya esta cargada, asi que....
|
||
Dbf.InsReg( (void *)&Hermanos, Dbf.Registros(), ARRIBA );
|
||
registro++;
|
||
gotoxy( 1,1 ); printf( "%ld", registro );
|
||
}while( !feof(origen) );
|
||
|
||
Dbf.CerrarReg();
|
||
fclose( origen );
|
||
} else
|
||
printf( "\nError abriendo el origen" );
|
||
}
|
||
|
||
void RellenaStructura(FILE *file)
|
||
{
|
||
char buffer[250];
|
||
// este es el orden del archivo:
|
||
|
||
|
||
PreparaNuevoRegistro();
|
||
|
||
// Numero
|
||
obten_linea( file, buffer );
|
||
Hermanos.NHno = atol( buffer );
|
||
// printf("\nNumero: %s", buffer );
|
||
|
||
// Nombre
|
||
obten_linea( file, buffer );
|
||
buffer[0] = toupper(buffer[0]);
|
||
strncpy( Hermanos.Nombre, buffer, 15 );
|
||
Hermanos.Nombre[16] = '\0';
|
||
// printf("\n%s", buffer );
|
||
|
||
|
||
// Apellido1
|
||
obten_linea( file, buffer );
|
||
buffer[0] = toupper(buffer[0]);
|
||
strncpy( Hermanos.Apellido1, buffer, 15 );
|
||
Hermanos.Apellido1[16] = '\0';
|
||
|
||
// printf("\n%s", buffer );
|
||
// Apellido2
|
||
obten_linea( file, buffer );
|
||
buffer[0] = toupper(buffer[0]);
|
||
strncpy( Hermanos.Apellido2, buffer, 15 );
|
||
Hermanos.Apellido2[16] = '\0';
|
||
|
||
// printf("\n%s", buffer );
|
||
// Direcci¢n
|
||
obten_linea( file, buffer );
|
||
buffer[0] = toupper(buffer[0]);
|
||
strncpy ( Hermanos.Direccion, buffer, 30 );
|
||
Hermanos.Direccion[30] = '\0';
|
||
sprintf( Hermanos.Num, "" );
|
||
sprintf( Hermanos.Piso, "" );
|
||
|
||
|
||
// printf("\n%s", buffer );
|
||
// CP
|
||
obten_linea( file, buffer );
|
||
Hermanos.CodP = atol ( buffer );
|
||
|
||
// printf("\n%s", buffer );
|
||
// Poblaci¢n
|
||
obten_linea( file, buffer );
|
||
buffer[0] = toupper(buffer[0]);
|
||
strncpy( Hermanos.Poblacion, buffer, 15 );
|
||
Hermanos.Poblacion[16] = '\0';
|
||
|
||
// printf("\n%s", buffer );
|
||
// Provincia
|
||
obten_linea( file, buffer );
|
||
buffer[0] = toupper(buffer[0]);
|
||
strncpy( Hermanos.Provincia, buffer, 15 );
|
||
Hermanos.Provincia[16] = '\0';
|
||
|
||
// printf("\n%s", buffer );
|
||
// Telefono1
|
||
obten_linea( file, buffer );
|
||
buffer[0] = toupper(buffer[0]);
|
||
strncpy( Hermanos.Telefono1, buffer, 15 );
|
||
Hermanos.Telefono1[16] = '\0';
|
||
|
||
// printf("\n%s", buffer );
|
||
// Telefono2
|
||
obten_linea( file, buffer );
|
||
buffer[0] = toupper(buffer[0]);
|
||
strncpy( Hermanos.Telefono2, buffer, 15 );
|
||
Hermanos.Telefono2[16] = '\0';
|
||
|
||
// printf("\n%s", buffer );
|
||
// Antig<69>edad
|
||
obten_linea( file, buffer );
|
||
if ( buffer[0] != '0' )
|
||
{
|
||
Hermanos.Antig.da_year = (buffer[0]-'0')*1000 + (buffer[1]-'0')*100 + (buffer[2]-'0')*10 + (buffer[3]-'0');
|
||
Hermanos.Antig.da_mon = (buffer[5]-'0')*10 + (buffer[6]-'0');
|
||
Hermanos.Antig.da_day = (buffer[8]-'0')*10 + (buffer[9]-'0');
|
||
}
|
||
|
||
// a¤o-mes-dia
|
||
// sprintf( Hermanos.Nombre, "%15s", buffer );
|
||
|
||
|
||
// printf("\n%s", buffer );
|
||
// Fecha de nacimiento
|
||
obten_linea( file, buffer );
|
||
// sprintf( Hermanos.Nombre, "%15s", buffer );
|
||
if ( buffer[0] != '0' )
|
||
{
|
||
Hermanos.FechaN.da_year = (buffer[0]-'0')*1000 + (buffer[1]-'0')*100 + (buffer[2]-'0')*10 + (buffer[3]-'0');
|
||
Hermanos.FechaN.da_mon = (buffer[5]-'0')*10 + (buffer[6]-'0');
|
||
Hermanos.FechaN.da_day = (buffer[8]-'0')*10 + (buffer[9]-'0');
|
||
}
|
||
|
||
|
||
|
||
// Reserva
|
||
obten_linea( file, buffer );
|
||
if ( buffer[0] == '1' )
|
||
Hermanos.Varios.Reserva = 1;
|
||
else
|
||
Hermanos.Varios.Reserva = 0;
|
||
|
||
|
||
// printf("\n%s", buffer );
|
||
// Ultima posici¢n
|
||
obten_linea( file, buffer );
|
||
strncpy( Hermanos.Posicion, buffer, 15 );
|
||
Hermanos.Posicion[16] = '\0';
|
||
|
||
// printf("\n%s", buffer );
|
||
// Posici¢n
|
||
obten_linea( file, buffer );
|
||
Hermanos.Insignia = 0;
|
||
|
||
// printf("\n%s", buffer );
|
||
// Cuota familiar
|
||
obten_linea( file, buffer );
|
||
if ( buffer[0] == '1' )
|
||
Hermanos.Varios.CuotaFam = 1;
|
||
else
|
||
Hermanos.Varios.CuotaFam = 0;
|
||
|
||
|
||
// printf("\n%s", buffer );
|
||
// Bolet¡n
|
||
obten_linea( file, buffer );
|
||
if ( buffer[0] == '1' )
|
||
Hermanos.Varios.Notific = 1;
|
||
else
|
||
Hermanos.Varios.Notific = 0;
|
||
|
||
|
||
// printf("\n%s", buffer );
|
||
// Vota
|
||
obten_linea( file, buffer );
|
||
if ( buffer[0] == '1' )
|
||
Hermanos.Varios.PuedVotar = 1;
|
||
else
|
||
Hermanos.Varios.PuedVotar = 0;
|
||
|
||
|
||
// printf("\n%s", buffer );
|
||
// Sexo
|
||
obten_linea( file, buffer );
|
||
|
||
// Salto de Linea
|
||
obten_linea( file, buffer );
|
||
|
||
};
|
||
|
||
void obten_linea(FILE *file, char *buf)
|
||
{
|
||
int c;
|
||
|
||
char *buffer;
|
||
|
||
buffer = buf;
|
||
|
||
*buffer = '\0';
|
||
|
||
// mientras no sea un salto de linea
|
||
while ( ( c = fgetc(file) ) != '\n' && c != EOF )
|
||
*(buffer++) = (char)c;
|
||
|
||
*(buffer++) = '\0';
|
||
};
|
||
|
||
void PreparaNuevoRegistro(void)
|
||
{
|
||
int i;
|
||
|
||
|
||
|
||
Hermanos.NHno = 0;
|
||
|
||
strcpy( Hermanos.Nombre, "" );
|
||
strcpy( Hermanos.Apellido1, "" );
|
||
strcpy( Hermanos.Apellido2, "" );
|
||
strcpy( Hermanos.Direccion, "" );
|
||
strcpy( Hermanos.Num, "" );
|
||
strcpy( Hermanos.Piso, "" );
|
||
|
||
Hermanos.CodP = 0;
|
||
|
||
strcpy( Hermanos.Poblacion, "" );
|
||
strcpy( Hermanos.Provincia, "" );
|
||
|
||
Hermanos.FechaN.da_day = 0;
|
||
Hermanos.FechaN.da_mon = 0;
|
||
Hermanos.FechaN.da_year = 0;
|
||
|
||
Hermanos.Antig.da_day = 0;
|
||
Hermanos.Antig.da_mon = 0;
|
||
Hermanos.Antig.da_year = 0;
|
||
|
||
Hermanos.Varios.Reserva = 0;
|
||
|
||
strcpy( Hermanos.Posicion, "" );
|
||
|
||
Hermanos.Insignia = 0;
|
||
|
||
strcpy( Hermanos.Telefono1, "" );
|
||
strcpy( Hermanos.Telefono2, "" );
|
||
|
||
Hermanos.Varios.CuotaFam = 0;
|
||
Hermanos.Varios.Notific = 0;
|
||
Hermanos.Varios.PuedVotar = 0;
|
||
Hermanos.Varios.RealPenit = 0;
|
||
Hermanos.Varios.TunicaHd = 0;
|
||
Hermanos.Varios.CtoVirgen = 0;
|
||
|
||
// Aqui vaciamos el comentario
|
||
for ( i=0; i<6; i++ )
|
||
strcpy( Hermanos.Comentario[i], "" );
|
||
|
||
|
||
}
|