MeriaDok Posted May 16, 2011 Report Share Posted May 16, 2011 Bueno amigos tengo el siguiente problema, tengo un archivo .txt que es de esta forma: 10 15869254 3 1 58000 2 32000 3 21475 13569245 2 1 48500 2 89570 . . . Es un archivo que guarda un RUT y numeros de cuenta con sus respectivos saldos, por ejemplo, el 10 en este caso seria el numero de clientes, en la segunda linea el primer numero es el RUT, el segundo es el numero de cuentas y en la linea de abajo estan los datos de cada cuenta. Sin contar la primera linea se cuentan 2 lineas para cada cliente. Mi problema es el siguiente, necesito comparar los RUT de los clientes para ver cual es el menor, cada RUT esta en una linea par (2,4,6,8,10,12,14,16,18,20), como puedo hacer para leer exactamente solo el RUT de los clientes y guardarlos de alguna forma? Link to comment Share on other sites More sharing options...
alone Posted May 17, 2011 Report Share Posted May 17, 2011 (edited) lo que yo haria seria capturar con algun lector I/O utilizando un while recorrerlo por linea, utilizando una variable numérica que te diga la linea que va,aumentarla cuando termine la linea y con un "if" dar la condición que cuando sea par , utilizando el resto = 0 (%). y dentro hacer lo que quieras, verificarlos o guardarlos.. espero te sirva.. bye! Edited May 17, 2011 by alone Link to comment Share on other sites More sharing options...
Sting_Master Posted May 17, 2011 Report Share Posted May 17, 2011 Yo crearia un a variable booleana, defino a la variable con el valor 0, y entro el while del EOF, el que te indica el fin del archivo que esta leyendo, a la primera no entra es decir if(x==1) entre y al final del proceso cambia el valor de x a 0, y de ahi el else que solo transformaria el valor de la variable a 1, es decir a la otra entraria. Link to comment Share on other sites More sharing options...
Aspro Posted May 17, 2011 Report Share Posted May 17, 2011 fopen() busca sobe esa funcion Link to comment Share on other sites More sharing options...
RigoPerdido Posted May 18, 2011 Report Share Posted May 18, 2011 Puede no ser la solución mas optima, pero por algo se empieza :hide: Slds #include <stdio.h> #include <string.h> int main(int argc, char **argv) { char rut_menor[15]="9999999999"; FILE *archivo=fopen("./lista.txt","r"); if(archivo) { char buffer[255]; short iteracion=0; int largo; while(1) { fgets(buffer,255,archivo); largo=strlen(buffer); buffer[largo-1]='\0'; if(feof(archivo)) break; if(iteracion==0) printf("Cabecera: %s\n",buffer); else if(iteracion==1) { printf("\nRut: %s\n",buffer); if(strcmp(buffer,rut_menor)<0) strcpy(rut_menor,buffer); } else if(iteracion==2) { printf("Datos cuenta: %s\n",buffer); iteracion=0; } iteracion++; } fclose(archivo); printf("\nMenor rut: %s\n",rut_menor); } return 0; } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now