Ver Mensaje Individual
  #8 (permalink)  
Antiguo 08/11/2011, 10:29
Avatar de s00rk
s00rk
 
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 14 años, 3 meses
Puntos: 48
Respuesta: Duda con archivos de texto

Cita:
Iniciado por sam90 Ver Mensaje
fseek no es recomendable para este caso, porque lo registro no tienen la misma longitud.
Para ordenar yo cargaria todo en memoria lo ordenaria y luego lo guardaria en el archivo.
Si es lo que estaba pensando yo lo cargaria algo asi, aunque claro puede cargarlo todo en un string y luego con - o , y ya de ahi usar tokenizer y ya guardarlo en un arreglo.

Mientras yo lo hago algo mas am sencillo y "facil" de entender

Código C++:
Ver original
  1. int cont = 0;
  2.     char linea[50];
  3.     ifstream ar0("votos.txt");
  4.     ifstream ar1("votos.txt");
  5.     while(!ar0.eof())
  6.     {
  7.         ar0.getline(linea, 50);
  8.         cont++;                
  9.     }
  10.     ar0.close();
  11.     int arreglo[cont];
  12.     int i = 0;
  13.     cout << endl;
  14.     while(!ar1.eof())
  15.     {
  16.         ar1.getline(linea, 50);
  17.         arreglo[i] = atoi(linea);              
  18.         i++;
  19.     }
  20.     ar1.close();
  21.    
  22.     int aux;
  23.     for(int x = 1; x < cont; x++)
  24.     {
  25.             for(int xx = 0; xx < cont - x; xx++)
  26.             {
  27.                     if( arreglo[xx] > arreglo[xx+1] )
  28.                     {
  29.                         aux = arreglo[xx];
  30.                         arreglo[xx] = arreglo[xx+1];
  31.                         arreglo[xx+1] = aux;
  32.                     }
  33.             }
  34.     }
  35.     FILE *nuevo = fopen("votos.txt", "w");
  36.     for(int x = 0; x < cont; x++)
  37.     {
  38.             fprintf(nuevo, "%d \n", arreglo[x]);
  39.     }
  40.     fclose(nuevo);
  41.     return 0;