Hola Gente.
Estoy en el tema archivos con el manual con el que estoy estudiando y no puedo resolver como contar los registros marcados para borrar, dejo el código fuente para que lo vean, el mismo no me da error, lo que deseo es que me ayuden a construir una función para contar registros, si bien me faltan muchas cosas por hacer lo que quiero es ir por orden.-
Código C:
Ver original#include <stdio.h>
#include <string.h>
#include <windows.h>
typedef struct{
char marcado;
char ingles[30];
char espaniol[30];
}Traductor;
void cRegistros(Traductor *ptrTrad, int *ptrRegistros);
void mainMenu(int *ptrOpcMm, int *ptrRegistros);
int main(int argc, char *argv[]){
int opcMm, registros;
Traductor trad;
cRegistros(&trad, ®istros);
mainMenu(&opcMm, ®istros);
return 0;
}
void cRegistros(Traductor *ptrTrad, int *ptrRegistros){
FILE *ptrTraductor;
long tam;
if(( ptrTraductor
= fopen( "traductor.txt", "r" )) == NULL
){ printf( "\n\n ERROR, no se pudo leer desde el archivo..." ); }
else{
tam=sizeof(*ptrTrad);
fseek(ptrTraductor
, 0, SEEK_END
); *ptrRegistros
=ftell(ptrTraductor
)/tam
;
}
}
void mainMenu(int *ptrOpcMm, int *ptrRegistros){
int ok=1, ch;
while(ok){
do{
printf( "\n ============================" ); printf( "\n ============================" ); printf( "\n 2 - Modificaci%cn", 162); printf( "\n 5 - Listado ----------------> %d-registro(s)", *ptrRegistros
); printf( "\n 6 - Marcados paras borrar --> 0-registro(s)"); printf( "\n 7 - Empaquetar tabla");
if(*ptrRegistros == 0){
printf( "\n\n ============================================" ); printf( "\n No cuenta con registros."); printf( "\n Opciones ==> Alta y Finalizar"); printf( "\n ============================================" ); }else if(*ptrRegistros == 1){
printf( "\n\n ============================================" ); printf( "\n cuenta con 1 solo registro"); printf( "\n Opciones ==> Alta - Modificaci%cn - Baja y Finalizar", 162); printf( "\n ============================================" ); }else{
printf( "\n ============================" ); }
printf( "\n\n Ingrese opci%cn............: ", 162); ok
= scanf( "%d", ptrOpcMm
) == 1 && *ptrOpcMm
>= 1 && *ptrOpcMm
<= 8; while ((ch
= getchar()) != EOF
&& ch
!= '\n'); }while(!ok);
ok = 0;
switch(*ptrOpcMm){
case 1 :
break;
case 2 :
if(*ptrRegistros >= 1){
}
else{ok = 1;}
break;
case 3 :
if(*ptrRegistros >= 1){
}
else{ok = 1;}
break;
case 4 :
if(*ptrRegistros >= 2){
}
else{ok = 1;}
break;
case 5 :
if(*ptrRegistros >= 2){
}
else{ok = 1;}
break;
case 6 :
break;
case 7 :
break;
case 8 :
break;
}
}
}
Desde ya muchas gracias por ocuparse.-
Saludos.
Daniel