First commit 11/11/1991
This commit is contained in:
		
							
								
								
									
										361
									
								
								AGENDA.IMG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										361
									
								
								AGENDA.IMG
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,361 @@
 | 
				
			|||||||
 | 
					** Codigo fuente para MAKE_BOTON
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					** Make BOTON es un programa realizado por Jos<6F> David Guill<6C>n
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					** Enlazar al programa principal con MB2CPP,  y compilar a OBJ para Linkar
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					** MAKE_BOTON es un producto de JD. -->>> 5.000 Libreria exelente para
 | 
				
			||||||
 | 
					**                                              tratamiento de botones y grf.
 | 
				
			||||||
 | 
					** ONDA_GRN  es un producto de JD. --->>> 5.000 Le gustaria representar ondas
 | 
				
			||||||
 | 
					**                                              sonoras con facilidad: ONDA_GRN        
 | 
				
			||||||
 | 
					**                                              UTILIZADO EN <20><><EFBFBD> FREC_OSC !!!      
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*****************************************************************************
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					*  ATENCION !!! 
 | 
				
			||||||
 | 
					*               ALTERAR ESTE FICHERO, CAUSARA EL MALFUNCIONAMIENTO DEL
 | 
				
			||||||
 | 
					*               PROGRAMA DE APOYO... ( ERRORES NO DOCUMENTADOS )
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					*****************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!1,37
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>1
 | 
				
			||||||
 | 
					* Fondo Total
 | 
				
			||||||
 | 
					& 0, 0, 639, 479,           7, 56, 63, 0, 2
 | 
				
			||||||
 | 
					* Cuadro de titulo
 | 
				
			||||||
 | 
					& 5, 5, 300,  25,           7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,        5,       2,  6,  0, 1,  Registro General de Hermanos,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Linea de fondo para ayudas
 | 
				
			||||||
 | 
					& 5, 455, 500,  475,           0, 63, 56, 0, 2
 | 
				
			||||||
 | 
					& 505, 455, 635,  475,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ 605,  5, 635,  25,           7, 63, 56,  0,  2, 000, 079
 | 
				
			||||||
 | 
					*| 609,       7,       2,  5,  0, 1,  >,
 | 
				
			||||||
 | 
					$ 570,  5, 600,  25,           7, 63, 56,  0,  2, 000, 081
 | 
				
			||||||
 | 
					*| 574,       7,       2,  5,  0, 1,  >>,
 | 
				
			||||||
 | 
					$ 535,  5, 565,  25,           7, 63, 56,  0,  2, 000, 073
 | 
				
			||||||
 | 
					*| 539,       7,       2,  5,  0, 1,  <<,
 | 
				
			||||||
 | 
					$ 500,  5, 530,  25,           7, 63, 56,  0,  2, 000, 071
 | 
				
			||||||
 | 
					*| 504,       7,       2,  5,  0, 1,  <,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ 500, 30, 565,  50,           7, 63, 56,  0,  2, 000, 000
 | 
				
			||||||
 | 
					$ 570, 30, 635,  50,           7, 63, 56,  0,  2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 10,       55,       2,  5,  0, 1, N<>mero de Hermano,
 | 
				
			||||||
 | 
					$ 150, 53, 300,  72,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,       80,       2,  5,  0, 1, Nombre,
 | 
				
			||||||
 | 
					$ 150, 78, 300,  97,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      105,       2,  5,  0, 1, Primer Apellido,
 | 
				
			||||||
 | 
					$ 150, 103, 300, 122,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 320,     105,       2,  5,  0, 1, Segundo Apellido,
 | 
				
			||||||
 | 
					$ 480, 103, 630, 122,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      130,       2,  5,  0, 1, Direcci<63>n,
 | 
				
			||||||
 | 
					$ 150, 128, 390, 147,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 390,      130,       2,  5,  0, 1,  N<>,
 | 
				
			||||||
 | 
					$ 425, 128, 460, 147,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 460,      130,       2,  5,  0, 1,    Piso,
 | 
				
			||||||
 | 
					$ 530, 128, 630, 147,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 10,      155,       2,  5,  0, 1, C.P.,
 | 
				
			||||||
 | 
					$  60, 153, 140, 172,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 150,     155,       2,  5,  0, 1, Poblaci<63>n,  
 | 
				
			||||||
 | 
					$ 230, 153, 390, 172,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,     155,       2,  5,  0, 1, Provincia,  
 | 
				
			||||||
 | 
					$ 480, 153, 630, 172,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Cuadro para enmarcar FN, Ant, R, UP, P
 | 
				
			||||||
 | 
					& 10, 180, 300, 305,           7, 56, 63, 1, 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 10,      185,       2,  5,  0, 1,  Fecha de Nacimiento,
 | 
				
			||||||
 | 
					$ 170, 183, 290, 202,          63, 56,  0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      210,       2,  5,  0, 1,  Antig<69>edad,
 | 
				
			||||||
 | 
					$ 170, 208, 290, 227,          63, 56,  0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      235,       2,  5,  0, 1,  Reserva,  
 | 
				
			||||||
 | 
					$ 271, 233, 290, 252,          63, 56,  0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      260,       2,  5,  0, 1,  Posici<63>n,
 | 
				
			||||||
 | 
					$ 150, 258, 290, 277,          63, 56,  0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      285,       2,  5,  0, 1,  Insignia,
 | 
				
			||||||
 | 
					$ 150, 283, 290, 302,          63, 56,  0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 400,      185,       2,  5,  0, 1, Tel<65>fono 1,
 | 
				
			||||||
 | 
					$ 480, 183, 630, 202,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,      210,       2,  5,  0, 1, Tel<65>fono 2,
 | 
				
			||||||
 | 
					$ 480, 208, 630, 227,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Cuadro para englobar todo lo de abajo
 | 
				
			||||||
 | 
					& 360, 230, 630, 305,           7, 56, 63, 1, 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 400,      230,       2,  5,  0, 1, <20>Realiza la est. de penitencia?,
 | 
				
			||||||
 | 
					$ 380, 232, 390, 242,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,      241,       2,  5,  0, 1, <20>Acogido a cuota familiar?,
 | 
				
			||||||
 | 
					$ 380, 243, 390, 253,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,      252,       2,  5,  0, 1, <20>Tiene posibilidad de votar?,
 | 
				
			||||||
 | 
					$ 380, 254, 390, 264,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,      263,       2,  5,  0, 1, <20>Recibe notificaciones?,
 | 
				
			||||||
 | 
					$ 380, 265, 390, 275,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,      274,       2,  5,  0, 1, <20>Posee tunica Hdad? -->,
 | 
				
			||||||
 | 
					$ 380, 276, 390, 286,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					*Numero de tunica
 | 
				
			||||||
 | 
					$ 580, 268, 625, 288,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 400,      285,       2,  5,  0, 1, <20> Cristo ?        <20> Virgen ?,
 | 
				
			||||||
 | 
					$ 380, 287, 390, 297,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					$ 520, 287, 530, 297,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Cuadro para un comentario
 | 
				
			||||||
 | 
					&  200, 310, 635, 325,           7, 56, 63, 1, 1
 | 
				
			||||||
 | 
					| 10,      310,       2,  5,  0, 1,                           Comentario,
 | 
				
			||||||
 | 
					$  200, 325, 635, 450,          63, 56,  0, 1, 1, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Cuadro de Foto
 | 
				
			||||||
 | 
					& 320,   5, 400,  100,           0, 63, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Botones Busqueda hacia atras BUSCAR delante
 | 
				
			||||||
 | 
					$ 500, 55, 540,  75,           7, 63, 56,  0,  2, 000, 082
 | 
				
			||||||
 | 
					$ 545, 55, 590,  75,           7, 63, 56,  0,  2, 000, 048
 | 
				
			||||||
 | 
					$ 595, 55, 635,  75,           7, 63, 56,  0,  2, 000, 083
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Lo de Registro general de hermanos sive para Imprimi la ficha tambien
 | 
				
			||||||
 | 
					$ 5, 5, 300,  25,           7, 63, 56, 0, 2, 000, 000
 | 
				
			||||||
 | 
					* Papeletas de sitio
 | 
				
			||||||
 | 
					$ 475, 5, 495,  75,           7, 63, 56, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>2
 | 
				
			||||||
 | 
					| 5,        5,       2,  6,  0, 1,  Registro General de Hermanos,
 | 
				
			||||||
 | 
					* Titulos de los botones
 | 
				
			||||||
 | 
					| 477,       5,       2,  5,  1, 1, Papeleta,
 | 
				
			||||||
 | 
					| 609,       7,       2,  5,  0, 1,  >,
 | 
				
			||||||
 | 
					| 574,       7,       2,  5,  0, 1,  >>,
 | 
				
			||||||
 | 
					| 539,       7,       2,  5,  0, 1,  <<,
 | 
				
			||||||
 | 
					| 504,       7,       2,  5,  0, 1,  <,
 | 
				
			||||||
 | 
					| 572,      32,       2,  5,  0, 1, F2 Menu,
 | 
				
			||||||
 | 
					| 504,      57,       2,  5,  0, 1,  <-,
 | 
				
			||||||
 | 
					| 547,      57,       2,  4,  0, 1, BUSCAR,
 | 
				
			||||||
 | 
					| 547,      58,       2,  4,  0, 1, _,
 | 
				
			||||||
 | 
					| 597,      57,       2,  5,  0, 1,   ->,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Menu Principal
 | 
				
			||||||
 | 
					<EFBFBD>10
 | 
				
			||||||
 | 
					* Fondo Total
 | 
				
			||||||
 | 
					& 0, 0, 639, 479,           7, 56, 63, 0, 2
 | 
				
			||||||
 | 
					* Cuadro de titulo
 | 
				
			||||||
 | 
					& 5, 5, 635,  30,           7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      120,       0,  1,  0,  0,          Fervorosa e Ilustre Hermandad y Cofradia de Nazarenos de,
 | 
				
			||||||
 | 
					| 5,      160,       0,  1,  0,  0,          Ntro. Padre Jesus de la Oracion en el Huerto de Getsemani,
 | 
				
			||||||
 | 
					| 5,      200,       0,  1,  0,  0,   Maria Santisima del Rosario en sus Misterios Dolorosos y San Juan Bosco,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 6,      121,       0,  1,  0, 63,          Fervorosa e Ilustre Hermandad y Cofradia de Nazarenos de,
 | 
				
			||||||
 | 
					| 6,      161,       0,  1,  0, 63,          Ntro. Padre Jesus de la Oracion en el Huerto de Getsemani,
 | 
				
			||||||
 | 
					| 6,      201,       0,  1,  0, 63,   Maria Santisima del Rosario en sus Misterios Dolorosos y San Juan Bosco,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 5,        7,       2,  6,  0, 1,  Archivo   Hermanos   Hermanas   Listados                Ayuda,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>20
 | 
				
			||||||
 | 
					&  170, 165, 470, 315,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>21
 | 
				
			||||||
 | 
					&  170, 165, 470, 270,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					* <20>                                                                      <20>
 | 
				
			||||||
 | 
					* <20>         Casilla de pregunta ( OPTAR por....  ACEPTAR CANCELAR        <20>
 | 
				
			||||||
 | 
					* <20>                                                                      <20>
 | 
				
			||||||
 | 
					* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>100
 | 
				
			||||||
 | 
					&  200, 212, 440, 267,       7,  56,  63,  2,  1
 | 
				
			||||||
 | 
					&  205, 217, 435, 262,       7,  63,  56, -2,  1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Boton Aceptar
 | 
				
			||||||
 | 
					&  200, 270, 280, 295,       7,  63,  56,  2,  1
 | 
				
			||||||
 | 
					* Boton Cancelar
 | 
				
			||||||
 | 
					&  360, 270, 440, 295,       7,  63,  56,  2,  1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>101
 | 
				
			||||||
 | 
					|       200,      274,       2,  5, 0,   63,   Aceptar,
 | 
				
			||||||
 | 
					|       201,      275,       2,  5, 0,    0,   Aceptar,
 | 
				
			||||||
 | 
					 |       200,      274,       2,  5, 0,   14,   A,
 | 
				
			||||||
 | 
					 |       201,      275,       2,  5, 0,    0,   A,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					|       340,      274,       2,  5, 0,   63,     Cancelar,
 | 
				
			||||||
 | 
					|       341,      275,       2,  5, 0,    0,     Cancelar,
 | 
				
			||||||
 | 
					 |       340,      274,       2,  5, 0,   14,     C,
 | 
				
			||||||
 | 
					 |       341,      275,       2,  5, 0,    0,     C,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!2, 2
 | 
				
			||||||
 | 
					* Boton Aceptar
 | 
				
			||||||
 | 
					$  204, 274, 276, 291,       7,  56,  63,  -2,  1, 00, 30
 | 
				
			||||||
 | 
					* Boton Cancelar
 | 
				
			||||||
 | 
					$  364, 274, 436, 291,       7,  56,  63,  -2,  1, 00, 46
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					** Esto es para cuando se va a ordenar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>3
 | 
				
			||||||
 | 
					&  170, 165, 470, 315,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!3, 10
 | 
				
			||||||
 | 
					$  172, 200, 316, 220,       7, 56, 63, 0, 2, 000, 049
 | 
				
			||||||
 | 
					$  172, 222, 316, 242,       7, 56, 63, 0, 2, 000, 024
 | 
				
			||||||
 | 
					$  172, 244, 316, 264,       7, 56, 63, 0, 2, 000, 025
 | 
				
			||||||
 | 
					$  172, 266, 316, 286,       7, 56, 63, 0, 2, 000, 032
 | 
				
			||||||
 | 
					$  172, 288, 316, 308,       7, 56, 63, 0, 2, 000, 048
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$  324, 200, 468, 220,       7, 56, 63, 0, 2, 000, 047
 | 
				
			||||||
 | 
					$  324, 222, 468, 242,       7, 56, 63, 0, 2, 000, 033
 | 
				
			||||||
 | 
					$  324, 244, 468, 264,       7, 56, 63, 0, 2, 000, 030
 | 
				
			||||||
 | 
					$  324, 266, 468, 286,       7, 56, 63, 0, 2, 000, 023
 | 
				
			||||||
 | 
					$  324, 288, 468, 308,       7, 56, 63, 0, 2, 000, 046
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>4
 | 
				
			||||||
 | 
					|  172, 167,       2,  6, 0,   63,  Elija como ordenar:,
 | 
				
			||||||
 | 
					                        
 | 
				
			||||||
 | 
					|  172, 200,       2,  5, 0,   63,  Numero de Hno,
 | 
				
			||||||
 | 
					 |  172, 202,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  172, 222,       2,  5, 0,   63,  Nombre,
 | 
				
			||||||
 | 
					 |  172, 224,       2,  5, 0,    0,   _,
 | 
				
			||||||
 | 
					|  172, 244,       2,  5, 0,   63,  Primer Apellido,
 | 
				
			||||||
 | 
					 |  172, 246,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  172, 266,       2,  5, 0,   63,  Direccion,
 | 
				
			||||||
 | 
					 |  172, 268,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  172, 288,       2,  5, 0,   63,  Poblacion,
 | 
				
			||||||
 | 
					 |  172, 290,       2,  5, 0,    0,    _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					|  324, 200,       2,  5, 0,   63,  Provincia,
 | 
				
			||||||
 | 
					 |  324, 202,       2,  5, 0,    0,     _,
 | 
				
			||||||
 | 
					|  324, 222,       2,  5, 0,   63,  Fecha Nacimiento,
 | 
				
			||||||
 | 
					 |  324, 224,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  324, 244,       2,  5, 0,   63,  Antiguedad,
 | 
				
			||||||
 | 
					 |  324, 246,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  324, 266,       2,  5, 0,   63,  Insignia,
 | 
				
			||||||
 | 
					 |  324, 268,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  320, 288,       2,  5, 0,   63,  CANCELAR OPERACION,
 | 
				
			||||||
 | 
					 |  320, 290,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>5
 | 
				
			||||||
 | 
					&  170, 165, 470, 315,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					|  172, 167,       2,  6, 0,   63,  Reordenando Base...,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>50
 | 
				
			||||||
 | 
					* Fondo Total
 | 
				
			||||||
 | 
					& 0, 0, 639, 479,           7, 56, 63, 0, 2
 | 
				
			||||||
 | 
					* Cuadro de titulo
 | 
				
			||||||
 | 
					& 5, 5, 300,  25,           7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,        5,       2,  6,  0, 1,  Registro de Insignias,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  10, 45, 315,  63,        7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 15,  45,       2,  6,  0, 1,  Insignias Cristo    Suplemento,
 | 
				
			||||||
 | 
					& 325, 45, 630,  63,        7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 340,  45,       2,  6,  0, 1, Insignias Virgen    Suplemento,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  10, 65, 315, 450,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					& 325, 65, 630, 450,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*| 15,  70,       2,  6,  0, 1,  MMMMMMMMMMMMMMM,
 | 
				
			||||||
 | 
					*| 15,  90,       2,  6,  0, 1,  MMMMMMMMMMMMMMM,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Linea de fondo para ayudas
 | 
				
			||||||
 | 
					& 5, 455, 500,  475,           0, 63, 56, 0, 2
 | 
				
			||||||
 | 
					& 505, 455, 635,  475,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>60
 | 
				
			||||||
 | 
					* Fondo Total
 | 
				
			||||||
 | 
					& 0, 0, 639, 479,           7, 56, 63, 0, 2
 | 
				
			||||||
 | 
					* Cuadro de titulo
 | 
				
			||||||
 | 
					& 5, 5, 300,  25,           7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,        5,       2,  6,  0, 1,  Listado de Hnos:,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  10, 65, 635, 450,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					&  10, 45, 635,  63,        7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Linea de fondo para ayudas
 | 
				
			||||||
 | 
					& 5, 455, 500,  475,           0, 63, 56, 0, 2
 | 
				
			||||||
 | 
					& 505, 455, 635,  475,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 500,  5, 540,  25,           7, 63, 56,  0,  2, 000, 082
 | 
				
			||||||
 | 
					& 545,  5, 590,  25,           7, 63, 56,  0,  2, 000, 048
 | 
				
			||||||
 | 
					& 595,  5, 635,  25,           7, 63, 56,  0,  2, 000, 083
 | 
				
			||||||
 | 
					| 504,       7,       2,  5,  0, 1,  <-,
 | 
				
			||||||
 | 
					| 547,       7,       2,  4,  0, 1, Imprimir,
 | 
				
			||||||
 | 
					| 547,       8,       2,  4,  0, 1, _,
 | 
				
			||||||
 | 
					| 597,       7,       2,  5,  0, 1,   ->,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!4, 3
 | 
				
			||||||
 | 
					* Botones Busqueda hacia atras BUSCAR delante
 | 
				
			||||||
 | 
					$ 500,  5, 540,  25,           7, 63, 56,  0,  2, 000, 082
 | 
				
			||||||
 | 
					$ 545,  5, 590,  25,           7, 63, 56,  0,  2, 000, 048
 | 
				
			||||||
 | 
					$ 595,  5, 635,  25,           7, 63, 56,  0,  2, 000, 083
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>70
 | 
				
			||||||
 | 
					* Fondo Total
 | 
				
			||||||
 | 
					& 0, 0, 639, 479,           7, 56, 63, 0, 2
 | 
				
			||||||
 | 
					* Cuadro de titulo
 | 
				
			||||||
 | 
					& 5, 5, 300,  25,           7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,        5,       2,  6,  0, 1,  Configuraci<63>n Global,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 270, 60, 350,  78,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,       60,       2,  6,  0, 1,  Ultimo n<>mero de Hermano:,
 | 
				
			||||||
 | 
					& 270, 80, 350,  98,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,       80,       2,  6,  0, 1,  Ultimo n<>mero de Hermana:,
 | 
				
			||||||
 | 
					& 270, 100, 350, 118,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      100,       2,  6,  0, 1,  Meses a guardar n<> hno/a:,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 380,  95, 630, 125,            7,  63, 56, 0, 2
 | 
				
			||||||
 | 
					| 390,      100,       2,  6,  0, 1, Purgar hno/as eliminados,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 270, 150, 400, 168,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      150,       2,  6,  0, 1,  Imprimir normal (HEX):   ,
 | 
				
			||||||
 | 
					& 270, 170, 400, 188,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      170,       2,  6,  0, 1,  Imprimir comprimido (HEX):,
 | 
				
			||||||
 | 
					& 270, 190, 350, 208,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      190,       2,  6,  0, 1,  Numero de lineas:,
 | 
				
			||||||
 | 
					& 270, 220, 350, 238,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      220,       2,  6,  0, 1,  Cuota base:                          Cuota familiar:,
 | 
				
			||||||
 | 
					& 550, 220, 630, 238,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 15, 315, 345, 350,            7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					|  5,      320,       2,  6,  0, 1,   Reinicializar papeletas de sitio,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  170, 165, 470, 315,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					|  175,      220,       2,  6,  0, 1,   Ficha inicial:,
 | 
				
			||||||
 | 
					&  320, 220, 460, 240,      63, 56,  7, 0, 2
 | 
				
			||||||
 | 
					|  175,      260,       2,  6,  0, 1,   Ficha final:,
 | 
				
			||||||
 | 
					&  320, 260, 460, 280,      63, 56,  7, 0, 2
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								DATOS/BDATOS.OBJ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/BDATOS.OBJ
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/HERMANAS.BAK
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/HERMANAS.BAK
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/HERMANAS.DBF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/HERMANAS.DBF
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/HERMANAS.DFB
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/HERMANAS.DFB
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										8862
									
								
								DATOS/HERMANAS.TXT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8862
									
								
								DATOS/HERMANAS.TXT
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/HERMANOS.BAK
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/HERMANOS.BAK
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/HERMANOS.DBF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/HERMANOS.DBF
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/HERMANOS.DFB
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/HERMANOS.DFB
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										13363
									
								
								DATOS/HERMANOS.TXT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13363
									
								
								DATOS/HERMANOS.TXT
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/HNAS_BRR.BAK
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/HNAS_BRR.BAK
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/HNAS_BRR.DBF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/HNAS_BRR.DBF
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/HNOS_BRR.BAK
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/HNOS_BRR.BAK
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/HNOS_BRR.DBF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/HNOS_BRR.DBF
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										269
									
								
								DATOS/MBD2DBF.BAK
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										269
									
								
								DATOS/MBD2DBF.BAK
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,269 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					#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( "hermanas.txt", "r" ) ) != NULL )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  Dbf.AbrirReg( "hermanas.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<63>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<63>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<63>n
 | 
				
			||||||
 | 
					  obten_linea( file, buffer );
 | 
				
			||||||
 | 
					  strncpy( Hermanos.Posicion, buffer, 15 );
 | 
				
			||||||
 | 
					  Hermanos.Posicion[16] = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// printf("\n%s", buffer );
 | 
				
			||||||
 | 
					//         Posici<63>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<65>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], "" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										269
									
								
								DATOS/MBD2DBF.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										269
									
								
								DATOS/MBD2DBF.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,269 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					#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<63>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<63>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<63>n
 | 
				
			||||||
 | 
					  obten_linea( file, buffer );
 | 
				
			||||||
 | 
					  strncpy( Hermanos.Posicion, buffer, 15 );
 | 
				
			||||||
 | 
					  Hermanos.Posicion[16] = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// printf("\n%s", buffer );
 | 
				
			||||||
 | 
					//         Posici<63>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<65>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], "" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										269
									
								
								DATOS/MBD2DBF.DFB
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										269
									
								
								DATOS/MBD2DBF.DFB
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,269 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					#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( "hermanas.txt", "r" ) ) != NULL )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  Dbf.AbrirReg( "hermanas.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<63>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<63>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<63>n
 | 
				
			||||||
 | 
					  obten_linea( file, buffer );
 | 
				
			||||||
 | 
					  strncpy( Hermanos.Posicion, buffer, 15 );
 | 
				
			||||||
 | 
					  Hermanos.Posicion[16] = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// printf("\n%s", buffer );
 | 
				
			||||||
 | 
					//         Posici<63>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<65>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], "" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								DATOS/MBD2DBF.OBJ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/MBD2DBF.OBJ
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/MDB2DBF.DSK
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/MDB2DBF.DSK
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/MDB2DBF.EXE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/MDB2DBF.EXE
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/MDB2DBF.PRJ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/MDB2DBF.PRJ
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/TODOS/BASE1.MDB
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/TODOS/BASE1.MDB
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/TODOS/BASE2.MDB
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/TODOS/BASE2.MDB
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/TODOS/BASE3.MDB
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/TODOS/BASE3.MDB
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										19
									
								
								DATOS/TODOS/CAMPOS.TIA
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								DATOS/TODOS/CAMPOS.TIA
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					Numero
 | 
				
			||||||
 | 
					Nombre
 | 
				
			||||||
 | 
					Apellido1
 | 
				
			||||||
 | 
					Apellido2
 | 
				
			||||||
 | 
					Direcci<EFBFBD>n
 | 
				
			||||||
 | 
					CP
 | 
				
			||||||
 | 
					Poblaci<EFBFBD>n
 | 
				
			||||||
 | 
					Provincia
 | 
				
			||||||
 | 
					Telefono1
 | 
				
			||||||
 | 
					Telefono2
 | 
				
			||||||
 | 
					Antig<EFBFBD>edad
 | 
				
			||||||
 | 
					Fecha de nacimiento
 | 
				
			||||||
 | 
					Reserva
 | 
				
			||||||
 | 
					Ultima posici<63>n
 | 
				
			||||||
 | 
					Posici<EFBFBD>n
 | 
				
			||||||
 | 
					Cuota familiar
 | 
				
			||||||
 | 
					Bolet<EFBFBD>n
 | 
				
			||||||
 | 
					Vota
 | 
				
			||||||
 | 
					Sexo
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								DATOS/TODOS/CSLTA1.QRY
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/TODOS/CSLTA1.QRY
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANAS.DOC
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANAS.DOC
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANAS.JD
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANAS.JD
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANAS.LDB
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANAS.LDB
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANAS.MDB
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANAS.MDB
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										8862
									
								
								DATOS/TODOS/HERMANAS.TXT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8862
									
								
								DATOS/TODOS/HERMANAS.TXT
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANOS.DOC
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANOS.DOC
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANOS.LDB
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANOS.LDB
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANOS.MDB
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/TODOS/HERMANOS.MDB
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										13363
									
								
								DATOS/TODOS/HERMANOS.TXT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13363
									
								
								DATOS/TODOS/HERMANOS.TXT
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								EGAVGA.BGI
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								EGAVGA.BGI
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								FOTOS/HO-00001.PCX
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								FOTOS/HO-00001.PCX
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										133
									
								
								HERM.H
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								HERM.H
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,133 @@
 | 
				
			|||||||
 | 
					#include <dos.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BLANCO EGA_WHITE
 | 
				
			||||||
 | 
					#define ENCUADRE       3
 | 
				
			||||||
 | 
					#define SEC_OPTAR      5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define VOTANTES             1
 | 
				
			||||||
 | 
					#define ACOGIDOS_CUOT        2
 | 
				
			||||||
 | 
					#define RECIBE_NOTIFIC       3
 | 
				
			||||||
 | 
					#define PAPELETAS_SITIO      4
 | 
				
			||||||
 | 
					#define GRAL_HERM_RAP        5
 | 
				
			||||||
 | 
					#define GRAL_HERMANOS        6
 | 
				
			||||||
 | 
					#define TUNICA_HDAD          7
 | 
				
			||||||
 | 
					#define FACTURAS             8
 | 
				
			||||||
 | 
					#define ETIQUETAS            9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ALTAS     1
 | 
				
			||||||
 | 
					#define BAJAS     2
 | 
				
			||||||
 | 
					#define CONSULTAS 3
 | 
				
			||||||
 | 
					#define REORDENAR 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define HERMANOS         0
 | 
				
			||||||
 | 
					#define HERMANAS         1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define NORMAL           1
 | 
				
			||||||
 | 
					#define INTENSO          0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BLANCO     EGA_WHITE
 | 
				
			||||||
 | 
					#define NEGRO                  0
 | 
				
			||||||
 | 
					#define ROJO       EGA_RED
 | 
				
			||||||
 | 
					#define AZUL       EGA_BLUE
 | 
				
			||||||
 | 
					#define GRIS_CLARO EGA_LIGHTGRAY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Acceso a las funciones internas de MAKE_BOTON
 | 
				
			||||||
 | 
						struct Make_Boton {
 | 
				
			||||||
 | 
						       /*	unsigned */         int Up,  Left, Down, Right;
 | 
				
			||||||
 | 
							unsigned char Cdf, Cb1,  Cb2;
 | 
				
			||||||
 | 
							unsigned char Ab,  Pb;
 | 
				
			||||||
 | 
							unsigned char Isc, Sc;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					extern	struct Make_Boton far *Botones;			 // Puntero a estructura
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern	int Secuencias,  *n_Botones_Secuencia;
 | 
				
			||||||
 | 
					extern	void Imprime_Boton(int D_Bord, struct Make_Boton Bot_Imp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Error(char *cError);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct VARIOS
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  unsigned int CuotaFam : 1;             // Acogido a cuota familiar
 | 
				
			||||||
 | 
					  unsigned int Notific  : 1;             // Recibe notificaciones
 | 
				
			||||||
 | 
					  unsigned int PuedVotar: 1;             // Puede Votar
 | 
				
			||||||
 | 
					  unsigned int TunicaHd : 1;             // Posse Tunica de Hermandad
 | 
				
			||||||
 | 
					  unsigned int RealPenit: 1;             // Realizo est. de penitencia
 | 
				
			||||||
 | 
					  unsigned int CtoVirgen: 1;             // Cristo o Virgen
 | 
				
			||||||
 | 
					  unsigned int Reserva  : 1;             // Futura ampliacion
 | 
				
			||||||
 | 
					  unsigned int FA2      : 1;             // Futura ampliaci<63>n
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 long NHno;             // N<> de hermano
 | 
				
			||||||
 | 
					 char Nombre[15+1];             // Nombre               15 dig.
 | 
				
			||||||
 | 
					 char Apellido1[15+1];          // 1er Apellido         15 dig.
 | 
				
			||||||
 | 
					 char Apellido2[15+1];          // 2er Apellido         15 dig.
 | 
				
			||||||
 | 
					 char Direccion[29+1];          // Direccion            20 dig.
 | 
				
			||||||
 | 
					 char Num[3+1];                 // N<>                    3 dig.
 | 
				
			||||||
 | 
					 char Piso[5+1];                // Piso/Letra            5 dig.
 | 
				
			||||||
 | 
					 long CodP;                     // C.P.
 | 
				
			||||||
 | 
					 char Poblacion[15+1];          // Poblacion            15 dig.
 | 
				
			||||||
 | 
					 char Provincia[15+1];          // Provincia            15 dig.
 | 
				
			||||||
 | 
					 char Telefono1[15+1];          // Telefono 1           15 dig.
 | 
				
			||||||
 | 
					 char Telefono2[15+1];          // Telefono 2           15 dig.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 struct date FechaN;            // Fecha de Nacimiento
 | 
				
			||||||
 | 
					 struct date Antig;             // Antig<69>edad
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char Posicion[15+1];           // Posici<63>n
 | 
				
			||||||
 | 
					 char Insignia;                 // Insignia
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 long NTunica;                  // n<> tunica de hermandad
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char Comentario[6][50];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 struct VARIOS Varios;          // Campos varios
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} HermStruct;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Estructura donde estan contenidas las insignias
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char NInsignia[29+1];
 | 
				
			||||||
 | 
					 long Suplemento;
 | 
				
			||||||
 | 
					} INSIGNIAS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Esta es la structura donde se guarda la configuraci<63>n del programa
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char config_color;             // Configura que paleta usa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char item_ordenado[2];         // item por el que esta ordenado
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int TiempoBorrados;            // Tiempo que hay que mantener los items, borrados
 | 
				
			||||||
 | 
					 long NHnoHna[2];                // Numero de Hermanos, Hermanas
 | 
				
			||||||
 | 
					 int LineasImpresion;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 INSIGNIAS Insignia[40];        // 20 Para Virgen y 20 Cristo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char ImpNormal[20];
 | 
				
			||||||
 | 
					 char ImpCompr[20];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 long CuotaBaseFam[2];
 | 
				
			||||||
 | 
					 int MesVotacion;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char HoraSalida[10];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char FA[100];
 | 
				
			||||||
 | 
					} CONFIG;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  long NHerm;
 | 
				
			||||||
 | 
					  struct date FechaBorrado;
 | 
				
			||||||
 | 
					} HERMBORRADOS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int Optar( int optar, ... );
 | 
				
			||||||
 | 
					int InputCadenaG_T5(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0, int X1, int Y1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int Comprueba_Impresora(void);
 | 
				
			||||||
 | 
					int file_exists(char *filename);
 | 
				
			||||||
							
								
								
									
										408
									
								
								HERM.IMG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										408
									
								
								HERM.IMG
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,408 @@
 | 
				
			|||||||
 | 
					** Codigo fuente para MAKE_BOTON
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					** Make BOTON es un programa realizado por Jos<6F> David Guill<6C>n
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					** Enlazar al programa principal con MB2CPP,  y compilar a OBJ para Linkar
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					** MAKE_BOTON es un producto de JD. -->>> 5.000 Libreria exelente para
 | 
				
			||||||
 | 
					**                                              tratamiento de botones y grf.
 | 
				
			||||||
 | 
					** ONDA_GRN  es un producto de JD. --->>> 5.000 Le gustaria representar ondas
 | 
				
			||||||
 | 
					**                                              sonoras con facilidad: ONDA_GRN        
 | 
				
			||||||
 | 
					**                                              UTILIZADO EN <20><><EFBFBD> FREC_OSC !!!      
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*****************************************************************************
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					*  ATENCION !!! 
 | 
				
			||||||
 | 
					*               ALTERAR ESTE FICHERO, CAUSARA EL MALFUNCIONAMIENTO DEL
 | 
				
			||||||
 | 
					*               PROGRAMA DE APOYO... ( ERRORES NO DOCUMENTADOS )
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					*****************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!1, 37
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>1
 | 
				
			||||||
 | 
					* Fondo Total
 | 
				
			||||||
 | 
					& 0, 0, 639, 479,           7, 56, 63, 0, 2
 | 
				
			||||||
 | 
					* Cuadro de titulo
 | 
				
			||||||
 | 
					& 5, 5, 300,  25,           7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,        5,       2,  6,  0, 1,  Registro General de Hermanos,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Linea de fondo para ayudas
 | 
				
			||||||
 | 
					& 5, 455, 500,  475,           0, 63, 56, 0, 2
 | 
				
			||||||
 | 
					& 505, 455, 635,  475,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ 605,  5, 635,  25,           7, 63, 56,  0,  2, 000, 079 *  >
 | 
				
			||||||
 | 
					$ 570,  5, 600,  25,           7, 63, 56,  0,  2, 000, 081 * >>
 | 
				
			||||||
 | 
					$ 535,  5, 565,  25,           7, 63, 56,  0,  2, 000, 073 * <<
 | 
				
			||||||
 | 
					$ 500,  5, 530,  25,           7, 63, 56,  0,  2, 000, 071 * <
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ 500, 30, 565,  50,           7, 63, 56,  0,  2, 000, 000
 | 
				
			||||||
 | 
					$ 570, 30, 635,  50,           7, 63, 56,  0,  2, 000, 060
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 10,       55,       2,  5,  0, 1, N<>mero de Hermano,
 | 
				
			||||||
 | 
					$ 150, 53, 300,  72,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,       80,       2,  5,  0, 1, Nombre,
 | 
				
			||||||
 | 
					$ 150, 78, 300,  97,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      105,       2,  5,  0, 1, Primer Apellido,
 | 
				
			||||||
 | 
					$ 150, 103, 300, 122,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 320,     105,       2,  5,  0, 1, Segundo Apellido,
 | 
				
			||||||
 | 
					$ 480, 103, 630, 122,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      130,       2,  5,  0, 1, Direcci<63>n,
 | 
				
			||||||
 | 
					$ 150, 128, 390, 147,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 390,      130,       2,  5,  0, 1,  N<>,
 | 
				
			||||||
 | 
					$ 425, 128, 460, 147,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 460,      130,       2,  5,  0, 1,    Piso,
 | 
				
			||||||
 | 
					$ 530, 128, 630, 147,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 10,      155,       2,  5,  0, 1, C.P.,
 | 
				
			||||||
 | 
					$  60, 153, 140, 172,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 150,     155,       2,  5,  0, 1, Poblaci<63>n,  
 | 
				
			||||||
 | 
					$ 230, 153, 390, 172,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,     155,       2,  5,  0, 1, Provincia,  
 | 
				
			||||||
 | 
					$ 480, 153, 630, 172,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Cuadro para enmarcar FN, Ant, R, UP, P
 | 
				
			||||||
 | 
					& 10, 180, 300, 305,           7, 56, 63, 1, 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 10,      185,       2,  5,  0, 1,  Fecha de Nacimiento,
 | 
				
			||||||
 | 
					$ 170, 183, 290, 202,          63, 56,  0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      210,       2,  5,  0, 1,  Antig<69>edad,
 | 
				
			||||||
 | 
					$ 170, 208, 290, 227,          63, 56,  0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      235,       2,  5,  0, 1,  Reserva,  
 | 
				
			||||||
 | 
					$ 271, 233, 290, 252,          63, 56,  0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      260,       2,  5,  0, 1,  Posici<63>n,
 | 
				
			||||||
 | 
					$ 150, 258, 290, 277,          63, 56,  0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 10,      285,       2,  5,  0, 1,  Insignia,
 | 
				
			||||||
 | 
					$ 150, 283, 290, 302,          63, 56,  0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 400,      185,       2,  5,  0, 1, Tel<65>fono 1,
 | 
				
			||||||
 | 
					$ 480, 183, 630, 202,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,      210,       2,  5,  0, 1, Tel<65>fono 2,
 | 
				
			||||||
 | 
					$ 480, 208, 630, 227,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Cuadro para englobar todo lo de abajo
 | 
				
			||||||
 | 
					& 360, 230, 630, 305,           7, 56, 63, 1, 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 400,      230,       2,  5,  0, 1, <20>Realiza la est. de penitencia?,
 | 
				
			||||||
 | 
					$ 380, 232, 390, 242,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,      241,       2,  5,  0, 1, <20>Acogido a cuota familiar?,
 | 
				
			||||||
 | 
					$ 380, 243, 390, 253,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,      252,       2,  5,  0, 1, <20>Tiene posibilidad de votar?,
 | 
				
			||||||
 | 
					$ 380, 254, 390, 264,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,      263,       2,  5,  0, 1, <20>Recibe notificaciones?,
 | 
				
			||||||
 | 
					$ 380, 265, 390, 275,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					| 400,      274,       2,  5,  0, 1, <20>Posee tunica Hdad? -->,
 | 
				
			||||||
 | 
					$ 380, 276, 390, 286,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					*Numero de tunica
 | 
				
			||||||
 | 
					$ 580, 268, 625, 288,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 400,      285,       2,  5,  0, 1, <20> Cristo ?        <20> Virgen ?,
 | 
				
			||||||
 | 
					$ 380, 287, 390, 297,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					$ 520, 287, 530, 297,          63,  56, 0, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Cuadro para un comentario
 | 
				
			||||||
 | 
					&  200, 310, 635, 325,           7, 56, 63, 1, 1
 | 
				
			||||||
 | 
					| 10,      310,       2,  5,  0, 1,                           Comentario,
 | 
				
			||||||
 | 
					$  200, 325, 635, 450,          63, 56,  0, 1, 1, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Cuadro de Foto
 | 
				
			||||||
 | 
					& 320,   5, 400,  100,           0, 63, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Botones Busqueda hacia atras BUSCAR delante
 | 
				
			||||||
 | 
					$ 500, 55, 540,  75,           7, 63, 56,  0,  2, 000,  82
 | 
				
			||||||
 | 
					$ 545, 55, 590,  75,           7, 63, 56,  0,  2, 000,  48
 | 
				
			||||||
 | 
					$ 595, 55, 635,  75,           7, 63, 56,  0,  2, 000,  83
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Lo de Registro general de hermanos sive para Imprimi la ficha tambien
 | 
				
			||||||
 | 
					$ 5, 5, 300,  25,           7, 63, 56, 0, 2, 000, 000
 | 
				
			||||||
 | 
					* Papeletas de sitio
 | 
				
			||||||
 | 
					$ 475, 5, 495,  75,           7, 63, 56, 0, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>2
 | 
				
			||||||
 | 
					| 5,        5,       2,  6,  0, 1,  Registro General de Hermanos,
 | 
				
			||||||
 | 
					* Titulos de los botones
 | 
				
			||||||
 | 
					| 477,       5,       2,  5,  1, 1, Papeleta,
 | 
				
			||||||
 | 
					| 609,       7,       2,  5,  0, 1,  >,
 | 
				
			||||||
 | 
					| 574,       7,       2,  5,  0, 1,  >>,
 | 
				
			||||||
 | 
					| 539,       7,       2,  5,  0, 1,  <<,
 | 
				
			||||||
 | 
					| 504,       7,       2,  5,  0, 1,  <,
 | 
				
			||||||
 | 
					| 572,      32,       2,  5,  0, 1, F2 Menu,
 | 
				
			||||||
 | 
					| 504,      57,       2,  5,  0, 1,  <-,
 | 
				
			||||||
 | 
					| 547,      57,       2,  4,  0, 1, BUSCAR,
 | 
				
			||||||
 | 
					| 547,      58,       2,  4,  0, 1, _,
 | 
				
			||||||
 | 
					| 597,      57,       2,  5,  0, 1,   ->,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Menu Principal
 | 
				
			||||||
 | 
					<EFBFBD>10
 | 
				
			||||||
 | 
					* Fondo Total
 | 
				
			||||||
 | 
					& 0, 0, 639, 479,           7, 56, 63, 0, 2
 | 
				
			||||||
 | 
					* Cuadro de titulo
 | 
				
			||||||
 | 
					& 5, 5, 635,  30,           7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      120,       0,  1,  0,  0,          Fervorosa e Ilustre Hermandad y Cofradia de Nazarenos de,
 | 
				
			||||||
 | 
					| 5,      160,       0,  1,  0,  0,          Ntro. Padre Jesus de la Oracion en el Huerto de Getsemani,
 | 
				
			||||||
 | 
					| 5,      200,       0,  1,  0,  0,   Maria Santisima del Rosario en sus Misterios Dolorosos y San Juan Bosco,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 6,      121,       0,  1,  0, 63,          Fervorosa e Ilustre Hermandad y Cofradia de Nazarenos de,
 | 
				
			||||||
 | 
					| 6,      161,       0,  1,  0, 63,          Ntro. Padre Jesus de la Oracion en el Huerto de Getsemani,
 | 
				
			||||||
 | 
					| 6,      201,       0,  1,  0, 63,   Maria Santisima del Rosario en sus Misterios Dolorosos y San Juan Bosco,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 5,        7,       2,  6,  0, 1,  Archivo   Hermanos   Hermanas   Listados                Ayuda,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>20
 | 
				
			||||||
 | 
					&  170, 165, 470, 315,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>21
 | 
				
			||||||
 | 
					&  170, 165, 470, 270,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					* <20>                                                                      <20>
 | 
				
			||||||
 | 
					* <20>         Casilla de pregunta ( OPTAR por....  ACEPTAR CANCELAR        <20>
 | 
				
			||||||
 | 
					* <20>                                                                      <20>
 | 
				
			||||||
 | 
					* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>100
 | 
				
			||||||
 | 
					&  200, 212, 440, 267,       7,  56,  63,  2,  1
 | 
				
			||||||
 | 
					&  205, 217, 435, 262,       7,  63,  56, -2,  1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Boton Aceptar
 | 
				
			||||||
 | 
					&  200, 270, 280, 295,       7,  63,  56,  2,  1
 | 
				
			||||||
 | 
					* Boton Cancelar
 | 
				
			||||||
 | 
					&  360, 270, 440, 295,       7,  63,  56,  2,  1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>101
 | 
				
			||||||
 | 
					|       200,      274,       2,  5, 0,   63,   Aceptar,
 | 
				
			||||||
 | 
					|       201,      275,       2,  5, 0,    0,   Aceptar,
 | 
				
			||||||
 | 
					 |       200,      274,       2,  5, 0,   14,   A,
 | 
				
			||||||
 | 
					 |       201,      275,       2,  5, 0,    0,   A,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					|       340,      274,       2,  5, 0,   63,     Cancelar,
 | 
				
			||||||
 | 
					|       341,      275,       2,  5, 0,    0,     Cancelar,
 | 
				
			||||||
 | 
					 |       340,      274,       2,  5, 0,   14,     C,
 | 
				
			||||||
 | 
					 |       341,      275,       2,  5, 0,    0,     C,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!2, 2
 | 
				
			||||||
 | 
					* Boton Aceptar
 | 
				
			||||||
 | 
					$  204, 274, 276, 291,       7,  56,  63,  2,  1, 00, 30
 | 
				
			||||||
 | 
					* Boton Cancelar
 | 
				
			||||||
 | 
					$  364, 274, 436, 291,       7,  56,  63,  2,  1, 00, 46
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					** Esto es para cuando se va a ordenar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>3
 | 
				
			||||||
 | 
					&  170, 165, 470, 315,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!3, 10
 | 
				
			||||||
 | 
					$  172, 200, 316, 220,       7, 56, 63, 0, 2, 000,  49
 | 
				
			||||||
 | 
					$  172, 222, 316, 242,       7, 56, 63, 0, 2, 000,  24
 | 
				
			||||||
 | 
					$  172, 244, 316, 264,       7, 56, 63, 0, 2, 000,  25
 | 
				
			||||||
 | 
					$  172, 266, 316, 286,       7, 56, 63, 0, 2, 000,  32
 | 
				
			||||||
 | 
					$  172, 288, 316, 308,       7, 56, 63, 0, 2, 000,  48
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$  324, 200, 468, 220,       7, 56, 63, 0, 2, 000,  47
 | 
				
			||||||
 | 
					$  324, 222, 468, 242,       7, 56, 63, 0, 2, 000,  33
 | 
				
			||||||
 | 
					$  324, 244, 468, 264,       7, 56, 63, 0, 2, 000,  30
 | 
				
			||||||
 | 
					$  324, 266, 468, 286,       7, 56, 63, 0, 2, 000,  23
 | 
				
			||||||
 | 
					$  324, 288, 468, 308,       7, 56, 63, 0, 2, 000,  46
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>4
 | 
				
			||||||
 | 
					|  172, 167,       2,  6, 0,   63,  Elija como ordenar:,
 | 
				
			||||||
 | 
					                        
 | 
				
			||||||
 | 
					|  172, 200,       2,  5, 0,   63,  Numero de Hno,
 | 
				
			||||||
 | 
					 |  172, 202,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  172, 222,       2,  5, 0,   63,  Nombre,
 | 
				
			||||||
 | 
					 |  172, 224,       2,  5, 0,    0,   _,
 | 
				
			||||||
 | 
					|  172, 244,       2,  5, 0,   63,  Primer Apellido,
 | 
				
			||||||
 | 
					 |  172, 246,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  172, 266,       2,  5, 0,   63,  Direccion,
 | 
				
			||||||
 | 
					 |  172, 268,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  172, 288,       2,  5, 0,   63,  Poblacion,
 | 
				
			||||||
 | 
					 |  172, 290,       2,  5, 0,    0,    _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					|  324, 200,       2,  5, 0,   63,  Provincia,
 | 
				
			||||||
 | 
					 |  324, 202,       2,  5, 0,    0,     _,
 | 
				
			||||||
 | 
					|  324, 222,       2,  5, 0,   63,  Fecha Nacimiento,
 | 
				
			||||||
 | 
					 |  324, 224,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  324, 244,       2,  5, 0,   63,  Antiguedad,
 | 
				
			||||||
 | 
					 |  324, 246,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  324, 266,       2,  5, 0,   63,  Insignia,
 | 
				
			||||||
 | 
					 |  324, 268,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					|  320, 288,       2,  5, 0,   63,  CANCELAR OPERACION,
 | 
				
			||||||
 | 
					 |  320, 290,       2,  5, 0,    0,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>5
 | 
				
			||||||
 | 
					&  170, 165, 470, 315,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					|  172, 167,       2,  6, 0,   63,  Reordenando Base...,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>50
 | 
				
			||||||
 | 
					* Fondo Total
 | 
				
			||||||
 | 
					& 0, 0, 639, 479,           7, 56, 63, 0, 2
 | 
				
			||||||
 | 
					* Cuadro de titulo
 | 
				
			||||||
 | 
					& 5, 5, 300,  25,           7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,        5,       2,  6,  0, 1,  Registro de Insignias,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  10, 45, 315,  63,        7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 15,  45,       2,  6,  0, 1,  Insignias Cristo    Suplemento,
 | 
				
			||||||
 | 
					& 325, 45, 630,  63,        7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 340,  45,       2,  6,  0, 1, Insignias Virgen    Suplemento,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  10, 65, 315, 450,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					& 325, 65, 630, 450,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*| 15,  70,       2,  6,  0, 1,  MMMMMMMMMMMMMMM,
 | 
				
			||||||
 | 
					*| 15,  90,       2,  6,  0, 1,  MMMMMMMMMMMMMMM,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Linea de fondo para ayudas
 | 
				
			||||||
 | 
					& 5, 455, 500,  475,           0, 63, 56, 0, 2
 | 
				
			||||||
 | 
					& 505, 455, 635,  475,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>60
 | 
				
			||||||
 | 
					* Fondo Total
 | 
				
			||||||
 | 
					& 0, 0, 639, 479,           7, 56, 63, 0, 2
 | 
				
			||||||
 | 
					* Cuadro de titulo
 | 
				
			||||||
 | 
					& 5, 5, 300,  25,           7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,        5,       2,  6,  0, 1,  Listado de Hnos:,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  10, 65, 635, 450,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					&  10, 45, 635,  63,        7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Linea de fondo para ayudas
 | 
				
			||||||
 | 
					& 5, 455, 500,  475,           0, 63, 56, 0, 2
 | 
				
			||||||
 | 
					& 505, 455, 635,  475,        63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 500,  5, 540,  25,           7, 63, 56,  0,  2
 | 
				
			||||||
 | 
					& 545,  5, 590,  25,           7, 63, 56,  0,  2
 | 
				
			||||||
 | 
					& 595,  5, 635,  25,           7, 63, 56,  0,  2
 | 
				
			||||||
 | 
					| 504,       7,       2,  5,  0, 1,  <-,
 | 
				
			||||||
 | 
					| 547,       7,       2,  4,  0, 1, Imprimir,
 | 
				
			||||||
 | 
					| 547,       8,       2,  4,  0, 1, _,
 | 
				
			||||||
 | 
					| 597,       7,       2,  5,  0, 1,   ->,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!4, 3
 | 
				
			||||||
 | 
					* Botones Busqueda hacia atras BUSCAR delante
 | 
				
			||||||
 | 
					$ 500,  5, 540,  25,           7, 63, 56,  0,  2, 000,  75
 | 
				
			||||||
 | 
					$ 545,  5, 590,  25,           7, 63, 56,  0,  2, 000,  23
 | 
				
			||||||
 | 
					$ 595,  5, 635,  25,           7, 63, 56,  0,  2, 000,  77
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>70
 | 
				
			||||||
 | 
					* Fondo Total
 | 
				
			||||||
 | 
					& 0, 0, 639, 479,           7, 56, 63, 0, 2
 | 
				
			||||||
 | 
					* Cuadro de titulo
 | 
				
			||||||
 | 
					& 5, 5, 300,  25,           7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,        5,       2,  6,  0, 1,  Configuraci<63>n Global,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 270, 60, 350,  78,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,       60,       2,  6,  0, 1,  Ultimo n<>mero de Hermano:,
 | 
				
			||||||
 | 
					& 270, 80, 350,  98,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,       80,       2,  6,  0, 1,  Ultimo n<>mero de Hermana:,
 | 
				
			||||||
 | 
					& 270, 100, 350, 118,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      100,       2,  6,  0, 1,  Meses a guardar n<> hno/a:,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 380,  95, 630, 125,            7,  63, 56, 0, 2
 | 
				
			||||||
 | 
					| 390,      100,       2,  6,  0, 1, Purgar hno/as eliminados,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 270, 150, 400, 168,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      150,       2,  6,  0, 1,  Imprimir normal (HEX):   ,
 | 
				
			||||||
 | 
					& 270, 170, 400, 188,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      170,       2,  6,  0, 1,  Imprimir comprimido (HEX):,
 | 
				
			||||||
 | 
					& 270, 190, 350, 208,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      190,       2,  6,  0, 1,  Numero de lineas:,
 | 
				
			||||||
 | 
					& 270, 220, 350, 238,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					| 5,      220,       2,  6,  0, 1,  Cuota base:                          Cuota familiar:,
 | 
				
			||||||
 | 
					& 550, 220, 630, 238,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| 5,      250,       2,  6,  0, 1,  Mes Votaci<63>n:                        Hora Salida:,
 | 
				
			||||||
 | 
					& 270, 250, 350, 268,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 550, 250, 630, 268,           63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 15, 315, 345, 350,            7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					|  5,      320,       2,  6,  0, 1,   Reinicializar papeletas de sitio,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					************************************************  Botones D:   5
 | 
				
			||||||
 | 
					****                                        ****  Botones S:
 | 
				
			||||||
 | 
					**          Parte Utilizada por Optar         **
 | 
				
			||||||
 | 
					****                                        ****
 | 
				
			||||||
 | 
					************************************************
 | 
				
			||||||
 | 
					!5, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$  170, 320, 270, 350,       7, 63, 56, 2, 2, 000,  30
 | 
				
			||||||
 | 
					$  370, 320, 470, 350,       7, 63, 56, 2, 2, 000,  46
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>150
 | 
				
			||||||
 | 
					&  170, 165, 470, 315,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  170, 320, 270, 350,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  175, 325,                 2,  6,  0, 63,  Aceptar,
 | 
				
			||||||
 | 
					|  176, 326,                 2,  6,  0,  0,  Aceptar,
 | 
				
			||||||
 | 
					|  175, 327,                 2,  6,  0, 63,  _,
 | 
				
			||||||
 | 
					|  176, 328,                 2,  6,  0,  0,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  370, 320, 470, 350,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  373, 325,                 2,  6,  0, 63,  Cancelar,
 | 
				
			||||||
 | 
					|  374, 326,                 2,  6,  0,  0,  Cancelar,
 | 
				
			||||||
 | 
					|  373, 327,                 2,  6,  0, 63,  _,
 | 
				
			||||||
 | 
					|  374, 328,                 2,  6,  0,  0,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Buscar...
 | 
				
			||||||
 | 
					<EFBFBD>300
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  255, 199, 310, 217,      63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					&  365, 199, 465, 217,      63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					|  170, 200,                 2,  5,  0, 63,  N<> Hno:            Tlf.:,
 | 
				
			||||||
 | 
					|  171, 201,                 2,  5,  0,  0,  N<> Hno:            Tlf.:,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  255, 219, 360, 237,      63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					|  170, 220,                 2,  5,  0, 63,  Nombre:,
 | 
				
			||||||
 | 
					|  171, 221,                 2,  5,  0,  0,  Nombre:,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  255, 239, 360, 257,      63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					&  365, 239, 465, 257,      63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					|  170, 240,                 2,  5,  0, 63,  Apellido:,
 | 
				
			||||||
 | 
					|  171, 241,                 2,  5,  0,  0,  Apellido:,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  255, 259, 465, 277,      63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					|  170, 260,                 2,  5,  0, 63,  Direcci<63>n:,
 | 
				
			||||||
 | 
					|  171, 261,                 2,  5,  0,  0,  Direcci<63>n:,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  225, 279, 320, 297,      63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					&  365, 279, 465, 297,      63,  7, 56, 0, 2
 | 
				
			||||||
 | 
					|  170, 280,                 2,  5,  0, 63,  F.Nac:             Antig:,
 | 
				
			||||||
 | 
					|  171, 281,                 2,  5,  0,  0,  F.Nac:             Antig:,
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								HERMANDA.CFG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								HERMANDA.CFG
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										411
									
								
								HERM_CFG.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										411
									
								
								HERM_CFG.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,411 @@
 | 
				
			|||||||
 | 
					 /*************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                         *|
 | 
				
			||||||
 | 
					|*  HERM_CFG                                                               *|
 | 
				
			||||||
 | 
					|*                                                                         *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                           *|
 | 
				
			||||||
 | 
					|*               M<>dulo para mantener la configuraci<63>n.                    *|
 | 
				
			||||||
 | 
					|*                                                                         *|
 | 
				
			||||||
 | 
					|*                                        Fecha:  21-07-96  14.34 / 18.00  *|
 | 
				
			||||||
 | 
					|*                                                          23.13 / 00.30  *|
 | 
				
			||||||
 | 
					 \*************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <conio.h>
 | 
				
			||||||
 | 
					#include <alloc.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <graphics.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "..\libs\make_bot\make_bot.h"
 | 
				
			||||||
 | 
					#include "..\libs\bdatos\bdatos.hh"
 | 
				
			||||||
 | 
					#include "Herm.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int far Espera_TeclaRaton(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG Config;
 | 
				
			||||||
 | 
					BDatos BConfig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int DifDate( struct date FechaF, struct date FechaO, struct date *FechaD );
 | 
				
			||||||
 | 
					extern struct date FechaActual;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern char FICHA_REGISTRO;
 | 
				
			||||||
 | 
					extern int ComparaRegistros( const void *A, const void *B );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CompruebaTiempoBorrados( char *File );
 | 
				
			||||||
 | 
					void MarcaConfig( int item, int como );
 | 
				
			||||||
 | 
					void EditConfig( int item );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LeeConfiguracion(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  long i;
 | 
				
			||||||
 | 
					  BDatos GHtmp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if ( BConfig.AbrirReg( "hermandad.cfg", sizeof( Config ) ) != OK )
 | 
				
			||||||
 | 
					       Error(BConfig.cError);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if ( BConfig.Registros() == 0 )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Ponemos a por defecto la configuraci<63>n
 | 
				
			||||||
 | 
					    Config.config_color    =  0;            // Configura que paleta usa
 | 
				
			||||||
 | 
					    Config.item_ordenado[0]=  0;            // item por el que esta ordenado
 | 
				
			||||||
 | 
					    Config.item_ordenado[1]=  0;            // item por el que esta ordenado
 | 
				
			||||||
 | 
					    Config.TiempoBorrados  =  6;            // Tiempo que hay que mantener los items, borrados
 | 
				
			||||||
 | 
					                                            //  en meses...
 | 
				
			||||||
 | 
					    GHtmp.AbrirReg( "datos\\hermanos.dbf", sizeof( HermStruct ) );
 | 
				
			||||||
 | 
					    Config.NHnoHna[0]      =  GHtmp.NRegTotal();            // Numero de Hermanos, Hermanas
 | 
				
			||||||
 | 
					    GHtmp.CerrarReg();
 | 
				
			||||||
 | 
					    GHtmp.AbrirReg( "datos\\hermanas.dbf", sizeof( HermStruct ) );
 | 
				
			||||||
 | 
					    Config.NHnoHna[1]      =  GHtmp.NRegTotal();
 | 
				
			||||||
 | 
					    Config.TiempoBorrados  =  6;
 | 
				
			||||||
 | 
					    Config.CuotaBaseFam[0] = 0;
 | 
				
			||||||
 | 
					    Config.CuotaBaseFam[1] = 0;
 | 
				
			||||||
 | 
					    Config.LineasImpresion = 60;
 | 
				
			||||||
 | 
					    Config.ImpNormal[0]='\0';
 | 
				
			||||||
 | 
					    Config.ImpCompr[0]='\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    GHtmp.CerrarReg();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Config.LineasImpresion = 60;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for ( i=0; i < 40; i++ )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					     strcpy( Config.Insignia[i].NInsignia, "ninguna" );
 | 
				
			||||||
 | 
					     Config.Insignia[i].Suplemento = 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Inserta un Reg por arriba de pos.
 | 
				
			||||||
 | 
					    if ( BConfig.InsReg( (void *)&Config, BConfig.Registros(), ARRIBA ) != OK )
 | 
				
			||||||
 | 
					       Error(BConfig.cError);
 | 
				
			||||||
 | 
					   } else
 | 
				
			||||||
 | 
					    BConfig.LeeReg( (void *)&Config, 0 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Chequeamos el tiempo permitido en hermanos borrados
 | 
				
			||||||
 | 
					    CompruebaTiempoBorrados( "datos\\hnos_brr.dbf" );
 | 
				
			||||||
 | 
					    CompruebaTiempoBorrados( "datos\\hnas_brr.dbf" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CompruebaTiempoBorrados( char *File )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 BDatos Borr;
 | 
				
			||||||
 | 
					 HERMBORRADOS HB;
 | 
				
			||||||
 | 
					 long i;
 | 
				
			||||||
 | 
					 int enc;
 | 
				
			||||||
 | 
					 struct date d;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 getdate(&d);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( Borr.AbrirReg( File, sizeof( HERMBORRADOS ) ) == OK )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  for ( i = 0; i < Borr.Registros() && enc == OK; )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   enc = Borr.LeeReg( (void *)&HB, i );
 | 
				
			||||||
 | 
					   // Si se cumple...
 | 
				
			||||||
 | 
					   if ( ( ( ( HB.FechaBorrado.da_year - d.da_year - 1 ) * 12 ) < 0 ? 0 : ( ( HB.FechaBorrado.da_year - d.da_year - 1 ) * 12 ) ) + abs(d.da_mon - HB.FechaBorrado.da_mon) >= Config.TiempoBorrados )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    Borr.DelReg( Borr.RegActual() );
 | 
				
			||||||
 | 
					   } else i++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Borr.CerrarReg();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ConfiguracionGlobal(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 int ok, item = 0, dev, key;
 | 
				
			||||||
 | 
					 long i;
 | 
				
			||||||
 | 
					 struct date d;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 getdate(&d);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 BDatos Herm;
 | 
				
			||||||
 | 
					 HermStruct HermS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Imprime_Estaticos( 70, "herm.img" );
 | 
				
			||||||
 | 
					 for ( ok = 0; ok < 10; ok++ )
 | 
				
			||||||
 | 
					          MarcaConfig( ok, NORMAL  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 ok = 0;
 | 
				
			||||||
 | 
					 do{
 | 
				
			||||||
 | 
					   MarcaConfig( item, INTENSO );
 | 
				
			||||||
 | 
					   dev = Espera_TeclaRaton();
 | 
				
			||||||
 | 
					   MarcaConfig( item, NORMAL  );
 | 
				
			||||||
 | 
					   if ( dev == 0 )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					     if ( kbhit() )
 | 
				
			||||||
 | 
					      switch( key = getch() )
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					       case 27:
 | 
				
			||||||
 | 
					              ok = 1;
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					       case 0:
 | 
				
			||||||
 | 
					             switch( getch() )
 | 
				
			||||||
 | 
					             {
 | 
				
			||||||
 | 
					              //ARRIBA -- IZQUIERDA
 | 
				
			||||||
 | 
					                case  72:
 | 
				
			||||||
 | 
					                case  75:
 | 
				
			||||||
 | 
					                case  15:
 | 
				
			||||||
 | 
					                  item--; if ( item<0 ) item = 9;
 | 
				
			||||||
 | 
					                  break;
 | 
				
			||||||
 | 
					              // ABAJO -- DERECHA
 | 
				
			||||||
 | 
					                case  80:
 | 
				
			||||||
 | 
					                case  77:
 | 
				
			||||||
 | 
					                case   9:
 | 
				
			||||||
 | 
					                  item++; if ( item>9 ) item = 0;
 | 
				
			||||||
 | 
					                  break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					             }
 | 
				
			||||||
 | 
					             break;
 | 
				
			||||||
 | 
					       default:
 | 
				
			||||||
 | 
					               ungetch( key );
 | 
				
			||||||
 | 
					       case 13:
 | 
				
			||||||
 | 
					            EditConfig(item);
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					   } else {
 | 
				
			||||||
 | 
					    if ( x_raton > 380 && x_raton < 630 && y_raton > 95 && y_raton < 125 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					     if ( Optar( 1, "FIN REGISTRO Borrados", "Seguro que desea eliminar", "el registro de n<> eliminados", NULL ) )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					      remove( "datos\\hnos_brr.dbf" );
 | 
				
			||||||
 | 
					      remove( "datos\\hnas_brr.dbf" );
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					    } else
 | 
				
			||||||
 | 
					    if ( x_raton > 15 && x_raton < 345 && y_raton > 315 && y_raton < 350 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					     if ( Optar( 1, "CONFIRME OPERACION", "La reinicializaci<63>n es", "irreversible. <20><> CONFIRME !!", "Se recalcularan las posiciones",  NULL ) )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       unlink( "datos\\hnos_brr.dbf" );
 | 
				
			||||||
 | 
					       unlink( "datos\\hnas_brr.dbf" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Herm.AbrirReg( "datos\\hermanos.dbf", sizeof( HermStruct ) );
 | 
				
			||||||
 | 
					      // Ordenamos por n<> de hermanos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Config.NHnoHna[0]      =  Herm.Registros();            // Numero de Hermanos, Hermanas
 | 
				
			||||||
 | 
					   Config.item_ordenado[0] = 0;
 | 
				
			||||||
 | 
					   Config.item_ordenado[1] = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if ( BConfig.EscribeReg((void *)&Config, 0) != OK )
 | 
				
			||||||
 | 
					                                                    Error(BConfig.cError);
 | 
				
			||||||
 | 
					if ( Herm.SortReg(ComparaRegistros) == OK )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					   Herm.SortReg(ComparaRegistros);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      for ( i=0; i < Herm.Registros(); i++ )
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					       Herm.LeeReg( (void *)&HermS, i );
 | 
				
			||||||
 | 
					       HermS.Varios.RealPenit = 0;
 | 
				
			||||||
 | 
					       if ( // Mayor de 18 a<>os
 | 
				
			||||||
 | 
					DifDate( d, HermS.FechaN, NULL ) > 18 &&
 | 
				
			||||||
 | 
					DifDate( d, HermS.Antig, NULL ) > 1  &&
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					            ( d.da_year - HermS.FechaN.da_year ) > 18 &&
 | 
				
			||||||
 | 
					            // Mas de un a<>o de antiguedad
 | 
				
			||||||
 | 
					            ( d.da_year - HermS.Antig.da_year ) > 1   &&
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					            HermS.FechaN.da_year != 0
 | 
				
			||||||
 | 
					          )
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					           HermS.Varios.PuedVotar = 1;
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					           HermS.Varios.PuedVotar = 0;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					       HermS.NHno = i+1;
 | 
				
			||||||
 | 
					       Herm.EscribeReg( (void *)&HermS, i );
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					} else Error( Herm.cError );
 | 
				
			||||||
 | 
					      Herm.CerrarReg();
 | 
				
			||||||
 | 
					      Herm.AbrirReg( "datos\\hermanas.dbf", sizeof( HermStruct ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Config.NHnoHna[1]      =  Herm.Registros();
 | 
				
			||||||
 | 
					   Config.item_ordenado[0] = 0;
 | 
				
			||||||
 | 
					   Config.item_ordenado[1] = 0;
 | 
				
			||||||
 | 
					   if ( BConfig.EscribeReg((void *)&Config, 0) != OK )
 | 
				
			||||||
 | 
					                                                    Error(BConfig.cError);
 | 
				
			||||||
 | 
					if ( Herm.SortReg(ComparaRegistros) == OK )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					      for ( i=0; i < Herm.Registros(); i++ )
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					       Herm.LeeReg( (void *)&HermS, i );
 | 
				
			||||||
 | 
					       HermS.Varios.RealPenit = 0;
 | 
				
			||||||
 | 
					       if ( // Mayor de 18 a<>os
 | 
				
			||||||
 | 
					DifDate( d, HermS.FechaN, NULL ) > 18 &&
 | 
				
			||||||
 | 
					DifDate( d, HermS.Antig, NULL ) > 1  &&
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					            ( d.da_year - HermS.FechaN.da_year ) > 18 &&
 | 
				
			||||||
 | 
					            // Mas de un a<>o de antiguedad
 | 
				
			||||||
 | 
					            ( d.da_year - HermS.Antig.da_year ) > 1   &&
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					            HermS.FechaN.da_year != 0
 | 
				
			||||||
 | 
					          )
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					           HermS.Varios.PuedVotar = 1;
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					           HermS.Varios.PuedVotar = 0;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					       HermS.NHno = i+1;
 | 
				
			||||||
 | 
					       Herm.EscribeReg( (void *)&HermS, i );
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					} else Error( Herm.cError );
 | 
				
			||||||
 | 
					      Herm.CerrarReg();
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					 }while( !ok );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Guardamos configuraci<63>n
 | 
				
			||||||
 | 
					 BConfig.EscribeReg( (void *)&Config, 0 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MarcaConfig( int item, int como )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char buffer[80];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( como == INTENSO )
 | 
				
			||||||
 | 
					    setfillstyle( SOLID_FILL, ROJO );
 | 
				
			||||||
 | 
					 else
 | 
				
			||||||
 | 
					    setfillstyle( SOLID_FILL, BLANCO );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 setcolor( NEGRO );
 | 
				
			||||||
 | 
					 switch( item )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  // Ultimo hermano
 | 
				
			||||||
 | 
					  case 0:
 | 
				
			||||||
 | 
					       bar ( 270, 60, 350,  78  );
 | 
				
			||||||
 | 
					       sprintf( buffer, "   %04ld", Config.NHnoHna[0] );
 | 
				
			||||||
 | 
					       outtextxy( 270, 60, buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Ultima hermana
 | 
				
			||||||
 | 
					  case 1:
 | 
				
			||||||
 | 
					       bar ( 270, 80, 350,  98  );
 | 
				
			||||||
 | 
					       sprintf( buffer, "   %04ld", Config.NHnoHna[1] );
 | 
				
			||||||
 | 
					       outtextxy( 270, 80, buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Tiempo ha mantener los hermanos borrados
 | 
				
			||||||
 | 
					  case 2:
 | 
				
			||||||
 | 
					       bar ( 270, 100, 350, 118 );
 | 
				
			||||||
 | 
					       sprintf( buffer, "   %4d", Config.TiempoBorrados );
 | 
				
			||||||
 | 
					       outtextxy( 270, 100, buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Cadena imprimir normal
 | 
				
			||||||
 | 
					  case 3:
 | 
				
			||||||
 | 
					       bar ( 270, 150, 460, 168 );
 | 
				
			||||||
 | 
					       outtextxy( 270, 150, Config.ImpNormal );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Cadena imprimir comprimido
 | 
				
			||||||
 | 
					  case 4:
 | 
				
			||||||
 | 
					       bar ( 270, 170, 460, 188 );
 | 
				
			||||||
 | 
					       outtextxy( 270, 170, Config.ImpCompr );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // N<> de lineas
 | 
				
			||||||
 | 
					  case 5:
 | 
				
			||||||
 | 
					       bar ( 270, 190, 350, 208 );
 | 
				
			||||||
 | 
					       sprintf( buffer, "   %4d", Config.LineasImpresion );
 | 
				
			||||||
 | 
					       outtextxy( 270, 190, buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Couta Base
 | 
				
			||||||
 | 
					  case 6:
 | 
				
			||||||
 | 
					       bar ( 270, 220, 350, 238 );
 | 
				
			||||||
 | 
					       sprintf( buffer, "   %4ld", Config.CuotaBaseFam[0] );
 | 
				
			||||||
 | 
					       outtextxy( 270, 220, buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Couta Familiar
 | 
				
			||||||
 | 
					  case 7:
 | 
				
			||||||
 | 
					       bar ( 550, 220, 630, 238 );
 | 
				
			||||||
 | 
					       sprintf( buffer, "   %4ld", Config.CuotaBaseFam[1] );
 | 
				
			||||||
 | 
					       outtextxy( 550, 220, buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Mes de las votaciones
 | 
				
			||||||
 | 
					  case 8:
 | 
				
			||||||
 | 
					       bar ( 270, 250, 350, 268 );
 | 
				
			||||||
 | 
					       sprintf( buffer, "   %4d", Config.MesVotacion );
 | 
				
			||||||
 | 
					       outtextxy( 270, 250, buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Hora de Salida
 | 
				
			||||||
 | 
					  case 9:
 | 
				
			||||||
 | 
					       bar ( 550, 250, 630, 268 );
 | 
				
			||||||
 | 
					       sprintf( buffer, "   %5s", Config.HoraSalida );
 | 
				
			||||||
 | 
					       outtextxy( 550, 250, buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void EditConfig( int item )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char buffer[80];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 switch( item )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  // Ultimo hermano
 | 
				
			||||||
 | 
					  case 0:
 | 
				
			||||||
 | 
					       sprintf( buffer, "%ld", Config.NHnoHna[0] );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG_T5( buffer, 1,  5, BLANCO, AZUL, 270, 60, 350, 78 ) >> 8 ) )
 | 
				
			||||||
 | 
					              Config.NHnoHna[0] = atol ( buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Ultima hermana
 | 
				
			||||||
 | 
					  case 1:
 | 
				
			||||||
 | 
					       sprintf( buffer, "%ld", Config.NHnoHna[1] );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG_T5( buffer, 1,  5, BLANCO, AZUL, 270, 80, 350,  98 ) >> 8 ) )
 | 
				
			||||||
 | 
					              Config.NHnoHna[1] = atol ( buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Tiempo ha mantener los hermanos borrados
 | 
				
			||||||
 | 
					  case 2:
 | 
				
			||||||
 | 
					       sprintf( buffer, "%d", Config.TiempoBorrados );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG_T5( buffer, 1,  3, BLANCO, AZUL, 270, 100, 350,  118 ) >> 8 ) )
 | 
				
			||||||
 | 
					                                                              Config.TiempoBorrados = atoi ( buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Cadena imprimir normal
 | 
				
			||||||
 | 
					  case 3:
 | 
				
			||||||
 | 
					       sprintf( buffer, "%s", Config.ImpNormal );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG_T5( buffer, 0,  19, BLANCO, AZUL, 270, 150, 460, 168 ) >> 8 ) )
 | 
				
			||||||
 | 
					                 strcpy( Config.ImpNormal, buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Cadena imprimir comprimido
 | 
				
			||||||
 | 
					  case 4:
 | 
				
			||||||
 | 
					       sprintf( buffer, "%s", Config.ImpCompr );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG_T5( buffer, 0,  19, BLANCO, AZUL, 270, 170, 460, 188 ) >> 8 ) )
 | 
				
			||||||
 | 
					                 strcpy( Config.ImpCompr, buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // N<> de lineas
 | 
				
			||||||
 | 
					  case 5:
 | 
				
			||||||
 | 
					       sprintf( buffer, "%d", Config.LineasImpresion );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG_T5( buffer, 1,  2, BLANCO, AZUL, 270, 190, 350, 208 ) >> 8 ) )
 | 
				
			||||||
 | 
					                 Config.LineasImpresion = atoi( buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Couta Base
 | 
				
			||||||
 | 
					  case 6:
 | 
				
			||||||
 | 
					       sprintf( buffer, "%ld", Config.CuotaBaseFam[0] );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG_T5( buffer, 1,  5, BLANCO, AZUL, 270, 220, 350, 238 ) >> 8 ) )
 | 
				
			||||||
 | 
					                 Config.CuotaBaseFam[0] = atol( buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Couta Familiar
 | 
				
			||||||
 | 
					  case 7:
 | 
				
			||||||
 | 
					       sprintf( buffer, "%ld", Config.CuotaBaseFam[1] );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG_T5( buffer, 1,  5, BLANCO, AZUL, 550, 220, 630, 238 ) >> 8 ) )
 | 
				
			||||||
 | 
					                 Config.CuotaBaseFam[1] = atol( buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Mes votacion
 | 
				
			||||||
 | 
					  case 8:
 | 
				
			||||||
 | 
					       sprintf( buffer, "%d", Config.MesVotacion );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG_T5( buffer, 1,  2, BLANCO, AZUL, 270, 250, 350, 268 ) >> 8 ) )
 | 
				
			||||||
 | 
					                 Config.MesVotacion = atoi( buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // HoraSalida
 | 
				
			||||||
 | 
					  case 9:
 | 
				
			||||||
 | 
					       sprintf( buffer, "%s", Config.HoraSalida );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG_T5( buffer, 0,  5, BLANCO, AZUL, 550, 250, 630, 268 ) >> 8 ) )
 | 
				
			||||||
 | 
					                 strcpy( Config.HoraSalida, buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										2649
									
								
								HERM_GST.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2649
									
								
								HERM_GST.CPP
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										173
									
								
								HERM_IGA.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										173
									
								
								HERM_IGA.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,173 @@
 | 
				
			|||||||
 | 
					 /*************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                         *|
 | 
				
			||||||
 | 
					|*  HERM_IGA                                                               *|
 | 
				
			||||||
 | 
					|*                                                                         *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                           *|
 | 
				
			||||||
 | 
					|*               Gestion de insginias ( solo ense<73>a desde 1 hata 19 )      *|
 | 
				
			||||||
 | 
					|*                                                                         *|
 | 
				
			||||||
 | 
					 \*************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <conio.h>
 | 
				
			||||||
 | 
					#include <alloc.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <graphics.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "..\libs\make_bot\make_bot.h"
 | 
				
			||||||
 | 
					#include "..\libs\bdatos\bdatos.hh"
 | 
				
			||||||
 | 
					#include "Herm.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern CONFIG Config;
 | 
				
			||||||
 | 
					extern BDatos BConfig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int far Espera_TeclaRaton(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MuestraInsignia( int insignia, char como, int CtoVirgen, int columna );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void GestionInsignias(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 int i, key; char buffer[80];
 | 
				
			||||||
 | 
					 int X1, X0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char insignia, ok, CtoVirgen, columna;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Imprime_Estaticos(50, "Herm.img");
 | 
				
			||||||
 | 
					 settextstyle( SMALL_FONT, HORIZ_DIR, 4 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 for ( insignia = 1; insignia < 20; insignia++ )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					             MuestraInsignia( insignia, NORMAL, 0, 0 );
 | 
				
			||||||
 | 
					             MuestraInsignia( insignia, NORMAL, 1, 0 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					             MuestraInsignia( insignia, NORMAL, 0, 1 );
 | 
				
			||||||
 | 
					             MuestraInsignia( insignia, NORMAL, 1, 1 );
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 insignia = 1; CtoVirgen = 0;
 | 
				
			||||||
 | 
					 columna = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 ok = 0;
 | 
				
			||||||
 | 
					 do{
 | 
				
			||||||
 | 
					  MuestraInsignia( insignia, INTENSO, CtoVirgen, columna );
 | 
				
			||||||
 | 
					  Espera_TeclaRaton();
 | 
				
			||||||
 | 
					  MuestraInsignia( insignia, NORMAL, CtoVirgen, columna );
 | 
				
			||||||
 | 
					  if ( !kbhit() )      // Donde pincho el raton
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					     for ( i = 0; i < 20; i++ )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					         if ( x_raton > 15 && x_raton < 180 && y_raton > 70+20*i && y_raton < 90+20*i )
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					          CtoVirgen = 0; columna = 0; insignia = i+1;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         if ( x_raton > 200 && x_raton < 310 && y_raton > 70+20*i && y_raton < 90+20*i )
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					          CtoVirgen = 0; columna = 1; insignia = i+1;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         if ( x_raton > 330 && x_raton < 495 && y_raton > 70+20*i && y_raton < 90+20*i )
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					          CtoVirgen = 1; columna = 0; insignia = i+1;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         if ( x_raton > 495 && x_raton < 625 && y_raton > 70+20*i && y_raton < 90+20*i )
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					          CtoVirgen = 1; columna = 1; insignia = i+1;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     Anclar_Raton();
 | 
				
			||||||
 | 
					  } else
 | 
				
			||||||
 | 
					  switch( ( key = getch() ) )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   case 0:
 | 
				
			||||||
 | 
					   switch( getch() )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					                // Flecha Izquierda
 | 
				
			||||||
 | 
					                case  75:
 | 
				
			||||||
 | 
					                       columna--;
 | 
				
			||||||
 | 
					                       if ( columna < 0 )
 | 
				
			||||||
 | 
					                       {
 | 
				
			||||||
 | 
					                        if ( CtoVirgen == 1 )
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                         CtoVirgen = 0; columna = 1;
 | 
				
			||||||
 | 
					                        }else{
 | 
				
			||||||
 | 
					                         columna = 0;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                       }
 | 
				
			||||||
 | 
					                       break;
 | 
				
			||||||
 | 
					                // Flecha Derecha
 | 
				
			||||||
 | 
					                case  77:
 | 
				
			||||||
 | 
					                       columna ++;
 | 
				
			||||||
 | 
					                       if ( columna > 1 )
 | 
				
			||||||
 | 
					                       {
 | 
				
			||||||
 | 
					                        if ( CtoVirgen == 0 )
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                         CtoVirgen=1; columna = 0;
 | 
				
			||||||
 | 
					                        }else{
 | 
				
			||||||
 | 
					                         columna = 1;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                       }
 | 
				
			||||||
 | 
					                       break;
 | 
				
			||||||
 | 
					                // Flecha Arriba
 | 
				
			||||||
 | 
					                case  80:
 | 
				
			||||||
 | 
					                       insignia++; if ( insignia > 19 ) insignia = 19;
 | 
				
			||||||
 | 
					                       break;
 | 
				
			||||||
 | 
					                // Flecha Abajo
 | 
				
			||||||
 | 
					                case  72:
 | 
				
			||||||
 | 
					                       insignia--; if ( insignia <  1 ) insignia =  1;
 | 
				
			||||||
 | 
					                       break;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					   break;
 | 
				
			||||||
 | 
					   case  15:
 | 
				
			||||||
 | 
					   case   9:
 | 
				
			||||||
 | 
					          CtoVirgen = !CtoVirgen;
 | 
				
			||||||
 | 
					          columna = 0;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					   // ESC
 | 
				
			||||||
 | 
					   case 27:
 | 
				
			||||||
 | 
					          ok = 1;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					   default:
 | 
				
			||||||
 | 
					        if ( key != 13 && key != 8 ) ungetch(key);
 | 
				
			||||||
 | 
					           if ( columna == 0)
 | 
				
			||||||
 | 
					                      strcpy( buffer, Config.Insignia[insignia+20*CtoVirgen].NInsignia );
 | 
				
			||||||
 | 
					           else
 | 
				
			||||||
 | 
					                      sprintf( buffer, "%ld", Config.Insignia[insignia+20*CtoVirgen].Suplemento );
 | 
				
			||||||
 | 
					           if ( !( InputCadenaG_T5( buffer, columna, (columna == 0) ? 29 : 5, BLANCO, AZUL, (  (columna==0) ?  15 + CtoVirgen*315 : 200 + CtoVirgen*315 ), 70+20*(insignia-1), (  (columna==0) ? 200 + CtoVirgen*315 : 300 + CtoVirgen*315 ), 90+20*(insignia-1) - 1 ) >> 8 ) )
 | 
				
			||||||
 | 
					                      if ( columna == 0)
 | 
				
			||||||
 | 
					                                        strcpy( Config.Insignia[insignia+20*CtoVirgen].NInsignia, buffer );
 | 
				
			||||||
 | 
					                      else
 | 
				
			||||||
 | 
					                                        Config.Insignia[insignia+20*CtoVirgen].Suplemento = atol(buffer);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 }while( !ok );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Salvamos configuracion
 | 
				
			||||||
 | 
					 BConfig.EscribeReg( (void *)&Config, 0 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MuestraInsignia( int insignia, char como, int CtoVirgen, int columna )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 int X0, Y0, X1, Y1;
 | 
				
			||||||
 | 
					 char buffer[80];
 | 
				
			||||||
 | 
					 setfillstyle( SOLID_FILL, (como==NORMAL) ? BLANCO : ROJO );
 | 
				
			||||||
 | 
					 setcolor( NEGRO );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					           if ( columna == 0)
 | 
				
			||||||
 | 
					                      sprintf( buffer, "%29s", Config.Insignia[insignia+20*CtoVirgen].NInsignia );
 | 
				
			||||||
 | 
					           else
 | 
				
			||||||
 | 
					                      sprintf( buffer, "  %05ld", Config.Insignia[insignia+20*CtoVirgen].Suplemento );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 insignia--;
 | 
				
			||||||
 | 
					 X0 = (  (columna==0) ?  15 + CtoVirgen*315 : 200 + CtoVirgen*315 );
 | 
				
			||||||
 | 
					 Y0 = 70+20*insignia;
 | 
				
			||||||
 | 
					 X1 = (  (columna==0) ? 200 + CtoVirgen*315 : 300 + CtoVirgen*315 );
 | 
				
			||||||
 | 
					 Y1 = 90+20*insignia;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 bar( X0, Y0, X1, Y1-1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 outtextxy( X0, Y0, buffer );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										978
									
								
								HERM_LST.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										978
									
								
								HERM_LST.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,978 @@
 | 
				
			|||||||
 | 
					 /*************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                         *|
 | 
				
			||||||
 | 
					|*  HERM_LST                                                               *|
 | 
				
			||||||
 | 
					|*                                                                         *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                           *|
 | 
				
			||||||
 | 
					|*               Listados por pantalla e impresos (RAPIDOS)                *|
 | 
				
			||||||
 | 
					|*                                                                         *|
 | 
				
			||||||
 | 
					 \*************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <conio.h>
 | 
				
			||||||
 | 
					#include <alloc.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <graphics.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "..\libs\make_bot\make_bot.h"
 | 
				
			||||||
 | 
					#include "..\libs\bdatos\bdatos.hh"
 | 
				
			||||||
 | 
					#include "Herm.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define AVANCES_DE_PAGINA   37
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ImprimeEtiquetas(void);
 | 
				
			||||||
 | 
					void ImprimeFacturas(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void OptenPaginasIniFin( int *Inicio, int *Fin, int NRegistros );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ImprimeListaSitios(void);
 | 
				
			||||||
 | 
					void MuestraLinea(int Tipo_de_Listado);
 | 
				
			||||||
 | 
					void ImprimeLinea( int Tipo_de_Listado, FILE *file_out );
 | 
				
			||||||
 | 
					void ImprimePaginas( int Tipo_de_Listado );
 | 
				
			||||||
 | 
					void MuestraPagina( int adelante_atras, int Tipo_de_Listado );
 | 
				
			||||||
 | 
					void Escr_Mensaje(char *Encabezado, char lineas, char Mensaje[][50] );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern void ImprimeFicha(void);
 | 
				
			||||||
 | 
					extern void CodigoImpresora( char *codigo );
 | 
				
			||||||
 | 
					extern int  ComparaRegistros( const void *A, const void *B );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern char FICHA_REGISTRO;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern struct date FechaActual;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern CONFIG Config;
 | 
				
			||||||
 | 
					extern BDatos BConfig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern BDatos BHerm;
 | 
				
			||||||
 | 
					extern HermStruct SHerm, BHtmp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern BDatos BHBorrados;
 | 
				
			||||||
 | 
					extern HERMBORRADOS HermanosBorrados;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ListadosRapidos( int Tipo_de_Listado )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char Mensaje[][50] = { "La base de Datos", "esta vacia." };
 | 
				
			||||||
 | 
					 char File[80];
 | 
				
			||||||
 | 
					 int ok = 0, BPush;
 | 
				
			||||||
 | 
					 True_Push = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int HnoHna;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( Optar( 1, "BASE A LISTAR", "Aceptar:  HERMANOS", "Cancelar:  HERMANAS", NULL ) )
 | 
				
			||||||
 | 
					  HnoHna = HERMANOS;
 | 
				
			||||||
 | 
					 else
 | 
				
			||||||
 | 
					  HnoHna = HERMANAS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 getdate( &FechaActual );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 strcpy( BHerm.MyHeader.ProgName, "Hermadad" );
 | 
				
			||||||
 | 
					 BHerm.MyHeader.VerHi  = 1;
 | 
				
			||||||
 | 
					 BHerm.MyHeader.VerLow = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Imprime_Estaticos(60, "Herm.img");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 settextstyle( SMALL_FONT, HORIZ_DIR, 4 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Base de Datos
 | 
				
			||||||
 | 
					  if ( HnoHna == HERMANOS )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    strcpy( File, "datos\\hermanos.dbf" );
 | 
				
			||||||
 | 
					    FICHA_REGISTRO = 0;
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    strcpy( File, "datos\\hermanas.dbf" );
 | 
				
			||||||
 | 
					    FICHA_REGISTRO = 1;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ( BHerm.AbrirReg( File, sizeof( HermStruct ) ) != OK )
 | 
				
			||||||
 | 
					         Error(BHerm.cError);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if ( BHerm.Registros() == 0 )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					      Escr_Mensaje( "ERROR", 2, Mensaje );
 | 
				
			||||||
 | 
					      BHerm.CerrarReg();
 | 
				
			||||||
 | 
					   } else {
 | 
				
			||||||
 | 
					    if ( Tipo_de_Listado == TUNICA_HDAD && Config.item_ordenado[FICHA_REGISTRO] != 9 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      Imprime_Estaticos(20, "Herm.img");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      setcolor( 63 );  outtextxy( 172, 165, "   Comando Ordenar" );
 | 
				
			||||||
 | 
					      setcolor( ROJO );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      outtextxy( 172, 200+20*1, "  Preparando base de Datos" );
 | 
				
			||||||
 | 
					      outtextxy( 172, 200+20*2, "  Por favor, espere..." );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Config.item_ordenado[FICHA_REGISTRO] = 8;
 | 
				
			||||||
 | 
					      if ( BConfig.EscribeReg((void *)&Config, 0) != OK )
 | 
				
			||||||
 | 
					                                                    Error(BConfig.cError);
 | 
				
			||||||
 | 
					      BHerm.SortReg(ComparaRegistros);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Imprime_Estaticos(60, "Herm.img");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      settextstyle( SMALL_FONT, HORIZ_DIR, 4 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    } else
 | 
				
			||||||
 | 
					     if ( Tipo_de_Listado == FACTURAS  )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					        ImprimeFacturas();
 | 
				
			||||||
 | 
					        BHerm.CerrarReg();
 | 
				
			||||||
 | 
					        return ;
 | 
				
			||||||
 | 
					     } else
 | 
				
			||||||
 | 
					     if ( Tipo_de_Listado == ETIQUETAS )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					        ImprimeEtiquetas();
 | 
				
			||||||
 | 
					        BHerm.CerrarReg();
 | 
				
			||||||
 | 
					        return ;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  BHerm.LeeReg( (void *)&SHerm, 0 );
 | 
				
			||||||
 | 
					  MuestraLinea(Tipo_de_Listado);
 | 
				
			||||||
 | 
					  MuestraPagina( 1, Tipo_de_Listado);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  while( !ok )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   BPush = Comprueba_Secuencia( 4, NULL );
 | 
				
			||||||
 | 
					   switch ( BPush )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					       case  0:				  // No se pulso ningun BOTON
 | 
				
			||||||
 | 
						       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
				
			||||||
 | 
					                                          // El raton todav<61>a sigue pulsado
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       case -2:
 | 
				
			||||||
 | 
					               if ( (BPush = getch()) != 27 )
 | 
				
			||||||
 | 
					               {
 | 
				
			||||||
 | 
					  	        while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
				
			||||||
 | 
					               } else {  ok = 1;  }
 | 
				
			||||||
 | 
					               break;
 | 
				
			||||||
 | 
					                                          // Tecla Normal
 | 
				
			||||||
 | 
					       case -1:				  // Hay una tecla especial en BUFFER
 | 
				
			||||||
 | 
						               			  // La eliminamos
 | 
				
			||||||
 | 
					  	        while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       // INICIO DE BOTONES
 | 
				
			||||||
 | 
					       // Retroceso
 | 
				
			||||||
 | 
					       case 1:
 | 
				
			||||||
 | 
					            MuestraPagina( -1, Tipo_de_Listado );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					       // Imprimir
 | 
				
			||||||
 | 
					       case 2:
 | 
				
			||||||
 | 
					            if ( Tipo_de_Listado == PAPELETAS_SITIO )
 | 
				
			||||||
 | 
					                  ImprimeListaSitios();
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                  ImprimePaginas( Tipo_de_Listado );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					       // Avance
 | 
				
			||||||
 | 
					       case 3:
 | 
				
			||||||
 | 
					             MuestraPagina( 1, Tipo_de_Listado );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  BHerm.CerrarReg();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MuestraPagina( int adelante_atras, int Tipo_de_Listado )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 long i, CurrReg;
 | 
				
			||||||
 | 
					 static long antigua_pos = 0;
 | 
				
			||||||
 | 
					 int virtual_pos = 0;
 | 
				
			||||||
 | 
					 char buffer[500];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 CurrReg = BHerm.RegActual();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( (CurrReg == 0 && adelante_atras == -1) )
 | 
				
			||||||
 | 
					                                           return;
 | 
				
			||||||
 | 
					 setfillstyle(SOLID_FILL, BLANCO);
 | 
				
			||||||
 | 
					 bar( 11, 66, 634, 449 );
 | 
				
			||||||
 | 
					 setcolor( AZUL );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( adelante_atras == -1 )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  CurrReg = antigua_pos;
 | 
				
			||||||
 | 
					  virtual_pos = AVANCES_DE_PAGINA-1;
 | 
				
			||||||
 | 
					 } else {
 | 
				
			||||||
 | 
					  virtual_pos = 0;
 | 
				
			||||||
 | 
					  antigua_pos = BHerm.RegActual();
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 for( i=CurrReg; ( virtual_pos >= 0 && virtual_pos < AVANCES_DE_PAGINA && i >= 0 && i < BHerm.Registros() ) ; i+= adelante_atras )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  if ( BHerm.LeeReg( (void *)&SHerm, i ) != OK ) return;
 | 
				
			||||||
 | 
					  switch( Tipo_de_Listado )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   case VOTANTES:
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					     if ( SHerm.Varios.PuedVotar )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					          //                12345  123456789-12345 123456789-12345 123456789-12345  123456789-123456789-  12-12-1234  12-12-1234
 | 
				
			||||||
 | 
					          sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
 | 
				
			||||||
 | 
					          outtextxy( 10, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          // Los apellidos seran unidos
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[21] = '\0';
 | 
				
			||||||
 | 
					          outtextxy( 140, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
 | 
				
			||||||
 | 
					          outtextxy( 265, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%02d-%02d-%04d  %02d-%02d-%04d"
 | 
				
			||||||
 | 
					                    ,(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, SHerm.Antig.da_year,
 | 
				
			||||||
 | 
					                    (int)SHerm.FechaN.da_day, (int)SHerm.FechaN.da_mon, SHerm.FechaN.da_year
 | 
				
			||||||
 | 
					          );
 | 
				
			||||||
 | 
					          outtextxy( 505, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          virtual_pos +=adelante_atras;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case PAPELETAS_SITIO:
 | 
				
			||||||
 | 
					     if ( SHerm.Varios.RealPenit )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					          //                12345  123456789-12345 123456789-12345 123456789-12345  123456789-123456789-  12-12-1234  12-12-1234
 | 
				
			||||||
 | 
					          sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
 | 
				
			||||||
 | 
					          outtextxy( 10, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          // Los apellidos seran unidos
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[21] = '\0';
 | 
				
			||||||
 | 
					          outtextxy( 140, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
 | 
				
			||||||
 | 
					          outtextxy( 265, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%02d-%02d-%04d  %s"
 | 
				
			||||||
 | 
					                    ,(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, SHerm.Antig.da_year,
 | 
				
			||||||
 | 
					                    SHerm.Telefono1
 | 
				
			||||||
 | 
					          );
 | 
				
			||||||
 | 
					          outtextxy( 505, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					     virtual_pos +=adelante_atras;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case GRAL_HERMANOS:
 | 
				
			||||||
 | 
					   case GRAL_HERM_RAP:
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					          //                12345  123456789-12345 123456789-12345 123456789-12345  123456789-123456789-  12-12-1234  12-12-1234
 | 
				
			||||||
 | 
					          sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
 | 
				
			||||||
 | 
					          outtextxy( 10, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          // Los apellidos seran unidos
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[21] = '\0';
 | 
				
			||||||
 | 
					          outtextxy( 140, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
 | 
				
			||||||
 | 
					          outtextxy( 265, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%02d-%02d-%04d  %s"
 | 
				
			||||||
 | 
					                    ,(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, (int)SHerm.Antig.da_year,
 | 
				
			||||||
 | 
					                    SHerm.Telefono1
 | 
				
			||||||
 | 
					          );
 | 
				
			||||||
 | 
					          outtextxy( 505, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					     virtual_pos +=adelante_atras;
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case RECIBE_NOTIFIC:
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					     if ( SHerm.Varios.Notific )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					          sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
 | 
				
			||||||
 | 
					          outtextxy( 10, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          // Los apellidos seran unidos
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[21] = '\0';
 | 
				
			||||||
 | 
					          outtextxy( 140, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
 | 
				
			||||||
 | 
					          outtextxy( 265, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%-15s", SHerm.Poblacion );
 | 
				
			||||||
 | 
					          outtextxy( 505, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					     virtual_pos +=adelante_atras;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case ACOGIDOS_CUOT:
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					     if ( SHerm.Varios.CuotaFam )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					          sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
 | 
				
			||||||
 | 
					          outtextxy( 10, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          // Los apellidos seran unidos
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[21] = '\0';
 | 
				
			||||||
 | 
					          outtextxy( 120, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
 | 
				
			||||||
 | 
					          outtextxy( 265, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%-15s", SHerm.Poblacion );
 | 
				
			||||||
 | 
					          outtextxy( 505, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					     virtual_pos +=adelante_atras;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case TUNICA_HDAD:
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					     if ( SHerm.Varios.TunicaHd )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					          sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
 | 
				
			||||||
 | 
					          outtextxy( 10, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          // Los apellidos seran unidos
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[21] = '\0';
 | 
				
			||||||
 | 
					          outtextxy( 140, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
 | 
				
			||||||
 | 
					          outtextxy( 265, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%02d-%02d-%04d  %4ld"
 | 
				
			||||||
 | 
					                    ,(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, SHerm.Antig.da_year,
 | 
				
			||||||
 | 
					                    (int)SHerm.NTunica
 | 
				
			||||||
 | 
					          );
 | 
				
			||||||
 | 
					          outtextxy( 505, 75+10*virtual_pos, buffer );
 | 
				
			||||||
 | 
					     virtual_pos +=adelante_atras;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( adelante_atras == -1 )
 | 
				
			||||||
 | 
					    antigua_pos = BHerm.RegActual();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MuestraLinea(int Tipo_de_Listado)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char buffer[500];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  buffer[0] = '\0';
 | 
				
			||||||
 | 
					  switch( Tipo_de_Listado )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   case VOTANTES:
 | 
				
			||||||
 | 
					        sprintf( buffer, "N<EFBFBD>Hno  Nombre (completo)                     Direccion                           Antig<69>edad  F.Nacimiento");
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case GRAL_HERMANOS:
 | 
				
			||||||
 | 
					        sprintf( buffer, "N<EFBFBD>Hno  Nombre (completo)                     Direccion                           Antig<69>edad  Telefono");
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case GRAL_HERM_RAP:
 | 
				
			||||||
 | 
					        sprintf( buffer, "N<EFBFBD>Hno  Nombre (completo)                     Direccion                           Antig<69>edad  Telefono");
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case ACOGIDOS_CUOT:
 | 
				
			||||||
 | 
					        sprintf( buffer, "N<EFBFBD>Hno  Nombre (completo)                     Direccion                           Poblacion");
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case RECIBE_NOTIFIC:
 | 
				
			||||||
 | 
					        sprintf( buffer, "N<EFBFBD>Hno  Nombre (completo)                     Direccion                           Poblacion");
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case TUNICA_HDAD:
 | 
				
			||||||
 | 
					        sprintf( buffer, "N<EFBFBD>Hno  Nombre (completo)                     Direccion                           Antig<69>edad  N<> Tunica");
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case PAPELETAS_SITIO:
 | 
				
			||||||
 | 
					        sprintf( buffer, "N<EFBFBD>Hno  Nombre (completo)                     Direccion                           Antig<69>edad  Telefono");
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  outtextxy( 12, 45, buffer );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ImprimePaginas( int Tipo_de_Listado )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 long i, CurrReg, lineas_impresas = 0;
 | 
				
			||||||
 | 
					 char buffer[500];
 | 
				
			||||||
 | 
					 FILE *file_out;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 CurrReg = BHerm.RegActual();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  while ( !Comprueba_Impresora() )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    if ( !Optar( 1, "ERROR IMPRESORA", "Encienda la impresora", "y pulse ACEPTAR para continuar", NULL ) )
 | 
				
			||||||
 | 
					                                                                               return;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 switch ( Tipo_de_Listado )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  case  ACOGIDOS_CUOT:
 | 
				
			||||||
 | 
					  case  VOTANTES:
 | 
				
			||||||
 | 
					     // Miramos si desea mandar el informe a un archivo
 | 
				
			||||||
 | 
					     if ( Config.ImpCompr[0] == '-' && Config.ImpCompr[1] == '>' )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					       strcpy( buffer, Config.ImpCompr );
 | 
				
			||||||
 | 
					       strrev( buffer );
 | 
				
			||||||
 | 
					       buffer[ strlen( buffer ) - 2 ] = '\0';
 | 
				
			||||||
 | 
					       strrev( buffer );
 | 
				
			||||||
 | 
					       if ( ( file_out = fopen( buffer, "w" ) ) == NULL )
 | 
				
			||||||
 | 
					                                                   return;
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					           // Mandar codigo caracteres grandes
 | 
				
			||||||
 | 
					           CodigoImpresora( Config.ImpCompr );
 | 
				
			||||||
 | 
					           file_out = stdprn;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					  default:
 | 
				
			||||||
 | 
					      file_out = stdprn;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 ImprimeLinea( Tipo_de_Listado, file_out );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 for( i=0; i < BHerm.Registros() && i >= 0; i++ )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  if ( Config.LineasImpresion != 0 && lineas_impresas > Config.LineasImpresion )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					     fputc( 12, file_out ); lineas_impresas = 0;
 | 
				
			||||||
 | 
					     while ( !Comprueba_Impresora() )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					      if ( !Optar( 1, "ERROR IMPRESORA", "Coloque la siguiente p<>gina", "y pulse ACEPTAR para continuar", NULL ) )
 | 
				
			||||||
 | 
					                                                                                    i = -1;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ( BHerm.LeeReg( (void *)&SHerm, i ) != OK ) break;
 | 
				
			||||||
 | 
					  switch( Tipo_de_Listado )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   case VOTANTES:
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					     if ( SHerm.Varios.PuedVotar )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[20] = '\0';
 | 
				
			||||||
 | 
					          fprintf( file_out, "%4ld %-10s %-20s ", SHerm.NHno, SHerm.Nombre, buffer);
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? ", " : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? ", " : "", SHerm.Piso );
 | 
				
			||||||
 | 
					          buffer[34] = '\0';
 | 
				
			||||||
 | 
					          fprintf( file_out, "%-34s %02d-%02d-%02d  %02d-%02d-%02d\n\r", buffer,
 | 
				
			||||||
 | 
					            (int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, ( SHerm.Antig.da_year - (SHerm.Antig.da_year/100)*100 ) ,
 | 
				
			||||||
 | 
					            (int)SHerm.FechaN.da_day, (int)SHerm.FechaN.da_mon, ( SHerm.FechaN.da_year - (SHerm.FechaN.da_year/100)*100 )
 | 
				
			||||||
 | 
					                 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          lineas_impresas++;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case GRAL_HERMANOS:
 | 
				
			||||||
 | 
					     // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>
 | 
				
			||||||
 | 
					     // <20>  D i R e C t O   <20> <20><><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					     ImprimeFicha();
 | 
				
			||||||
 | 
					     lineas_impresas++;
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case PAPELETAS_SITIO:
 | 
				
			||||||
 | 
					     // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>
 | 
				
			||||||
 | 
					     // <20>  D i R e C t O   <20> <20><><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					     if ( SHerm.Varios.RealPenit )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[20] = '\0';
 | 
				
			||||||
 | 
					          fprintf( file_out, "%4ld %-10s %-20s ", SHerm.NHno, SHerm.Nombre, buffer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          fprintf( file_out, "%02d-%02d-%04d %s\n\r",
 | 
				
			||||||
 | 
					            (int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, SHerm.Antig.da_year,
 | 
				
			||||||
 | 
					            SHerm.Telefono1
 | 
				
			||||||
 | 
					          );
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					   case GRAL_HERM_RAP:
 | 
				
			||||||
 | 
					     // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>
 | 
				
			||||||
 | 
					     // <20>  D i R e C t O   <20> <20><><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[20] = '\0';
 | 
				
			||||||
 | 
					          fprintf( file_out, "%4ld %-10s %-20s ", SHerm.NHno, SHerm.Nombre, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? ", " : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? ", " : "", SHerm.Piso );
 | 
				
			||||||
 | 
					          buffer[40] = '\0';
 | 
				
			||||||
 | 
					          fprintf( file_out, "%-40s\n\r", buffer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     lineas_impresas++;
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case RECIBE_NOTIFIC:
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					     if ( SHerm.Varios.Notific )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[20] = '\0';
 | 
				
			||||||
 | 
					          fprintf( file_out, "%4ld %-10s %-20s ", SHerm.NHno, SHerm.Nombre, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? ", " : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
 | 
				
			||||||
 | 
					          buffer[32] = '\0';
 | 
				
			||||||
 | 
					          fprintf( file_out, "%-30s   %02d-%02d-%02d %s\n\r", buffer,
 | 
				
			||||||
 | 
					           (int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, ( SHerm.Antig.da_year - (SHerm.Antig.da_year/100)*100),             SHerm.Telefono1
 | 
				
			||||||
 | 
					           );
 | 
				
			||||||
 | 
					     lineas_impresas++;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case ACOGIDOS_CUOT:
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					     if ( SHerm.Varios.CuotaFam )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[20] = '\0';
 | 
				
			||||||
 | 
					          fprintf( file_out, "%4ld  %-10s %-20s ", SHerm.NHno, SHerm.Nombre, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? ", " : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? ", " : "", SHerm.Piso );
 | 
				
			||||||
 | 
					          buffer[33] = '\0';
 | 
				
			||||||
 | 
					          fprintf( file_out, "%-33s %02d-%02d-%04d %s\n\r", buffer,
 | 
				
			||||||
 | 
					           (int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, ( SHerm.Antig.da_year - (SHerm.Antig.da_year/100)*100),             SHerm.Telefono1
 | 
				
			||||||
 | 
					           );
 | 
				
			||||||
 | 
					     lineas_impresas++;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case TUNICA_HDAD:
 | 
				
			||||||
 | 
					     // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>
 | 
				
			||||||
 | 
					     // <20>  D i R e C t O   <20> <20><><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					     // si cumple los requisitos
 | 
				
			||||||
 | 
					     if ( SHerm.Varios.TunicaHd )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s %s %s", SHerm.Nombre, SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					          buffer[33] = '\0';
 | 
				
			||||||
 | 
					          fprintf( file_out, "%4ld  %-33s ", SHerm.NHno, buffer );
 | 
				
			||||||
 | 
					          sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? ", " : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? ", " : "", SHerm.Piso );
 | 
				
			||||||
 | 
					          buffer[32] = '\0';
 | 
				
			||||||
 | 
					          fprintf( file_out, "%-32s ", buffer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          if ( SHerm.NTunica == 0 )
 | 
				
			||||||
 | 
					                    fprintf( stdprn, " %04ld\n\r", SHerm.NTunica );
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					                    fprintf( stdprn, " HDAD\n\r" );
 | 
				
			||||||
 | 
					     lineas_impresas++;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ( kbhit() && getch() == 27 && Optar( 1, "CANCELAR IMPRESION", "Desea cancelar el trabajo", "de impresion actual?", NULL ) )
 | 
				
			||||||
 | 
					                                                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Nueva pagina
 | 
				
			||||||
 | 
					 fputc( 12, file_out );
 | 
				
			||||||
 | 
					 if (  Tipo_de_Listado != PAPELETAS_SITIO && Tipo_de_Listado != TUNICA_HDAD && Tipo_de_Listado != GRAL_HERM_RAP)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  // Miramos si desea mandar el informe a un archivo
 | 
				
			||||||
 | 
					  if ( Config.ImpCompr[0] == '-' && Config.ImpCompr[1] == '>' )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   fclose( file_out );
 | 
				
			||||||
 | 
					  } else
 | 
				
			||||||
 | 
					  // Mandar codigo caracteres peque<75>os
 | 
				
			||||||
 | 
					  CodigoImpresora( Config.ImpNormal );
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Regresamos a la posicion original
 | 
				
			||||||
 | 
					 if ( BHerm.LeeReg( (void *)&SHerm, CurrReg ) != OK ) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ImprimeLinea( int Tipo_de_Listado, FILE *file_out )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char buffer[500];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  switch( Tipo_de_Listado )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   case VOTANTES:
 | 
				
			||||||
 | 
					        fprintf( file_out, "Listado General de Votantes\n\r\n\r");
 | 
				
			||||||
 | 
					        fprintf( file_out, "N<EFBFBD>Hno Nombre (completo)             Direccion                        Antig<69>edad F.Nacimiento\n\r\n\r");
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case GRAL_HERMANOS:
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case GRAL_HERM_RAP:
 | 
				
			||||||
 | 
					        fprintf( file_out, "Listado R<>pido de hermanos\n\r\n\r");
 | 
				
			||||||
 | 
					        fprintf( file_out, "N<EFBFBD>Hn Nombre (completo)              Direccion                                 \n\r\n\r");
 | 
				
			||||||
 | 
					                          //123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-
 | 
				
			||||||
 | 
					                          //     123456789-123456789-123456789- 123456789-123456789-123456789-123456789-
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case ACOGIDOS_CUOT:
 | 
				
			||||||
 | 
					        fprintf( file_out, "Listado de Hermanos acogidos a cuota\n\r\n\r");
 | 
				
			||||||
 | 
					        fprintf( file_out, "N<EFBFBD>Hno  Nombre (completo)            Direccion                        Antig<69>edad    Tel<65>fono\n\r\n\r");
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case RECIBE_NOTIFIC:
 | 
				
			||||||
 | 
					        fprintf( file_out, "Listado de hermanos que reciben notificaciones\n\r\n\r");
 | 
				
			||||||
 | 
					        fprintf( file_out, "N<EFBFBD>Hno  Nombre (completo)            Direccion                        Antig<69>edad    Tel<65>fono\n\r\n\r");
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case TUNICA_HDAD:
 | 
				
			||||||
 | 
					        fprintf( file_out, "Listado de hermanos que poseen tunica de la hermandad\n\r\n\r");
 | 
				
			||||||
 | 
					        fprintf( file_out, "N<EFBFBD>Hno Nombre (completo)             Direccion                        T<>nica\n\r\n\r");
 | 
				
			||||||
 | 
					                          //123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-
 | 
				
			||||||
 | 
					                          //      123456789-123456789-123456789-123 56789-123456789-123456789-123456789-
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case PAPELETAS_SITIO:
 | 
				
			||||||
 | 
					        fprintf( file_out, "Listado de hermanos que Realizan la estacion de Penitencia\n\r\n\r");
 | 
				
			||||||
 | 
					        fprintf( file_out, "N<EFBFBD>Hno  Nombre (completo)                    Antig<69>edad    Telefono\n\r\n\r");
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ImprimeListaSitios(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  char buffer[500];
 | 
				
			||||||
 | 
					  BDatos Hnos, Hnas;
 | 
				
			||||||
 | 
					  char CMen;  struct textsettingstype texttypeinfo;
 | 
				
			||||||
 | 
					  void *Imagen;
 | 
				
			||||||
 | 
					  int ok = 0, enc, CtoVirgen, Insignia;
 | 
				
			||||||
 | 
					  long i, j;
 | 
				
			||||||
 | 
					  HermStruct A, B;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FILE *file_out;
 | 
				
			||||||
 | 
					  file_out = stdprn;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ( (Imagen = malloc( imagesize(170, 165, 470, 315) ) ) == NULL )
 | 
				
			||||||
 | 
					                                                                   return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  getimage( 170, 165, 470, 315, Imagen );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Imprime_Estaticos(20, "Herm.img");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gettextsettings( &texttypeinfo );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  setcolor( BLANCO );
 | 
				
			||||||
 | 
					  outtextxy( 172+((296 - textwidth( "Listado de P. Sitios" ) ) / 2 ), 165, "Listado de P. Sitios" );
 | 
				
			||||||
 | 
					  setcolor( NEGRO );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  outtextxy( 172, 200, "Reordenando Hermanos" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Hnos.AbrirReg( "datos\\hermanos.dbf", sizeof( HermStruct ) );
 | 
				
			||||||
 | 
					  FICHA_REGISTRO = 0;
 | 
				
			||||||
 | 
					  if ( Config.item_ordenado[FICHA_REGISTRO] != 8 )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   Config.item_ordenado[FICHA_REGISTRO] = 8;
 | 
				
			||||||
 | 
					   if ( BConfig.EscribeReg((void *)&Config, 0) != OK )
 | 
				
			||||||
 | 
					                                                     Error(BConfig.cError);
 | 
				
			||||||
 | 
					   Hnos.SortReg(ComparaRegistros);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  outtextxy( 172, 225, "Reordenando Hermanas" );
 | 
				
			||||||
 | 
					  Hnas.AbrirReg( "datos\\hermanas.dbf", sizeof( HermStruct ) );
 | 
				
			||||||
 | 
					  FICHA_REGISTRO = 1;
 | 
				
			||||||
 | 
					  if ( Config.item_ordenado[FICHA_REGISTRO] != 8 )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   Config.item_ordenado[FICHA_REGISTRO] = 8;
 | 
				
			||||||
 | 
					   if ( BConfig.EscribeReg((void *)&Config, 0) != OK )
 | 
				
			||||||
 | 
					                                                    Error(BConfig.cError);
 | 
				
			||||||
 | 
					   Hnas.SortReg(ComparaRegistros);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  outtextxy( 172, 250, "Fusionando Bases    " );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ////////////// Dos Recorridos 1<> Cribar CRISTO
 | 
				
			||||||
 | 
					  //////////////                2<> Cribar VIRGEN
 | 
				
			||||||
 | 
					  for ( CtoVirgen = 0; CtoVirgen < 2; CtoVirgen++ )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   fprintf( file_out, "\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r");
 | 
				
			||||||
 | 
					   fprintf( file_out, "> Listado de Hermanos que realizan penitencia" );
 | 
				
			||||||
 | 
					   fprintf( file_out, "\n\r\n\r\n\r%s", (CtoVirgen==0) ? "C R I S T O" : "V I R G E N");
 | 
				
			||||||
 | 
					   fprintf( file_out, "\n\r\n\r\n\r> Ordenado por antiguedad y seg<65>n insignia");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Insignia = -1;
 | 
				
			||||||
 | 
					   i=0; j=0; ok = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   // Empezamos a comparar con los primeros datos validos
 | 
				
			||||||
 | 
					   while( Hnos.LeeReg( (void *)&A, i ) == OK && ( A.Varios.RealPenit==0 || (A.Varios.RealPenit && A.Varios.CtoVirgen != CtoVirgen ) ) ) i++;
 | 
				
			||||||
 | 
					   while( Hnas.LeeReg( (void *)&B, j ) == OK && ( B.Varios.RealPenit==0 || (B.Varios.RealPenit && B.Varios.CtoVirgen != CtoVirgen ) ) ) j++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   // Solo si es cierto que los datos de ambos son validos
 | 
				
			||||||
 | 
					   if ( Hnos.LeeReg( (void *)&A, i ) == OK && Hnas.LeeReg( (void *)&B, j ) == OK )
 | 
				
			||||||
 | 
					     while( !ok )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					       // Mientras A < B
 | 
				
			||||||
 | 
					       if ( ComparaRegistros( (void *)&A, (void *)&B ) < 0 )
 | 
				
			||||||
 | 
					       {
 | 
				
			||||||
 | 
					         // Si es una nueva insignia. Digo cual...
 | 
				
			||||||
 | 
					         if ( Insignia != A.Insignia )
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					            Insignia = A.Insignia;
 | 
				
			||||||
 | 
					            fputc( 12, file_out );
 | 
				
			||||||
 | 
					            fprintf( file_out, "\n\r>Hermanos con insignia: %s\n\r\n\r", Config.Insignia[Insignia+20*CtoVirgen].NInsignia );
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         // Imprimo y avanzo hermanos
 | 
				
			||||||
 | 
					         sprintf( buffer, "%s %s", A.Apellido1, A.Apellido2 );
 | 
				
			||||||
 | 
					         buffer[22] = '\0';
 | 
				
			||||||
 | 
					         fprintf( file_out, "%4ld  %-15s  %-22s  %02d-%02d-%04d  %-15s\n\r",
 | 
				
			||||||
 | 
					            A.NHno, A.Nombre, buffer, (int)A.Antig.da_day, (int)A.Antig.da_mon, (int)A.Antig.da_year, A.Telefono1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         i++;
 | 
				
			||||||
 | 
					         // Me coloco en el siguiente registro valido de HERMANOS
 | 
				
			||||||
 | 
					         while( ( enc = Hnos.LeeReg( (void *)&A, i ) ) == OK && ( A.Varios.RealPenit==0 || (A.Varios.RealPenit && A.Varios.CtoVirgen != CtoVirgen ) ) ) i++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         // que no hay, po fale, me salgo
 | 
				
			||||||
 | 
					         if ( enc != OK ) ok = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       } else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         // Si es una nueva insignia. Digo cual...
 | 
				
			||||||
 | 
					         if ( Insignia != B.Insignia )
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					           Insignia = B.Insignia;
 | 
				
			||||||
 | 
					           fputc( 12, file_out );
 | 
				
			||||||
 | 
					           fprintf( file_out, "\n\rHermanos con insignia: %s\n\r\n\r", Config.Insignia[Insignia+20*CtoVirgen].NInsignia );
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         // Imprimo y avanzo hermanas
 | 
				
			||||||
 | 
					         sprintf( buffer, "%s %s", B.Apellido1, B.Apellido2 );
 | 
				
			||||||
 | 
					         buffer[22] = '\0';
 | 
				
			||||||
 | 
					         fprintf( file_out, "%4ld  %-15s  %-22s  %02d-%02d-%04d  %-15s\n\r",
 | 
				
			||||||
 | 
					             B.NHno, B.Nombre, buffer, (int)B.Antig.da_day, (int)B.Antig.da_mon, (int)B.Antig.da_year, B.Telefono1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         j++;
 | 
				
			||||||
 | 
					         // Me coloco en el siguiente registro valido de HERMANAS
 | 
				
			||||||
 | 
					         while( ( enc = Hnas.LeeReg( (void *)&B, j ) ) == OK && ( B.Varios.RealPenit==0 || (B.Varios.RealPenit && B.Varios.CtoVirgen != CtoVirgen ) ) ) j++;
 | 
				
			||||||
 | 
					         // que no hay, po fale, me salgo
 | 
				
			||||||
 | 
					         if ( enc != OK ) ok = 1;
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   // Imprimo la base que quede por imprimir
 | 
				
			||||||
 | 
					   if ( Hnos.LeeReg( (void *)&A, i ) == OK )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					     // Siguiente dato valido de hermanos
 | 
				
			||||||
 | 
					     while( ( enc = Hnos.LeeReg( (void *)&A, i ) ) == OK && ( A.Varios.RealPenit==0 || (A.Varios.RealPenit && A.Varios.CtoVirgen != CtoVirgen ) ) ) i++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     while ( enc == OK )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					       // Falta mostrar la insignia ???
 | 
				
			||||||
 | 
					       if ( Insignia != A.Insignia )
 | 
				
			||||||
 | 
					       {
 | 
				
			||||||
 | 
					        Insignia = A.Insignia;
 | 
				
			||||||
 | 
					        fputc( 12, file_out );
 | 
				
			||||||
 | 
					        fprintf( file_out, "\n\rHermanos con insignia: %s\n\r\n\r", Config.Insignia[Insignia+20*CtoVirgen].NInsignia );
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       // Imprimo hermanos
 | 
				
			||||||
 | 
					       sprintf( buffer, "%s %s", A.Apellido1, A.Apellido2 );
 | 
				
			||||||
 | 
					       buffer[22] = '\0';
 | 
				
			||||||
 | 
					       fprintf( file_out, "%4ld  %-15s  %-22s  %02d-%02d-%04d  %-15s\n\r",
 | 
				
			||||||
 | 
					           A.NHno, A.Nombre, buffer, (int)A.Antig.da_day, (int)A.Antig.da_mon, (int)A.Antig.da_year, A.Telefono1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       i++;
 | 
				
			||||||
 | 
					       // Siguiente dato valido
 | 
				
			||||||
 | 
					       while( ( enc = Hnos.LeeReg( (void *)&A, i ) ) == OK && ( A.Varios.RealPenit==0 || (A.Varios.RealPenit && A.Varios.CtoVirgen != CtoVirgen ) ) ) i++;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   } else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     // Siguiente dato valido de HERMANAS
 | 
				
			||||||
 | 
					     while( ( enc = Hnas.LeeReg( (void *)&B, j ) ) == OK && ( B.Varios.RealPenit==0 || (B.Varios.RealPenit && B.Varios.CtoVirgen != CtoVirgen ) ) ) j++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     while ( enc == OK )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					       // Se conoce la insignia???
 | 
				
			||||||
 | 
					       if ( Insignia != B.Insignia )
 | 
				
			||||||
 | 
					       {
 | 
				
			||||||
 | 
					        Insignia = B.Insignia;
 | 
				
			||||||
 | 
					        fputc( 12, file_out );
 | 
				
			||||||
 | 
					        fprintf( file_out, "\n\rHermanos con insignia: %s\n\r\n\r", Config.Insignia[Insignia+20*CtoVirgen].NInsignia );
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       // Imprimo hermanos
 | 
				
			||||||
 | 
					       sprintf( buffer, "%s %s", B.Apellido1, B.Apellido2 );
 | 
				
			||||||
 | 
					       buffer[22] = '\0';
 | 
				
			||||||
 | 
					       fprintf( file_out, "%4ld  %-15s  %-22s  %02d-%02d-%04d  %-15s\n\r",
 | 
				
			||||||
 | 
					           B.NHno, B.Nombre, buffer, (int)B.Antig.da_day, (int)B.Antig.da_mon, (int)B.Antig.da_year, B.Telefono1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       j++;
 | 
				
			||||||
 | 
					       while( ( enc = Hnas.LeeReg( (void *)&B, j ) ) == OK && ( B.Varios.RealPenit==0 || (B.Varios.RealPenit && B.Varios.CtoVirgen != CtoVirgen ) ) ) j++;
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Hnos.CerrarReg();
 | 
				
			||||||
 | 
					   Hnas.CerrarReg();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  settextstyle( texttypeinfo.font, texttypeinfo.direction, texttypeinfo.charsize );
 | 
				
			||||||
 | 
					  putimage( 170, 165, Imagen, COPY_PUT );
 | 
				
			||||||
 | 
					  free( Imagen );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ImprimeFacturas(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 long i;
 | 
				
			||||||
 | 
					 char pag;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int Center, lineas = 2, CMen, PagInicio, PagFin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char Mensaje[][50] = { "Para interrumpir", "pulse una tecla" };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 OptenPaginasIniFin( &PagInicio, &PagFin, BHerm.Registros() );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Imprime_Estaticos(20, "Herm.img");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  setcolor( 63 );  outtextxy( 172, 165, "Imprimiendo Facturas" );
 | 
				
			||||||
 | 
					  setcolor( ROJO );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for ( CMen = 0; CMen < lineas; CMen++ )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   Center= (296 - textwidth( Mensaje[CMen] ) ) / 2;
 | 
				
			||||||
 | 
					   outtextxy( 172+Center, 200+20*CMen, Mensaje[CMen] );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   while ( !Comprueba_Impresora() )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    if ( !Optar( 1, "ERROR IMPRESORA", "Encienda la impresora", "y pulse ACEPTAR para continuar", NULL ) )
 | 
				
			||||||
 | 
					                                                                               return;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					  pag = 0;
 | 
				
			||||||
 | 
					  PagInicio--;
 | 
				
			||||||
 | 
					  for ( i=PagInicio; i < BHerm.Registros() && i < PagFin; i++, pag++ )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   if ( pag == 3 ) { pag = 0; fputc( 12, stdprn ); }
 | 
				
			||||||
 | 
					   BHerm.LeeReg( (void *)&SHerm, i );   //123456789-123456789-1234567
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   fprintf( stdprn, "                   %4ld  Alcal<61> de Guadaira              #%ld#", SHerm.NHno, Config.CuotaBaseFam[ SHerm.Varios.CuotaFam == 0 ? 0 : 1 ] );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "                   %02d-%02d-%04d              %d / %d", (int)FechaActual.da_day, (int)FechaActual.da_mon, (int)FechaActual.da_year,  FechaActual.da_year + 1, FechaActual.da_year);
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "            %s %s %s", SHerm.Nombre, SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "            %s%s%s%s%s", SHerm.Direccion, (SHerm.Num[0]=='\0')?"":",", SHerm.Num,
 | 
				
			||||||
 | 
					            (SHerm.Piso[0]=='\0')?"":",", SHerm.Piso );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "            %s (%s)", SHerm.Poblacion, SHerm.Provincia );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "            C.P. %ld", SHerm.CodP );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   if ( kbhit() )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    getch();
 | 
				
			||||||
 | 
					    if ( Optar( 1, "CANCELAR TRABAJO?", "Desea Cancelar la impresion", "el trabajo aun no ha concluido", NULL ) )
 | 
				
			||||||
 | 
					                                                                                         break;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ImprimeEtiquetas(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 long i; char pag, buffer[80];
 | 
				
			||||||
 | 
					 int Center, lineas = 2, CMen;
 | 
				
			||||||
 | 
					 int PagInicio, PagFin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char Mensaje[][50] = { "Para interrumpir", "pulse una tecla" };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 OptenPaginasIniFin( &PagInicio, &PagFin, BHerm.Registros() );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Imprime_Estaticos(20, "Herm.img");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  setcolor( 63 );  outtextxy( 172, 165, "Imprimiendo Etiquetas" );
 | 
				
			||||||
 | 
					  setcolor( ROJO );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for ( CMen = 0; CMen < lineas; CMen++ )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   Center= (296 - textwidth( Mensaje[CMen] ) ) / 2;
 | 
				
			||||||
 | 
					   outtextxy( 172+Center, 200+20*CMen, Mensaje[CMen] );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   while ( !Comprueba_Impresora() )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    if ( !Optar( 1, "ERROR IMPRESORA", "Encienda la impresora", "y pulse ACEPTAR para continuar", NULL ) )
 | 
				
			||||||
 | 
					                                                                               return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  pag = 0;
 | 
				
			||||||
 | 
					  PagInicio--;
 | 
				
			||||||
 | 
					  for ( i=PagInicio; i < BHerm.Registros() && i < PagFin; /*i+=2, */pag++ )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   if ( pag >= 3*12*2 )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    if ( !Optar( 1, "NUEVA PAGINA", "Por favor, realinee la pagina", "y pulse una tecla", NULL ) )
 | 
				
			||||||
 | 
					                 return;
 | 
				
			||||||
 | 
					    pag = 0;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   do { BHerm.LeeReg( (void *)&SHerm, i ); i++; } while( !SHerm.Varios.Notific && i < BHerm.Registros() );
 | 
				
			||||||
 | 
					   do { BHerm.LeeReg( (void *)&BHtmp,     i ); i++; } while( !SHerm.Varios.Notific && i < BHerm.Registros() );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "N<EFBFBD> Hermano: %4ld                        N<> de Hermano: %4ld", SHerm.NHno, BHtmp.NHno );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   sprintf( buffer, "%s %s %s", SHerm.Nombre, SHerm.Apellido1, SHerm.Apellido2 );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "%-37s   ", buffer );
 | 
				
			||||||
 | 
					   sprintf( buffer, "%s %s %s", BHtmp.Nombre, BHtmp.Apellido1, BHtmp.Apellido2 );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "%-37s", buffer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, (SHerm.Num[0]=='\0')?"":",", SHerm.Num, (SHerm.Piso[0]=='\0')?"":",", SHerm.Piso );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "%-37s   ", buffer );
 | 
				
			||||||
 | 
					   sprintf( buffer, "%s%s%s%s%s", BHtmp.Direccion, (BHtmp.Num[0]=='\0')?"":",", BHtmp.Num, (BHtmp.Piso[0]=='\0')?"":",", BHtmp.Piso );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "%-37s", buffer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   sprintf( buffer, "%s (%s)", SHerm.Poblacion, SHerm.Provincia );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "%-37s   ", buffer );
 | 
				
			||||||
 | 
					   sprintf( buffer, "%s (%s)", BHtmp.Poblacion, BHtmp.Provincia );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "%-37s", buffer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "C.P. %5ld                              C.P. %5ld", SHerm.CodP, BHtmp.CodP );
 | 
				
			||||||
 | 
					   fprintf( stdprn, "\n\r" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if ( kbhit() )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    getch();
 | 
				
			||||||
 | 
					    if ( Optar( 1, "CANCELAR IMPRESION ?", "Desea Cancelar la impresion", "el trabajo aun no ha concluido ?", NULL ) )
 | 
				
			||||||
 | 
					                                                                                  break ;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void OptenPaginasIniFin( int *Inicio, int *Fin, int NRegistros )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 void far *Imagen;
 | 
				
			||||||
 | 
					 char buffer[80];
 | 
				
			||||||
 | 
					 struct textsettingstype texttypeinfo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 *Inicio = 1;
 | 
				
			||||||
 | 
					 *Fin    = NRegistros;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( (Imagen = malloc( JD_imagesize(170, 165, 470, 315) ) ) != NULL )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  getimage( 170, 165, 470, 315, Imagen );
 | 
				
			||||||
 | 
					  gettextsettings( &texttypeinfo );
 | 
				
			||||||
 | 
					  Imprime_Estaticos(20, "Herm.img");
 | 
				
			||||||
 | 
					  settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  outtextxy( 175, 220,   "Ficha inicial:");
 | 
				
			||||||
 | 
					  outtextxy( 175, 260,   "Ficha final:");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  sprintf( buffer, "%d", (*Inicio) );
 | 
				
			||||||
 | 
					  InputCadenaG_T5(buffer, 0, 5, BLANCO, AZUL, 320, 220, 460, 240 );
 | 
				
			||||||
 | 
					  (*Inicio) = atoi(buffer);
 | 
				
			||||||
 | 
					  if ( *Inicio < 0 ) *Inicio = 0;
 | 
				
			||||||
 | 
					  sprintf( buffer, "%d", (*Fin) );
 | 
				
			||||||
 | 
					  InputCadenaG_T5(buffer, 0, 5, BLANCO, AZUL, 320, 260, 460, 280 );
 | 
				
			||||||
 | 
					  (*Fin   ) = atoi(buffer);
 | 
				
			||||||
 | 
					  if ( *Fin > NRegistros ) *Fin = NRegistros;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  putimage( 170, 165, Imagen, COPY_PUT );
 | 
				
			||||||
 | 
					  settextstyle( texttypeinfo.font, texttypeinfo.direction, texttypeinfo.charsize );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  farfree( Imagen );
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										496
									
								
								HERM_MM.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										496
									
								
								HERM_MM.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,496 @@
 | 
				
			|||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Menus                                                                   *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                            *|
 | 
				
			||||||
 | 
					|*                M<>dulo encargado de generar menus, una vez se le pasa     *|
 | 
				
			||||||
 | 
					|*                el puntero a la estructura definida.                      *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*                                         Fecha:  21-07-96  14.34 / 18.00  *|
 | 
				
			||||||
 | 
					|*                                                           23.13 / 00.30  *|
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <dos.h>
 | 
				
			||||||
 | 
					#include <conio.h>
 | 
				
			||||||
 | 
					#include <alloc.h>
 | 
				
			||||||
 | 
					#include <graphics.h>
 | 
				
			||||||
 | 
					#include "..\libs\make_bot\make_bot.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef MB_TeclaPulsada()
 | 
				
			||||||
 | 
					#define MB_TeclaPulsada() kbhit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "herm.h"
 | 
				
			||||||
 | 
					#include "..\libs\bdatos\bdatos.hh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define CONTRAIDO 0
 | 
				
			||||||
 | 
					#define EXPANDIDO 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern unsigned _stklen = 18432U;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern BDatos BConfig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int far Espera_TeclaRaton(void);
 | 
				
			||||||
 | 
					void ErrorOccurred(int errorcode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int Topicos = 5;
 | 
				
			||||||
 | 
					int SubTopicos[] = { 3, 4, 4, 9, 3 };
 | 
				
			||||||
 | 
					void far *Fondo_Menu; int xST, yST;
 | 
				
			||||||
 | 
					char *email="Jose-David.Guillen@cs.us.es";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int MenuPrincipal(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ContraeMenu(void);
 | 
				
			||||||
 | 
					void ExpandeMenu( int Menu );
 | 
				
			||||||
 | 
					void SeleccionaTopico(int Topico, char color);
 | 
				
			||||||
 | 
					void SeleccionaSubTopico( int Topico, int SubTopico, int color );
 | 
				
			||||||
 | 
					void CheckRaton_Topic(int *Topico, int *SubTopico, int *Menu);
 | 
				
			||||||
 | 
					int  GestionHermanos( char HnoHna, int Accion );
 | 
				
			||||||
 | 
					void LeeConfiguracion(void);
 | 
				
			||||||
 | 
					void OrdenaBase( char HnoHna );
 | 
				
			||||||
 | 
					void GestionInsignias(void);
 | 
				
			||||||
 | 
					void ListadosRapidos( int Tipo_de_Listado );
 | 
				
			||||||
 | 
					void ConfiguracionGlobal(void);
 | 
				
			||||||
 | 
					void Imprime_Dibujo(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int handler(int errval,int ax,int bp,int si);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void main(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 int Item;
 | 
				
			||||||
 | 
					 struct date FechaActual;
 | 
				
			||||||
 | 
					 getdate( &FechaActual );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( carga_botones( "Herm.img" ) != OK )
 | 
				
			||||||
 | 
					                                        return;
 | 
				
			||||||
 | 
					 LeeConfiguracion();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Initialize( 9, 2 ); // Inicializa el Modo Gr<47>fico
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 harderr(handler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 True_Push = ON;                        PunteroRaton = 1;
 | 
				
			||||||
 | 
					 inicializa_raton_grafico( 0, 0, 639, 479 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 while(1){
 | 
				
			||||||
 | 
					  Item = MenuPrincipal();
 | 
				
			||||||
 | 
					  switch ( Item>>8 )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   // Archivo
 | 
				
			||||||
 | 
					   case 1:
 | 
				
			||||||
 | 
					        switch( Item & 0x00FF )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					         // Configuracion
 | 
				
			||||||
 | 
					         case 1:
 | 
				
			||||||
 | 
					              ConfiguracionGlobal();
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					         // Mantenimiento
 | 
				
			||||||
 | 
					         case 2:
 | 
				
			||||||
 | 
					              GestionInsignias();
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					         case 3:
 | 
				
			||||||
 | 
					              BConfig.CerrarReg();
 | 
				
			||||||
 | 
					              closegraph();
 | 
				
			||||||
 | 
					              printf("\nJos<EFBFBD> David Guill<6C>n      ||  _-<2D>FuTuRe ViSiOn<4F>-_ ");
 | 
				
			||||||
 | 
					              printf("\n\ne-mail: %s\n", email);
 | 
				
			||||||
 | 
					              return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   // Hermanos / Hermanas
 | 
				
			||||||
 | 
					   case 2:
 | 
				
			||||||
 | 
					   case 3:
 | 
				
			||||||
 | 
					        switch( Item & 0x00FF )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					         // Altas
 | 
				
			||||||
 | 
					         case ALTAS:
 | 
				
			||||||
 | 
					               if ( ( Item >> 8 ) == 2 )
 | 
				
			||||||
 | 
					                            GestionHermanos( HERMANOS, ALTAS );
 | 
				
			||||||
 | 
					              else
 | 
				
			||||||
 | 
					                            GestionHermanos( HERMANAS, ALTAS );
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					         // Bajas
 | 
				
			||||||
 | 
					         case BAJAS:
 | 
				
			||||||
 | 
					              if ( ( Item >> 8 ) == 2 )
 | 
				
			||||||
 | 
					                            GestionHermanos( HERMANOS, BAJAS );
 | 
				
			||||||
 | 
					              else
 | 
				
			||||||
 | 
					                            GestionHermanos( HERMANAS, BAJAS );
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					         // Consultas / Modificaciones
 | 
				
			||||||
 | 
					         case CONSULTAS:
 | 
				
			||||||
 | 
					              if ( ( Item >> 8 ) == 2 )
 | 
				
			||||||
 | 
					                            GestionHermanos( HERMANOS, CONSULTAS );
 | 
				
			||||||
 | 
					              else
 | 
				
			||||||
 | 
					                            GestionHermanos( HERMANAS, CONSULTAS );
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					         case REORDENAR:
 | 
				
			||||||
 | 
					              if ( ( Item >> 8 ) == 2 )
 | 
				
			||||||
 | 
					                            OrdenaBase( HERMANOS );
 | 
				
			||||||
 | 
					              else
 | 
				
			||||||
 | 
					                            OrdenaBase( HERMANAS );
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   // Listados
 | 
				
			||||||
 | 
					   case 4:
 | 
				
			||||||
 | 
					         ListadosRapidos( ( Item & 0x00FF ) );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   // Ayuda
 | 
				
			||||||
 | 
					   case 5:
 | 
				
			||||||
 | 
					        Optar( 0, "Acerca de...", "Programa realizado por:", "Jos<EFBFBD> David Guill<6C>n || 1996", "e-mail:", "Jose-David.Guillen@cs.us.es", NULL );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					int MenuPrincipal(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int Menu = CONTRAIDO;
 | 
				
			||||||
 | 
					  int Topico = 0, SubTopico = 0, ok=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Memoria para el cuadro mas grande que coja
 | 
				
			||||||
 | 
					  if ( ( Fondo_Menu = farmalloc( (long)(64000L/*+4*/) ) ) == NULL )
 | 
				
			||||||
 | 
					                                                  Error( "No hay suficiente memoria" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Imprime men<65> principal
 | 
				
			||||||
 | 
					  Imprime_Estaticos(10, "herm.img");
 | 
				
			||||||
 | 
					  Imprime_Dibujo();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SeleccionaTopico( Topico, EGA_RED );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  do
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   Espera_TeclaRaton();
 | 
				
			||||||
 | 
					   if ( !kbhit() )
 | 
				
			||||||
 | 
					    CheckRaton_Topic(&Topico, &SubTopico, &Menu);
 | 
				
			||||||
 | 
					   else
 | 
				
			||||||
 | 
					   switch( getch() )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    // Intro
 | 
				
			||||||
 | 
					    case 13:
 | 
				
			||||||
 | 
					         if ( Menu == CONTRAIDO )
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					          Menu = EXPANDIDO;           ExpandeMenu( Topico );
 | 
				
			||||||
 | 
					          SubTopico = 0;
 | 
				
			||||||
 | 
					          SeleccionaSubTopico( Topico, SubTopico,  EGA_RED );
 | 
				
			||||||
 | 
					         } else {
 | 
				
			||||||
 | 
					          ContraeMenu();
 | 
				
			||||||
 | 
					          ok = 1;
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         break;
 | 
				
			||||||
 | 
					    // Esc
 | 
				
			||||||
 | 
					    case 27:
 | 
				
			||||||
 | 
					         if ( Menu == EXPANDIDO )
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					          Menu = CONTRAIDO;           ContraeMenu();
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         break;
 | 
				
			||||||
 | 
					    case  0:
 | 
				
			||||||
 | 
					      switch( getch() )
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					       // Flecha Izquierda
 | 
				
			||||||
 | 
					       case  75:
 | 
				
			||||||
 | 
					       case  15:
 | 
				
			||||||
 | 
					            if ( Menu != CONTRAIDO )
 | 
				
			||||||
 | 
					                                   ContraeMenu();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					             SeleccionaTopico( Topico, EGA_LIGHTGRAY );
 | 
				
			||||||
 | 
					             Topico--; if ( Topico<0 ) Topico = Topicos-1;
 | 
				
			||||||
 | 
					             SeleccionaTopico( Topico, EGA_RED       );
 | 
				
			||||||
 | 
					             SubTopico = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ( Menu != CONTRAIDO )
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                                   ExpandeMenu( Topico );
 | 
				
			||||||
 | 
					                                   SeleccionaSubTopico( Topico, SubTopico,  EGA_RED );
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					       // Flecha Derecha
 | 
				
			||||||
 | 
					       case  77:
 | 
				
			||||||
 | 
					       case   9:
 | 
				
			||||||
 | 
					            if ( Menu != CONTRAIDO )
 | 
				
			||||||
 | 
					                                   ContraeMenu();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					             SeleccionaTopico( Topico, EGA_LIGHTGRAY );
 | 
				
			||||||
 | 
					             Topico++; if ( Topico>=Topicos ) Topico = 0;
 | 
				
			||||||
 | 
					             SeleccionaTopico( Topico, EGA_RED       );
 | 
				
			||||||
 | 
					             SubTopico = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ( Menu != CONTRAIDO )
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                                   ExpandeMenu( Topico );
 | 
				
			||||||
 | 
					                                   SeleccionaSubTopico( Topico, SubTopico,  EGA_RED );
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					       // Flecha Arriba
 | 
				
			||||||
 | 
					       case  72:
 | 
				
			||||||
 | 
					            if ( Menu == EXPANDIDO )
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					             SeleccionaSubTopico( Topico, SubTopico, EGA_LIGHTGRAY );
 | 
				
			||||||
 | 
					             SubTopico--; if ( SubTopico < 0 ) SubTopico = SubTopicos[Topico]-1;
 | 
				
			||||||
 | 
					             SeleccionaSubTopico( Topico, SubTopico,  EGA_RED );
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					       // Flecha Abajo
 | 
				
			||||||
 | 
					       case  80:
 | 
				
			||||||
 | 
					            if ( Menu == EXPANDIDO )
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					             SeleccionaSubTopico( Topico, SubTopico, EGA_LIGHTGRAY );
 | 
				
			||||||
 | 
					             SubTopico++; if ( SubTopico >= SubTopicos[Topico] ) SubTopico = 0;
 | 
				
			||||||
 | 
					             SeleccionaSubTopico( Topico, SubTopico,  EGA_RED );
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					             Menu = EXPANDIDO;           ExpandeMenu( Topico );
 | 
				
			||||||
 | 
					             SubTopico = 0;
 | 
				
			||||||
 | 
					             SeleccionaSubTopico( Topico, SubTopico,  EGA_RED );
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					 }while(!ok);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 farfree( Fondo_Menu );
 | 
				
			||||||
 | 
					 return ( (Topico+1)<<8 )+(SubTopico+1);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CheckRaton_Topic(int *Topico, int *SubTopico, int *Menu)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  // Men<65> principal
 | 
				
			||||||
 | 
					  if ( y_raton > 9 && y_raton < 27 )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    if ( x_raton > 8 && x_raton < 90 && *Topico != 0 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					       ContraeMenu(); SeleccionaTopico( *Topico, EGA_LIGHTGRAY );
 | 
				
			||||||
 | 
					       *Topico = 0; *SubTopico = 0;
 | 
				
			||||||
 | 
					       *Menu = EXPANDIDO;           ExpandeMenu( *Topico );
 | 
				
			||||||
 | 
					       SeleccionaTopico( *Topico, EGA_RED );
 | 
				
			||||||
 | 
					       SeleccionaSubTopico( *Topico, *SubTopico, EGA_RED );
 | 
				
			||||||
 | 
					    } else
 | 
				
			||||||
 | 
					    if ( x_raton > 105 && x_raton < 197 && *Topico != 1 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					       ContraeMenu(); SeleccionaTopico( *Topico, EGA_LIGHTGRAY );
 | 
				
			||||||
 | 
					       *Topico = 1; *SubTopico = 0;
 | 
				
			||||||
 | 
					       *Menu = EXPANDIDO;           ExpandeMenu( *Topico );
 | 
				
			||||||
 | 
					       SeleccionaTopico( *Topico, EGA_RED );
 | 
				
			||||||
 | 
					       SeleccionaSubTopico( *Topico,  *SubTopico, EGA_RED );
 | 
				
			||||||
 | 
					    } else
 | 
				
			||||||
 | 
					    if ( x_raton > 215 && x_raton < 307 && *Topico != 2 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					       ContraeMenu(); SeleccionaTopico( *Topico, EGA_LIGHTGRAY );
 | 
				
			||||||
 | 
					       *Topico = 2; *SubTopico = 0;
 | 
				
			||||||
 | 
					       *Menu = EXPANDIDO;           ExpandeMenu( *Topico );
 | 
				
			||||||
 | 
					       SeleccionaTopico( *Topico, EGA_RED );
 | 
				
			||||||
 | 
					       SeleccionaSubTopico( *Topico,  *SubTopico, EGA_RED );
 | 
				
			||||||
 | 
					    } else
 | 
				
			||||||
 | 
					    if ( x_raton > 325 && x_raton < 412 && *Topico != 3 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					       ContraeMenu(); SeleccionaTopico( *Topico, EGA_LIGHTGRAY );
 | 
				
			||||||
 | 
					       *Topico = 3; *SubTopico = 0;
 | 
				
			||||||
 | 
					       *Menu = EXPANDIDO;           ExpandeMenu( *Topico );
 | 
				
			||||||
 | 
					       SeleccionaTopico( *Topico, EGA_RED );
 | 
				
			||||||
 | 
					       SeleccionaSubTopico( *Topico,  *SubTopico, EGA_RED );
 | 
				
			||||||
 | 
					    } else
 | 
				
			||||||
 | 
					    if ( x_raton > 560 && x_raton < 630 && *Topico != 4 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					       ContraeMenu(); SeleccionaTopico( *Topico, EGA_LIGHTGRAY );
 | 
				
			||||||
 | 
					       *Topico = 4; *SubTopico = 0;
 | 
				
			||||||
 | 
					       *Menu = EXPANDIDO;           ExpandeMenu( *Topico );
 | 
				
			||||||
 | 
					       SeleccionaTopico( *Topico, EGA_RED );
 | 
				
			||||||
 | 
					       SeleccionaSubTopico( *Topico,  *SubTopico, EGA_RED );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SeleccionaTopico(int Topico, char color)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  setcolor( color );
 | 
				
			||||||
 | 
					  switch( Topico )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   case 0:
 | 
				
			||||||
 | 
					        rectangle(   8, 9, 90, 27 );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   case 1:
 | 
				
			||||||
 | 
					        rectangle( 105, 9, 197, 27 );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   case 2:
 | 
				
			||||||
 | 
					        rectangle( 215, 9, 307, 27 );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   case 3:
 | 
				
			||||||
 | 
					        rectangle( 325, 9, 412, 27 );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   case 4:
 | 
				
			||||||
 | 
					        rectangle( 560, 9, 630, 27 );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SeleccionaSubTopico( int Topico, int SubTopico, int color )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 setcolor( color );
 | 
				
			||||||
 | 
					 switch( Topico )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  case 0:
 | 
				
			||||||
 | 
					       if ( SubTopico == 2 )
 | 
				
			||||||
 | 
					         rectangle( 8, 40+20*3, 157, 40+20*4 );
 | 
				
			||||||
 | 
					       else
 | 
				
			||||||
 | 
					         rectangle( 8, 40+20*SubTopico, 157, 40+20*( SubTopico + 1 ) );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 1:
 | 
				
			||||||
 | 
					       if ( SubTopico == 3 )
 | 
				
			||||||
 | 
					         rectangle( 108, 40+20*4, 257, 40+20*5 );
 | 
				
			||||||
 | 
					       else
 | 
				
			||||||
 | 
					         rectangle( 108, 40+20*SubTopico, 257, 40+20*(SubTopico+1) );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 2:
 | 
				
			||||||
 | 
					       if ( SubTopico == 3 )
 | 
				
			||||||
 | 
					         rectangle( 218, 40+20*4, 367, 40+20*5 );
 | 
				
			||||||
 | 
					       else
 | 
				
			||||||
 | 
					         rectangle( 218, 40+20*SubTopico, 367, 40+20*( SubTopico + 1 ) );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 3:
 | 
				
			||||||
 | 
					         rectangle( 328, 40+20*SubTopico, 482, 40+20*( SubTopico + 1 ) );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 4:
 | 
				
			||||||
 | 
					         rectangle( 483, 40+20*SubTopico, 627, 40+20*( SubTopico + 1 ) );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ExpandeMenu( int Menu )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 switch( Menu )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  case 0:
 | 
				
			||||||
 | 
					       xST = 5; yST = 35;
 | 
				
			||||||
 | 
					       getimage( 5, 35, 160, 40+20*4+5, Fondo_Menu );
 | 
				
			||||||
 | 
					       setfillstyle(SOLID_FILL, EGA_LIGHTGRAY); bar( 5, 35, 160, 40+20*4+5 );
 | 
				
			||||||
 | 
					       setcolor( EGA_BLACK );                   rectangle( 5, 35, 160, 40+20*4+5 );
 | 
				
			||||||
 | 
					       setcolor( EGA_BLUE );
 | 
				
			||||||
 | 
					       outtextxy(   8, 40+20*0, " Configuracion" );
 | 
				
			||||||
 | 
					       outtextxy(   8, 40+20*1, " Insignias    " );
 | 
				
			||||||
 | 
					       outtextxy(   8, 40+20*2, " -------------" );
 | 
				
			||||||
 | 
					       outtextxy(   8, 40+20*3, "   ( Salir )  " );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 1:
 | 
				
			||||||
 | 
					       xST = 105; yST = 35;
 | 
				
			||||||
 | 
					       getimage( 105, 35, 260, 40+20*5+5, Fondo_Menu );
 | 
				
			||||||
 | 
					       setfillstyle(SOLID_FILL, EGA_LIGHTGRAY); bar( 105, 35, 260, 40+20*5+5 );
 | 
				
			||||||
 | 
					       setcolor( EGA_BLACK );                   rectangle( 105, 35, 260, 40+20*5+5 );
 | 
				
			||||||
 | 
					       setcolor( EGA_BLUE );
 | 
				
			||||||
 | 
					       outtextxy( 105, 40+20*0, " Altas de Hnos" );
 | 
				
			||||||
 | 
					       outtextxy( 105, 40+20*1, " Bajas de Hnos" );
 | 
				
			||||||
 | 
					       outtextxy( 105, 40+20*2, " Consul/Modif." );
 | 
				
			||||||
 | 
					       outtextxy( 105, 40+20*3, " -------------" );
 | 
				
			||||||
 | 
					       outtextxy( 105, 40+20*4, " Reordenar Hns" );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 2:
 | 
				
			||||||
 | 
					       xST = 215; yST = 35;
 | 
				
			||||||
 | 
					       getimage( 215, 35, 370, 40+20*5+5, Fondo_Menu );
 | 
				
			||||||
 | 
					       setfillstyle(SOLID_FILL, EGA_LIGHTGRAY); bar( 215, 35, 370, 40+20*5+5 );
 | 
				
			||||||
 | 
					       setcolor( EGA_BLACK );                   rectangle( 215, 35, 370, 40+20*5+5 );
 | 
				
			||||||
 | 
					       setcolor( EGA_BLUE );
 | 
				
			||||||
 | 
					       outtextxy( 215, 40+20*0, " Altas de Hnos" );
 | 
				
			||||||
 | 
					       outtextxy( 215, 40+20*1, " Bajas de Hnos" );
 | 
				
			||||||
 | 
					       outtextxy( 215, 40+20*2, " Consul/Modif." );
 | 
				
			||||||
 | 
					       outtextxy( 215, 40+20*3, " -------------" );
 | 
				
			||||||
 | 
					       outtextxy( 215, 40+20*4, " Reordenar Hns" );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 3:
 | 
				
			||||||
 | 
					       xST = 325; yST = 35;
 | 
				
			||||||
 | 
					       getimage( 325, 35, 485, 40+20*9+5, Fondo_Menu );
 | 
				
			||||||
 | 
					       setfillstyle(SOLID_FILL, EGA_LIGHTGRAY); bar( 325, 35, 485, 40+20*9+5 );
 | 
				
			||||||
 | 
					       setcolor( EGA_BLACK );                   rectangle( 325, 35, 485, 40+20*9+5 );
 | 
				
			||||||
 | 
					       setcolor( EGA_BLUE );
 | 
				
			||||||
 | 
					       outtextxy( 325, 40+20*0, " Votantes       " );
 | 
				
			||||||
 | 
					       outtextxy( 325, 40+20*1, " Acogido a Cuota" );
 | 
				
			||||||
 | 
					       outtextxy( 325, 40+20*2, " Rec. Notificac." );
 | 
				
			||||||
 | 
					       outtextxy( 325, 40+20*3, " Papeletas de S." );
 | 
				
			||||||
 | 
					       outtextxy( 325, 40+20*4, " Listado Hnos   " );
 | 
				
			||||||
 | 
					       outtextxy( 325, 40+20*5, " Fichas Hnos    " );
 | 
				
			||||||
 | 
					       outtextxy( 325, 40+20*6, " T<>nicas Hdad.  " );
 | 
				
			||||||
 | 
					       outtextxy( 325, 40+20*7, " Facturas       " );
 | 
				
			||||||
 | 
					       outtextxy( 325, 40+20*8, " Etiquetas Dir. " );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 4:
 | 
				
			||||||
 | 
					       xST = 480; yST = 35;
 | 
				
			||||||
 | 
					       getimage( 480, 35, 630, 40+20*3+5, Fondo_Menu );
 | 
				
			||||||
 | 
					       setfillstyle(SOLID_FILL, EGA_LIGHTGRAY); bar( 480, 35, 630, 40+20*3+5 );
 | 
				
			||||||
 | 
					       setcolor( EGA_BLACK );                   rectangle( 480, 35, 630, 40+20*3+5 );
 | 
				
			||||||
 | 
					       setcolor( EGA_BLUE );
 | 
				
			||||||
 | 
					       outtextxy( 480, 40+20*0, " ------------" );
 | 
				
			||||||
 | 
					       outtextxy( 480, 40+20*1, " Creditos    " );
 | 
				
			||||||
 | 
					       outtextxy( 480, 40+20*2, " Acerca de..." );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ContraeMenu(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 if ( Fondo_Menu != NULL )
 | 
				
			||||||
 | 
					      putimage( xST, yST, Fondo_Menu, COPY_PUT );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Imprime_Dibujo(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 FILE *fp;
 | 
				
			||||||
 | 
					 int alto, ancho; unsigned char byte;
 | 
				
			||||||
 | 
					 int contador;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( ( fp = fopen ( "insignia.pcx", "rb" ) ) != NULL )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Saltamos la cabecera
 | 
				
			||||||
 | 
					  fseek( fp, 128, SEEK_SET );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(alto=0; alto<128; alto++)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    for(ancho=0; ancho<128; )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      byte=getc(fp);
 | 
				
			||||||
 | 
					      if(byte<=0xC0)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        if  ( byte != 255 )
 | 
				
			||||||
 | 
					                putpixel( ancho+256, alto+270, byte );
 | 
				
			||||||
 | 
						ancho++;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						contador=byte&0x3F; byte=getc(fp);
 | 
				
			||||||
 | 
						for(; contador>0; contador--)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
					          if  ( byte != 255 )
 | 
				
			||||||
 | 
					                putpixel( ancho+256, alto+270, byte );
 | 
				
			||||||
 | 
					          ancho++;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fclose( fp );
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										501
									
								
								HERM_UTL.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										501
									
								
								HERM_UTL.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,501 @@
 | 
				
			|||||||
 | 
					#include <stdarg.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <graphics.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <alloc.h>
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <conio.h>
 | 
				
			||||||
 | 
					#include <ctype.h>
 | 
				
			||||||
 | 
					#include <dos.h>
 | 
				
			||||||
 | 
					#include <io.h>
 | 
				
			||||||
 | 
					#include <bios.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "..\libs\make_bot\make_bot.h"
 | 
				
			||||||
 | 
					#include "herm.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern CONFIG Config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void BEEP(void);
 | 
				
			||||||
 | 
					void Escr_Mensaje(char *Encabezado, char lineas, char Mensaje[][50] );
 | 
				
			||||||
 | 
					int DifDate( struct date FechaF, struct date FechaO, struct date *FechaD );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int InputCadenaG_T5(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0, int X1, int Y1)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  // A todas las y les sumaba antes +RoW*12 parametro que indica la linea
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int  ls;                                      // longitud cadena
 | 
				
			||||||
 | 
					  char Status = 0;
 | 
				
			||||||
 | 
					  char *s1;                                     // puntero a cadena inicial
 | 
				
			||||||
 | 
					  int c, ok;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s1 = s;                                       // inicio cadena
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                setfillstyle(SOLID_FILL, cf);
 | 
				
			||||||
 | 
					                bar(X0, Y0, X1, Y1);
 | 
				
			||||||
 | 
					                setcolor(cc);		outtextxy( X0, Y0, s1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ls = strlen ( s );                            // Longitud de actual
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ( ls < lmax ) {
 | 
				
			||||||
 | 
							setcolor(BLANCO);
 | 
				
			||||||
 | 
							outtextxy( X0+textwidth( s1 ), Y0, "<EFBFBD>");
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s += ls;                                      // se coloca en el final
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  do{
 | 
				
			||||||
 | 
						c = getch();                            // obtiene tecla
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ( c == 27 ) Status = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ok = ( c == 27 || c == 13 || c == 0);              // 13 = INTRO || Especiales
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if ( c == 8  && ls > 0 && !ok ) {       //  8 = Back Space
 | 
				
			||||||
 | 
							ls--;
 | 
				
			||||||
 | 
							s--;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							*s = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							setfillstyle(SOLID_FILL, cf);
 | 
				
			||||||
 | 
					                bar(X0, Y0, X1, Y1);
 | 
				
			||||||
 | 
					                setcolor(cc);		outtextxy( X0, Y0, s1 );
 | 
				
			||||||
 | 
							setcolor(BLANCO);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							outtextxy( X0+textwidth( s1 ), Y0, "<EFBFBD>");
 | 
				
			||||||
 | 
							setcolor(cc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							if ( !numalp && c >= 32 && c <= 254  && ls < lmax) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								*s++ = c;
 | 
				
			||||||
 | 
								ls++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								*s = '\0';
 | 
				
			||||||
 | 
					                        setfillstyle(SOLID_FILL, cf);
 | 
				
			||||||
 | 
					                        bar(X0, Y0, X1, Y1);
 | 
				
			||||||
 | 
					                        setcolor(cc);		outtextxy( X0, Y0, s1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if ( ls < lmax ) {
 | 
				
			||||||
 | 
									setcolor(BLANCO);
 | 
				
			||||||
 | 
									outtextxy( X0+textwidth( s1 ), Y0, "<EFBFBD>");
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								if ( numalp && isdigit(c)  && ls < lmax) {
 | 
				
			||||||
 | 
									*s++ = c;
 | 
				
			||||||
 | 
									ls++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									*s = '\0';                              // Cero final
 | 
				
			||||||
 | 
					                                setfillstyle(SOLID_FILL, cf);
 | 
				
			||||||
 | 
					                                bar(X0, Y0, X1, Y1);
 | 
				
			||||||
 | 
					                                setcolor(cc);		outtextxy( X0, Y0, s1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									if ( ls < lmax ) {
 | 
				
			||||||
 | 
										setcolor(BLANCO);
 | 
				
			||||||
 | 
										outtextxy( X0+textwidth( s1 ), Y0, "<EFBFBD>");
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
 | 
				
			||||||
 | 
							else if( c == 27 ) {*s='\0'; ok = 1; }
 | 
				
			||||||
 | 
							/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
 | 
				
			||||||
 | 
							else BEEP();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }while(!ok);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ok = 1;
 | 
				
			||||||
 | 
					  *s = ' ';
 | 
				
			||||||
 | 
					  while( ok && ls >= 0 ) {
 | 
				
			||||||
 | 
							if(*s==' ') { *s = '\0'; s--; ls--;
 | 
				
			||||||
 | 
							} else { s++; ok = 0; }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  *s = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  while(kbhit()) getch();              // Vacia Buffer impidiendo falsas
 | 
				
			||||||
 | 
										//  pulsaciones...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return ( (Status<<8) + (ls&0x00FF) );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void BEEP(void){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sound(440);
 | 
				
			||||||
 | 
						delay(50);
 | 
				
			||||||
 | 
						nosound();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					char Optar( char *texto1, char *texto2, char *texto3 )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int ok = 0, inst = 0;
 | 
				
			||||||
 | 
					 struct textsettingstype textinfo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       void *C_Texto, *C_Aceptar, *C_Cancelar;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					C_Texto    = malloc( JD_imagesize(200, 212, 440, 267) );
 | 
				
			||||||
 | 
					C_Aceptar  = malloc( JD_imagesize(200, 270, 280, 295) );
 | 
				
			||||||
 | 
					C_Cancelar = malloc( JD_imagesize(360, 270, 440, 295) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if( C_Texto == NULL || C_Aceptar == NULL || C_Cancelar == NULL)  {
 | 
				
			||||||
 | 
					 closegraph();
 | 
				
			||||||
 | 
					 cprintf("\n\rSALIENDO");
 | 
				
			||||||
 | 
					 cprintf("\n\rImposible encontrar %ldKbytes en el Heap",
 | 
				
			||||||
 | 
												( JD_imagesize(118, 160, 521, 335) +
 | 
				
			||||||
 | 
												  JD_imagesize(118, 160, 521, 335) +
 | 
				
			||||||
 | 
												  JD_imagesize(118, 160, 521, 335)
 | 
				
			||||||
 | 
												)
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
					 exit(SIN_MEMORIA);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gettextsettings(&textinfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					settextstyle(SMALL_FONT, HORIZ_DIR, 5 );
 | 
				
			||||||
 | 
					// settextjustify(CENTER_TEXT, CENTER_TEXT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					getimage(200, 212, 440, 267, C_Texto);
 | 
				
			||||||
 | 
					getimage(200, 270, 280, 295, C_Aceptar);
 | 
				
			||||||
 | 
					getimage(360, 270, 440, 295, C_Cancelar);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Imprime_Estaticos(100, "herm.img");     // Imprime botones estaticos 'Seccion 20'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Imprime_Secuencia(2);	                  // Imprime secuencia 4.
 | 
				
			||||||
 | 
					  Imprime_Estaticos(101, "herm.img");     // Imprime textos estaticos 'Seccion 5'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setcolor( AZUL );
 | 
				
			||||||
 | 
					outtextxy( 210+( ( 230 - textwidth(texto1) ) / 2 ), 220, texto1 );
 | 
				
			||||||
 | 
					outtextxy( 210+( ( 230 - textwidth(texto2) ) / 2 ), 235, texto2 );
 | 
				
			||||||
 | 
					outtextxy( 210+( ( 230 - textwidth(texto3) ) / 2 ), 250, texto3 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while(!ok){				  // Bucle infinito
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 switch( Comprueba_Secuencia( 2, NULL ) ) {     // Iniciamos comprobacion de 2<> sec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       case  0:				  // No se pulso ningun BOTON
 | 
				
			||||||
 | 
										  // Pero el raton fue presionado en
 | 
				
			||||||
 | 
										  // algun sitio...
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       case -2:				  // Hay una tecla normal en BUFFER
 | 
				
			||||||
 | 
						       switch( getch() ) {  // La utilizamos
 | 
				
			||||||
 | 
							// ESC   ( CANCELAR )
 | 
				
			||||||
 | 
							case 14:
 | 
				
			||||||
 | 
								inst = 0;
 | 
				
			||||||
 | 
								ok   = 1;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
						       }
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       case -1:				  // Hay una tecla especial en BUFFER
 | 
				
			||||||
 | 
						       getch();			  // La eliminamos
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       // Boton Aceptar
 | 
				
			||||||
 | 
					       case  1:
 | 
				
			||||||
 | 
						       inst = 1;
 | 
				
			||||||
 | 
						       ok   = 1;
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       // Boton Cancelar
 | 
				
			||||||
 | 
					       case  2:
 | 
				
			||||||
 | 
						       inst = 0;
 | 
				
			||||||
 | 
						       ok   = 1;
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       default:
 | 
				
			||||||
 | 
						       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					putimage(200, 212, C_Texto, COPY_PUT);
 | 
				
			||||||
 | 
					putimage(200, 270, C_Aceptar, COPY_PUT);
 | 
				
			||||||
 | 
					putimage(360, 270, C_Cancelar, COPY_PUT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					free ( C_Texto    );
 | 
				
			||||||
 | 
					free ( C_Aceptar  );
 | 
				
			||||||
 | 
					free ( C_Cancelar );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					settextstyle(textinfo.font, textinfo.direction, textinfo.charsize );
 | 
				
			||||||
 | 
					settextjustify(textinfo.horiz, textinfo.vert);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return inst;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int file_exists(char *filename)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return (access(filename, 0) == 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int Comprueba_Impresora(void){
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 unsigned int tmp;
 | 
				
			||||||
 | 
					 union REGS Impresora_in, Impresora_out;
 | 
				
			||||||
 | 
					 struct byte {
 | 
				
			||||||
 | 
					  int a : 1;
 | 
				
			||||||
 | 
					  int b : 1;
 | 
				
			||||||
 | 
					  int c : 1;
 | 
				
			||||||
 | 
					  int d : 1;
 | 
				
			||||||
 | 
					  int e : 1;
 | 
				
			||||||
 | 
					  int f : 1;
 | 
				
			||||||
 | 
					  int g : 1;
 | 
				
			||||||
 | 
					  int h : 1;
 | 
				
			||||||
 | 
					 };
 | 
				
			||||||
 | 
					 union bits {
 | 
				
			||||||
 | 
					  char ch;
 | 
				
			||||||
 | 
					  struct byte bit;
 | 
				
			||||||
 | 
					 } Imp_out;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Impresora_in.h.ah = 0x02;
 | 
				
			||||||
 | 
					 Impresora_in.x.dx = 0x0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int86(0x17, &Impresora_in, &Impresora_out);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 return ( Impresora_out.h.ah ? 1 : 0 );
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 return ( biosprint(2, 0, 0) & 0x80 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CodigoImpresora( char *codigo )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 int i = 0; char code_hex[3], *endptr;
 | 
				
			||||||
 | 
					 code_hex[2] = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 for( i=0; codigo[i+1] != '\0'; i+=2 )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  code_hex[1] = codigo[i];
 | 
				
			||||||
 | 
					  code_hex[2] = codigo[i+1];
 | 
				
			||||||
 | 
					  fputc( (int)strtol(code_hex, &endptr, 16), stdprn );
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define IGNORE  0
 | 
				
			||||||
 | 
					#define RETRY   1
 | 
				
			||||||
 | 
					#define ABORT   2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /*
 | 
				
			||||||
 | 
					 pragma warn -par reduces warnings which occur
 | 
				
			||||||
 | 
					 due to the non use of the parameters errval,
 | 
				
			||||||
 | 
					 bp and si to the handler.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					 #pragma warn -par
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int handler(int errval,int ax,int bp,int si)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					    static char msg[80];
 | 
				
			||||||
 | 
					    unsigned di;
 | 
				
			||||||
 | 
					    int drive;
 | 
				
			||||||
 | 
					    int errorno;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    di= _DI;
 | 
				
			||||||
 | 
					 /*
 | 
				
			||||||
 | 
					 if this is not a disk error then it was
 | 
				
			||||||
 | 
					 another device having trouble
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ax < 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       while ( !kbhit() )
 | 
				
			||||||
 | 
					       {
 | 
				
			||||||
 | 
					        sound(1000); delay(5000); nosound();
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					       getch();
 | 
				
			||||||
 | 
					       /* and return to the program directly requesting abort */
 | 
				
			||||||
 | 
					       hardresume(RETRY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					 /*
 | 
				
			||||||
 | 
					 return to the program via dos interrupt 0x23 with abort, retry,
 | 
				
			||||||
 | 
					 or ignore as input by the user.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					    hardretn(ABORT);
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   return ABORT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 #pragma warn +par
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SEC_OPTAR 5
 | 
				
			||||||
 | 
					int Optar( int optar, ... )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 static void far *fondo, far *fd_aceptar, far *fd_cancelar;
 | 
				
			||||||
 | 
					 static char Memoria = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int DEV = 0, ok = 0, linea = 0;
 | 
				
			||||||
 | 
					 int Center; char *buff;
 | 
				
			||||||
 | 
					 struct textsettingstype texttypeinfo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 va_list ap;
 | 
				
			||||||
 | 
					 va_start( ap, &optar );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( Memoria == 1 )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  putimage( 170, 165, fondo      , COPY_PUT );
 | 
				
			||||||
 | 
					  putimage( 170, 320, fd_aceptar , COPY_PUT );
 | 
				
			||||||
 | 
					  putimage( 370, 320, fd_cancelar, COPY_PUT );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  farfree( fondo       );
 | 
				
			||||||
 | 
					  farfree( fd_aceptar  );
 | 
				
			||||||
 | 
					  farfree( fd_cancelar );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Memoria = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ( optar == ENCUADRE ) return DEV;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( ( fondo       = farmalloc( JD_imagesize( 170, 165, 470, 315 ) ) ) != NULL &&
 | 
				
			||||||
 | 
					      ( fd_aceptar  = farmalloc( JD_imagesize( 170, 320, 270, 350 ) ) ) != NULL &&
 | 
				
			||||||
 | 
					      ( fd_cancelar = farmalloc( JD_imagesize( 370, 320, 470, 350 ) ) ) != NULL   )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					   Memoria = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   getimage( 170, 165, 470, 315, fondo      );
 | 
				
			||||||
 | 
					   getimage( 170, 320, 270, 350, fd_aceptar );
 | 
				
			||||||
 | 
					   getimage( 370, 320, 470, 350, fd_cancelar);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   gettextsettings( &texttypeinfo );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Imprime_Estaticos( 150, "herm.img" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   setcolor( 63 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   while ( (buff = va_arg(ap, char *)) != NULL )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					     Center = (296 - textwidth( buff ) ) / 2;
 | 
				
			||||||
 | 
					     outtextxy( 172+Center, ( (linea == 0 ) ? 167 : 200 + 20*linea ), buff );
 | 
				
			||||||
 | 
					     linea++;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   va_end(ap);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   settextstyle( texttypeinfo.font, texttypeinfo.direction, texttypeinfo.charsize );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if ( optar != ENCUADRE )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    ok = 0;   	       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
				
			||||||
 | 
					    do {
 | 
				
			||||||
 | 
					      switch( Comprueba_Secuencia( SEC_OPTAR, NULL ) )
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        case  0:				  // No se pulso ningun BOTON
 | 
				
			||||||
 | 
					        case -2:
 | 
				
			||||||
 | 
					        case -1:
 | 
				
			||||||
 | 
						       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
				
			||||||
 | 
					               if ( optar == 0 ) ok = 1;
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					        case  1:
 | 
				
			||||||
 | 
					                DEV = 1; ok = 1;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					        case  2:
 | 
				
			||||||
 | 
					                DEV = 0; ok = 1;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }while( !ok );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    putimage( 170, 165, fondo      , COPY_PUT );
 | 
				
			||||||
 | 
					    putimage( 170, 320, fd_aceptar , COPY_PUT );
 | 
				
			||||||
 | 
					    putimage( 370, 320, fd_cancelar, COPY_PUT );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   farfree( fondo       );
 | 
				
			||||||
 | 
					   farfree( fd_aceptar  );
 | 
				
			||||||
 | 
					   farfree( fd_cancelar );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Memoria = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 return DEV;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int DifDate( struct date FechaF, struct date FechaO, struct date *FechaD )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 struct date FechaTmp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 FechaF.da_mon = Config.MesVotacion;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( FechaO.da_year >= FechaF.da_year && FechaO.da_mon >= FechaF.da_mon )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					   if ( FechaD != NULL )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    FechaD -> da_day  = 0;
 | 
				
			||||||
 | 
					    FechaD -> da_mon  = 0;
 | 
				
			||||||
 | 
					    FechaD -> da_year = 0;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					   return 0;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( FechaO.da_year == FechaF.da_year )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					   if ( FechaD != NULL )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    FechaD -> da_day  = 0;
 | 
				
			||||||
 | 
					    FechaD -> da_mon  = FechaF.da_mon - FechaO.da_mon;
 | 
				
			||||||
 | 
					    FechaD -> da_year = 0;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					   return 0;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 FechaTmp.da_day   = 0;
 | 
				
			||||||
 | 
					 FechaTmp.da_year  = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 FechaTmp.da_mon  = 12 - FechaO.da_mon;
 | 
				
			||||||
 | 
					 FechaTmp.da_mon +=      FechaF.da_mon;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 FechaTmp.da_year = FechaF.da_year - (FechaO.da_year + 1);
 | 
				
			||||||
 | 
					 FechaTmp.da_year+= FechaTmp.da_mon / 12;
 | 
				
			||||||
 | 
					 FechaTmp.da_mon  = FechaTmp.da_mon  % 12;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( FechaD != NULL )
 | 
				
			||||||
 | 
					                     *FechaD = FechaTmp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Esto es incorecto pero asi funcionar<61> ( Devuelvo los a<>os + 1 si hay
 | 
				
			||||||
 | 
					 //                                         alg<6C>n mes suelto... )
 | 
				
			||||||
 | 
					 return ( (FechaD -> da_mon != 0 ? 1 : 0) + FechaTmp . da_year );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								INSIGNIA.BMP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								INSIGNIA.BMP
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 17 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								INSIGNIA.PCX
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								INSIGNIA.PCX
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										116
									
								
								MENUS.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								MENUS.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,116 @@
 | 
				
			|||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Menus                                                                   *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                            *|
 | 
				
			||||||
 | 
					|*                M<>dulo encargado de generar menus, una vez se le pasa     *|
 | 
				
			||||||
 | 
					|*                el puntero a la estructura definida.                      *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*                                         Fecha:  21-07-96  14.34 / 18.00  *|
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #define CONTRAIDO  0
 | 
				
			||||||
 | 
					 #define DESPLEGADO 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct menu
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  char NombreTopico[80];
 | 
				
			||||||
 | 
					  char TExplicacion[80];
 | 
				
			||||||
 | 
					  char NSubTopicos;
 | 
				
			||||||
 | 
					  char SubTopicos[40][15];
 | 
				
			||||||
 | 
					  char Explicacion[80][15];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} GENERAR_MENU;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Archivo       Gestion de: Hermanos    Hermanas         Listados
 | 
				
			||||||
 | 
					 // |                         |           |                |
 | 
				
			||||||
 | 
					 // |Configurar               |Altas      |Altas           |Votantes
 | 
				
			||||||
 | 
					 // |Mantenimiento            |Bajas      |Bajas           |Papeletas
 | 
				
			||||||
 | 
					 // |                         |Consultas  |Consultas       |Hermanos
 | 
				
			||||||
 | 
					 // |Salir                    |           |                |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 1<> byte TOPICO       2<> byte SUBTOPICO
 | 
				
			||||||
 | 
					int GeneraMenu( GENERAR_MENU *mi_menu, char Topicos )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 int Topico=0, SubTopico=0;
 | 
				
			||||||
 | 
					 char DespCont = CONTRAIDO;
 | 
				
			||||||
 | 
					 char Ok = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 ImprimeMenuContraido( mi_menu );
 | 
				
			||||||
 | 
					 do
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  while( !kbhit() );
 | 
				
			||||||
 | 
					  switch ( getch() )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   // Selecciona algo
 | 
				
			||||||
 | 
					   case 27:
 | 
				
			||||||
 | 
					     if ( DespCont == CONTRAIDO )
 | 
				
			||||||
 | 
					       ImprimeMenuDesplegado( mi_menu[Topico] );
 | 
				
			||||||
 | 
					     else
 | 
				
			||||||
 | 
					       return ( ( (Topico+1) <<8)+(SubTopico+1) );
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   // Escape
 | 
				
			||||||
 | 
					   case 13:
 | 
				
			||||||
 | 
					     if ( DespCont != CONTRAIDO )
 | 
				
			||||||
 | 
					            ContraeMenuDesplegado();
 | 
				
			||||||
 | 
					     break;
 | 
				
			||||||
 | 
					   case  0:
 | 
				
			||||||
 | 
					           switch( getch() )
 | 
				
			||||||
 | 
					           {
 | 
				
			||||||
 | 
					            // Derecha
 | 
				
			||||||
 | 
					            case
 | 
				
			||||||
 | 
					              if ( DespCont == CONTRAIDO )
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                              Topico = (Topico++)%Topicos;
 | 
				
			||||||
 | 
					                              SeleccionaMenu( Topico );
 | 
				
			||||||
 | 
					              } else {
 | 
				
			||||||
 | 
					                ContraeMenuDesplegado();
 | 
				
			||||||
 | 
					                Topico = (Topico++)%Topicos;
 | 
				
			||||||
 | 
					                ImprimeMenuDesplegado( mi_menu[Topico] );
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					            // Izquierda
 | 
				
			||||||
 | 
					            case
 | 
				
			||||||
 | 
					              if ( DespCont == CONTRAIDO )
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                              Topico --; if ( Topico < 0 ) Topico = Topicos-1
 | 
				
			||||||
 | 
					                              SeleccionaMenu( mi_menu, Topico );
 | 
				
			||||||
 | 
					              } else {
 | 
				
			||||||
 | 
					                ContraeMenuDesplegado();
 | 
				
			||||||
 | 
					                Topico --; if ( Topico < 0 ) Topico = Topicos-1
 | 
				
			||||||
 | 
					                ImprimeMenuDesplegado( mi_menu[Topico] );
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					            // Arriba
 | 
				
			||||||
 | 
					            case
 | 
				
			||||||
 | 
					              if ( DespCont != CONTRAIDO )
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					               SubTopico--; if ( SubTopico < 0 ) SubTopico = NSubTopicos - 1;
 | 
				
			||||||
 | 
					               SeleccionaSubTopico( mi_menu, SubTopico );
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					            // Abajo
 | 
				
			||||||
 | 
					            case
 | 
				
			||||||
 | 
					              if ( DespCont == CONTRAIDO )
 | 
				
			||||||
 | 
					                ImprimeMenuDesplegado( mi_menu[Topico] );
 | 
				
			||||||
 | 
					              else
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					               SubTopico = ( SubTopico ++ ) % NSubTopicos;
 | 
				
			||||||
 | 
					               SeleccionaSubTopico( mi_menu, SubTopico );
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              break;
 | 
				
			||||||
 | 
					           }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 }while( 1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										379
									
								
								ORDENA.C
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										379
									
								
								ORDENA.C
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,379 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					   Este programa forma parte del Curso de C
 | 
				
			||||||
 | 
					   Copyright (C) 1991 Grupo Editorial Jackson
 | 
				
			||||||
 | 
					   Todos los derechos reservados
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ORDENA: comparaci<63>n entre varias t<>cnicas de ordenaci<63>n */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Este programa se linka con la librer<65>a de consola de Jackson, utilizando
 | 
				
			||||||
 | 
					   el fichero ORDENA.PRJ para Turbo C 2.0, u ORDENA.MAK para Quick C 2.0.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "Jconio.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* prototipos de funciones: */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ExtraeDatos(double d[], int n);
 | 
				
			||||||
 | 
					void MuestraDatos(double d[], int n);
 | 
				
			||||||
 | 
					void Seleccion(double d[], int n);
 | 
				
			||||||
 | 
					void Insercion(double d[], int n);
 | 
				
			||||||
 | 
					void BubbleSort(double d[], int n);
 | 
				
			||||||
 | 
					void ShellSort(double d[], int n);
 | 
				
			||||||
 | 
					void Quicksort(double d[], int n);
 | 
				
			||||||
 | 
					int  Compara(double *d1, double *d2);
 | 
				
			||||||
 | 
					void PulseReturn(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/********************************************************************
 | 
				
			||||||
 | 
					 * main
 | 
				
			||||||
 | 
					 ********************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    enum { NDATOS = 200 };                      /*n<>mero datos a reordenar*/
 | 
				
			||||||
 | 
					    enum { F1 = 1059, F2, F3, F4, F5, F6 };     /*c<>digos teclas <1>*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    double  datos[NDATOS];                      /*datos a reordenar <2>*/
 | 
				
			||||||
 | 
					    clock_t inicio,fin;                         /*tiempo inicial, final <3>*/
 | 
				
			||||||
 | 
					    char    buf[80];
 | 
				
			||||||
 | 
					    int     c,ok,terminado;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    srand( (unsigned int)time(NULL));               /*inicia random*/
 | 
				
			||||||
 | 
					    Jcursor(0);                                     /*elimina cursor*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    do {
 | 
				
			||||||
 | 
					        Jclrscr();                                  /*borra pantalla*/
 | 
				
			||||||
 | 
					        Jclrkey();                                  /*y buffer teclado*/
 | 
				
			||||||
 | 
					        Jputs("\r\n\n\n\n- Comparaci<63>n entre t<>cnicas de ordenaci<63>n -\r\n\n"
 | 
				
			||||||
 | 
					            "  F1) Ordenaci<63>n por selecci<63>n\r\n"
 | 
				
			||||||
 | 
					            "  F2) Ordenaci<63>n por inserci<63>n\r\n"
 | 
				
			||||||
 | 
					            "  F3) Burbuja\r\n"
 | 
				
			||||||
 | 
					            "  F4) Shell\r\n"
 | 
				
			||||||
 | 
					            "  F5) Quicksort\r\n"
 | 
				
			||||||
 | 
					            "  F6) Salir\r\n\n"
 | 
				
			||||||
 | 
					            "Seleccione F1..F6: ");
 | 
				
			||||||
 | 
					        do {                                        /*lee tecla v<>lida*/
 | 
				
			||||||
 | 
					            c = Jgetkey(1);
 | 
				
			||||||
 | 
					            ok = (c >= F1 && c <= F6);              /*(est<73>n en orden) <4>*/
 | 
				
			||||||
 | 
					            if (! ok)  Jputch('\a');
 | 
				
			||||||
 | 
					        } while (! ok);
 | 
				
			||||||
 | 
					        terminado = (c == F6);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (! terminado) {
 | 
				
			||||||
 | 
					            ExtraeDatos(datos,NDATOS);              /*datos a reordenar*/
 | 
				
			||||||
 | 
					            Jclrscr();                              /*los imprime*/
 | 
				
			||||||
 | 
					            Jputs("Extracci<EFBFBD>n aleatoria de datos para ordenar:\r\n\n");
 | 
				
			||||||
 | 
					            MuestraDatos(datos,NDATOS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Jclrscr();
 | 
				
			||||||
 | 
					            inicio = clock();                       /*tiempo inicial*/
 | 
				
			||||||
 | 
					            if (c == F1) {                          /*ejecuta ord. elegida*/
 | 
				
			||||||
 | 
					                Seleccion(datos, NDATOS);
 | 
				
			||||||
 | 
					            } else if (c == F2) {
 | 
				
			||||||
 | 
					                Insercion(datos,NDATOS);
 | 
				
			||||||
 | 
					            } else if (c == F3) {
 | 
				
			||||||
 | 
					                BubbleSort(datos,NDATOS);
 | 
				
			||||||
 | 
					            } else if (c == F4) {
 | 
				
			||||||
 | 
					                ShellSort(datos,NDATOS);
 | 
				
			||||||
 | 
					            } else if (c == F5) {
 | 
				
			||||||
 | 
					                Quicksort(datos,NDATOS);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            fin = clock();                          /*tiempo final <5>*/
 | 
				
			||||||
 | 
					            sprintf(buf,"ejecutado en %3.2f segundos.\r\n\n",
 | 
				
			||||||
 | 
					                    ((double)(fin-inicio))/CLK_TCK);
 | 
				
			||||||
 | 
					            Jputs(buf);
 | 
				
			||||||
 | 
					            MuestraDatos(datos,NDATOS);             /*imprime datos en orden*/
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    } while (! terminado);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Jclrscr();                                      /*borra pantalla*/
 | 
				
			||||||
 | 
					    Jcursor(1);                                     /*muestra cursor*/
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Notas sobre main:
 | 
				
			||||||
 | 
					    <1> Como los c<>digos de las teclas indicadas son n<>meros progresivos,
 | 
				
			||||||
 | 
					        basta con asignar el primero. enum se ocupa despu<70>s autom<6F>ticamente
 | 
				
			||||||
 | 
					        de asignar valores crecientes (1060,1061,...) a las siguientes
 | 
				
			||||||
 | 
					        constantes.
 | 
				
			||||||
 | 
					    <2> Utilizamos un array de double porque la reordenaci<63>n de un array int
 | 
				
			||||||
 | 
					        es demasiado r<>pida. Las comparaciones y asignaciones de double dan
 | 
				
			||||||
 | 
					        una mejor idea del comportamiento t<>pico en condiciones reales.
 | 
				
			||||||
 | 
					    <3> Utilizamos clock en vez de time para obtener una mayor resoluci<63>n
 | 
				
			||||||
 | 
					        (cerca de 1/18.2 segundos en los PC). La funci<63>n time tiene, sin
 | 
				
			||||||
 | 
					        embargo, y siempre en los IBM PC y compatibles, una resoluci<63>n
 | 
				
			||||||
 | 
					        t<>pica de un segundo.
 | 
				
			||||||
 | 
					    <4> Funciona porque los c<>digos de las teclas F1..F6 son n<>meros enteros
 | 
				
			||||||
 | 
					        progresivos (ver nota 1).
 | 
				
			||||||
 | 
					    <5> Dividiendo el tiempo empleado para la constante CLK_TCK (definida en
 | 
				
			||||||
 | 
					        <time.h>), se obtiene el tiempo en segundos. Recuerde el uso de
 | 
				
			||||||
 | 
					        (double) para asegurar que la divisi<73>n se ejecute en double, evitando
 | 
				
			||||||
 | 
					        el riesgo de una divisi<73>n entera que perder<65>a la parte fraccionaria
 | 
				
			||||||
 | 
					        (dependiendo de como est<73> definido CLK_TCK, es mejor no arriesgarse
 | 
				
			||||||
 | 
					        y utilizar double).
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/********************************************************************
 | 
				
			||||||
 | 
					 * ExtraeDatos: extrae n enteros casuales en el array d[].
 | 
				
			||||||
 | 
					 ********************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ExtraeDatos(double d[], int n)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (i = 0; i < n; i++) {                       /*en cada elemento*/
 | 
				
			||||||
 | 
					        d[i] = rand()/100.0;                        /*un double casual <1>*/
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Notas sobre ExtraeDatos:
 | 
				
			||||||
 | 
					    <1> Pone dos cifras decimales s<>lo con fines est<73>ticos: los valores de
 | 
				
			||||||
 | 
					        los datos no interesan, basta que vengan ordenados correctamente.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/********************************************************************
 | 
				
			||||||
 | 
					 * MuestraDatos: muestra los n enteros contenidos en el array d[].
 | 
				
			||||||
 | 
					 ********************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MuestraDatos(double d[], int n)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int  i;
 | 
				
			||||||
 | 
					    char buf[80];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (i = 0; i < n; i++) {                       /*por cada elemento*/
 | 
				
			||||||
 | 
					        sprintf(buf,"%7.2f",d[i]);                  /*imprime en 7 espacios*/
 | 
				
			||||||
 | 
					        if(Jposx() > 72) {                          /*a sig. l<>n. si no est<73>*/
 | 
				
			||||||
 | 
					            Jputs("\r\n");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        Jputs(buf);                                 /*muestra dato*/
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    Jputs("\r\n");
 | 
				
			||||||
 | 
					    PulseReturn();                                  /*espera un Return*/
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/********************************************************************
 | 
				
			||||||
 | 
					 * Seleccion: reordena por selecci<63>n el array d[] de n elementos.
 | 
				
			||||||
 | 
					 ********************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Seleccion(double d[], int n)     /*<1>*/
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int    i,j,imin;
 | 
				
			||||||
 | 
					    double temp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Jputs("Ordenaci<EFBFBD>n por selecci<63>n en curso...");
 | 
				
			||||||
 | 
					    for (i = 0; i < n; i++) {                      /*para cada n<>mero*/
 | 
				
			||||||
 | 
					        imin = i;                                  /*<2A>ndice m<>nimo de i <2>*/
 | 
				
			||||||
 | 
					        for (j = i+1; j < n; j++) {
 | 
				
			||||||
 | 
					            if (d[j] < d[imin]) {                  /*recuerda <20>ndice m<>nimo*/
 | 
				
			||||||
 | 
					                imin = j;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        temp = d[i];                               /*intercamb. con m<>n. <3>*/
 | 
				
			||||||
 | 
					        d[i] = d[imin];
 | 
				
			||||||
 | 
					        d[imin] = temp;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Notas sobre Selecci<63>n:
 | 
				
			||||||
 | 
					    <1> A partir del primer elemento del array, se selecciona el elemento de
 | 
				
			||||||
 | 
					        valor m<>s bajo y se coloca en primer lugar, intercambi<62>ndolo con el
 | 
				
			||||||
 | 
					        que estaba en primer lugar; despu<70>s se avanza i al segundo elemento,
 | 
				
			||||||
 | 
					        se busca el nuevo m<>nimo y se intercambia con el segundo, etc<74>tera.
 | 
				
			||||||
 | 
					        En la pr<70>ctica, se seleccionan los elementos uno cada vez en orden
 | 
				
			||||||
 | 
					        creciente, y se colocan a partir del inicio del array.
 | 
				
			||||||
 | 
					    <2> imin es el <20>ndice del elemento de valor m<>s bajo entre los que ya hay
 | 
				
			||||||
 | 
					        para ordenar. Para buscar el elemento de valor m<>s bajo, se supone
 | 
				
			||||||
 | 
					        que es el primero (imin = i). Si despu<70>s encuentra uno m<>s bajo, se
 | 
				
			||||||
 | 
					        cambia imin de forma que contenga el <20>ndice del elemento m<>s bajo.
 | 
				
			||||||
 | 
					    <3> Para el intercambio es necesaria una variable intermedia: el C no
 | 
				
			||||||
 | 
					        tiene instrucciones para intercambiar dos variables, y una funci<63>n
 | 
				
			||||||
 | 
					        ser<65>a demasiado ineficaz.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/********************************************************************
 | 
				
			||||||
 | 
					 * Insercion: reordena por inserci<63>n el array d[] de n elementos.
 | 
				
			||||||
 | 
					 ********************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Insercion(double d[], int n)    /*<1>*/
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int    i,j;
 | 
				
			||||||
 | 
					    double z;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Jputs("Ordenaci<EFBFBD>n por inserci<63>n en curso...");
 | 
				
			||||||
 | 
					    for (i = 1; i < n; i++) {
 | 
				
			||||||
 | 
					        z = d[i];                                   /*n<>m. a insertar <2>*/
 | 
				
			||||||
 | 
					        j = i;                                      /*busca hacia atr<74>s*/
 | 
				
			||||||
 | 
					        while (j > 0 && d[j-1] > z) {               /*<3>*/
 | 
				
			||||||
 | 
					            d[j] = d[j-1];                          /*hace sitio <4>*/
 | 
				
			||||||
 | 
					            j--;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        d[j] = z;                                   /*inserta*/
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Notas sobre Inserci<63>n:
 | 
				
			||||||
 | 
					    <1> Cada elemento se inserta en el lugar adecuado entre los ya
 | 
				
			||||||
 | 
					        ordenados. Al principio se considera ordenado s<>lo el primer elemento,
 | 
				
			||||||
 | 
					        por lo que se parte del segundo. Cada elemento se inserta como
 | 
				
			||||||
 | 
					        cuando se ordena una mano de cartas de una baraja.
 | 
				
			||||||
 | 
					    <2> z es el valor a insertar en el lugar adecuado entre los anteriores.
 | 
				
			||||||
 | 
					    <3> Vuelve hacia atr<74>s entre los elementos ya ordenados hasta que no
 | 
				
			||||||
 | 
					        encuentra uno menor o igual a z. z puede insertarse por lo tanto
 | 
				
			||||||
 | 
					        justo despu<70>s del elemento encontrado. Recuerde que si la primera
 | 
				
			||||||
 | 
					        condici<63>n (j > 0) no es cierta, la segunda ni siquiera se prueba,
 | 
				
			||||||
 | 
					        evitando as<61> acceder a un elemento inexistente del array d[].
 | 
				
			||||||
 | 
					    <4> Mientras va hacia atr<74>s, coloca delante los elementos aprovechando
 | 
				
			||||||
 | 
					        el lugar en el que estaba z. De este modo, cuando encuentra el lugar
 | 
				
			||||||
 | 
					        adecuado s<>lo debe escribir en <20>l z (el contenido original ya se ha
 | 
				
			||||||
 | 
					        colocado delante).
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/********************************************************************
 | 
				
			||||||
 | 
					 * BubbleSort: reordena por intercambios el array d[] de n elementos.
 | 
				
			||||||
 | 
					 ********************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void BubbleSort(double d[], int n)    /*<1>*/
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int    i,intercambio;
 | 
				
			||||||
 | 
					    double temp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Jputs("Ordenaci<EFBFBD>n por burbuja en curso...");
 | 
				
			||||||
 | 
					    do {
 | 
				
			||||||
 | 
					        intercambio = 0;
 | 
				
			||||||
 | 
					        for (i = 1; i < n; i++) {                   /*explora por pares*/
 | 
				
			||||||
 | 
					            if (d[i] < d[i-1]) {
 | 
				
			||||||
 | 
					                temp = d[i];
 | 
				
			||||||
 | 
					                d[i] = d[i-1];
 | 
				
			||||||
 | 
					                d[i-1] = temp;
 | 
				
			||||||
 | 
					                intercambio = 1;                    /*e indica <2>*/
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    } while (intercambio);                          /*sale si no intercambia*/
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Notas sobre BubbleSort:
 | 
				
			||||||
 | 
					    <1> A partir del primer par de elementos, el array se explora comparando
 | 
				
			||||||
 | 
					        pares de elementos adyacentes. Si no est<73>n bien ordenados, se
 | 
				
			||||||
 | 
					        intercambian entre ellos. Se repite el procedimiento hasta que en
 | 
				
			||||||
 | 
					        una pasada no se realiza ning<6E>n intercambio, porque los elementos
 | 
				
			||||||
 | 
					        est<73>n todos en orden.
 | 
				
			||||||
 | 
					    <2> El flag (variable l<>gica) intercambio sirve para indicar que se ha
 | 
				
			||||||
 | 
					        realizado al menos un intercambio, y por ello se debe dar otra pasada.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/********************************************************************
 | 
				
			||||||
 | 
					 * ShellSort: reordena por Shell sort el array d[] de n elementos.
 | 
				
			||||||
 | 
					 ********************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ShellSort(double d[], int n)    /*<1>*/
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int    dist;   /*distancia entre los elementos a ordenar en una pasada*/
 | 
				
			||||||
 | 
					    int    i,j;
 | 
				
			||||||
 | 
					    double z;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Jputs("Ordenaci<EFBFBD>n Shell en curso...");
 | 
				
			||||||
 | 
					    for (dist = 1; dist < n; dist = dist*3+1)       /*distancia inicial <2>*/
 | 
				
			||||||
 | 
					        ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    while ( (dist = dist/3) > 0) {                  /*hasta distancia 1*/
 | 
				
			||||||
 | 
					        for (i = dist; i < n; i++) {                /*<3>*/
 | 
				
			||||||
 | 
					            z = d[i];                               /*n<>m. a insertar*/
 | 
				
			||||||
 | 
					            j = i;                                  /*busca hacia atr<74>s*/
 | 
				
			||||||
 | 
					            while (j-dist >= 0 && d[j-dist] > z) {
 | 
				
			||||||
 | 
					                d[j] = d[j-dist];                   /*hace sitio*/
 | 
				
			||||||
 | 
					                j -= dist;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            d[j] = z;                               /*inserta*/
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Notas sobre ShellSort:
 | 
				
			||||||
 | 
					    <1> Se realiza una ordenaci<63>n por inserci<63>n considerando s<>lo un elemento
 | 
				
			||||||
 | 
					        cada dist elementos, partiendo con dist bastante grande. Esto coloca
 | 
				
			||||||
 | 
					        r<>pidamente hacia los extremos los elementos que tienen que moverse
 | 
				
			||||||
 | 
					        mucho para lograr colocarse en su lugar adecuado. dist se reduce
 | 
				
			||||||
 | 
					        despu<70>s gradualmente hasta 1, es decir, a una ordenaci<63>n por
 | 
				
			||||||
 | 
					        inserci<63>n, que sin embargo es rapid<69>sima, porque los elementos est<73>n
 | 
				
			||||||
 | 
					        ya en sus lugares correctos.
 | 
				
			||||||
 | 
					    <2> Una secuencia particularmente eficaz para dist es (al rev<65>s) la
 | 
				
			||||||
 | 
					        serie 1, 4, 13, 40, 121, ... (multiplica por tres y a<>ade uno).
 | 
				
			||||||
 | 
					        Observe que todo el trabajo se hace en la misma for: la instrucci<63>n
 | 
				
			||||||
 | 
					        dependiente de for es una instrucci<63>n vac<61>a.
 | 
				
			||||||
 | 
					    <3> El ciclo interno es una ordenaci<63>n normal por inserci<63>n, s<>lo que se
 | 
				
			||||||
 | 
					        considera <20>nicamente un elemento cada dist.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/********************************************************************
 | 
				
			||||||
 | 
					 * Quicksort: reordena con Quicksort el array d[] de n elementos.
 | 
				
			||||||
 | 
					 ********************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Quicksort(double d[], int n)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Jputs("Ordenaci<EFBFBD>n Quicksort en curso...");
 | 
				
			||||||
 | 
					    qsort(d,n,sizeof(d[0]),
 | 
				
			||||||
 | 
					          (int(*)(const void*, const void*)) Compara);    /*<1>*/
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/***** Compara: compara dos elementos, por Quicksort. *****/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int Compara(double *d1, double *d2)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (*d1 > *d2)  return 1;                       /*<2>*/
 | 
				
			||||||
 | 
					    else if (*d1 < *d2)  return -1;
 | 
				
			||||||
 | 
					    else return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Notas sobre Quicksort:
 | 
				
			||||||
 | 
					    <1> En este complejo programa se declara que Compara es un puntero a una
 | 
				
			||||||
 | 
					        funci<63>n que recibe dos punteros a void y devuelve un int. Es necesario
 | 
				
			||||||
 | 
					        con los compiladores 100% ANSI porque la funci<63>n de librer<65>a qsort no
 | 
				
			||||||
 | 
					        puede conocer con anticipaci<63>n el tipo exacto de los argumentos que
 | 
				
			||||||
 | 
					        debe pasarle a la funci<63>n de comparaci<63>n, y por ello los declara como
 | 
				
			||||||
 | 
					        punteros a void. El programa finje que los argumentos son del tipo
 | 
				
			||||||
 | 
					        deseado por qsort, aunque en realidad sean de otro tipo (en este caso,
 | 
				
			||||||
 | 
					        se trata de punteros a double).
 | 
				
			||||||
 | 
					        Obviamente, haci<63>ndolo de esta forma se impide al compilador que
 | 
				
			||||||
 | 
					        controle la exactitud de la llamada; por ello es necesario prestar
 | 
				
			||||||
 | 
					        mucha atenci<63>n. Como alternativa, se podr<64>a modificar la declaraci<63>n
 | 
				
			||||||
 | 
					        de Compara utilizando void* y efectuando en su interior los pasos de
 | 
				
			||||||
 | 
					        void* a double*.
 | 
				
			||||||
 | 
					    <2> No se puede hacer simplemente *d1-*d2, porque el valor devuelto por
 | 
				
			||||||
 | 
					        la funci<63>n debe ser un int: se perder<65>a la parte fraccionaria y
 | 
				
			||||||
 | 
					        n<>meros como 12.47 y 12.34 (distintos s<>lo en su parte fraccionaria)
 | 
				
			||||||
 | 
					        ser<65>an considerados iguales. De este modo, entre otras cosas, la
 | 
				
			||||||
 | 
					        ejecuci<63>n es m<>s r<>pida. Se aceptan tres return, ya que dadas las
 | 
				
			||||||
 | 
					        exiguas dimensiones de la funci<63>n, no hay problemas de legibilidad.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/********************************************************************
 | 
				
			||||||
 | 
					 * PulseReturn: espera una tecla Return.
 | 
				
			||||||
 | 
					 ********************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void PulseReturn(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Jclrkey();
 | 
				
			||||||
 | 
					    Jputs("\r\nPulse Return para continuar: ");
 | 
				
			||||||
 | 
					    while (Jgetkey(1) != '\r') {
 | 
				
			||||||
 | 
					        Jputch('\a');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					#HERM 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					*11/11/1991* 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					ToDo: wwtcf? 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								SUPERVGA.OBJ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SUPERVGA.OBJ
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user