Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2010, 10:40
windarin
 
Fecha de Ingreso: octubre-2010
Mensajes: 5
Antigüedad: 14 años, 1 mes
Puntos: 0
Procesar archivo de texto con separadores

Buenas tardes a todos, veréis, tengo una pequeña duda, a ver si alguien sabe decirme.

Resulta que tengo un programita en el que quiero procesar un fichero de texto con dos campos separados por dos puntos, similar a esto:

nirvana:nevermind
nirvana:unplugged
...

Cada campo quiero guardarlo en un atributo de un objeto que me creo.

El caso es que lo hago, y me funciona, pero quiero suponer que hay alguna manera más facil de hacerlo, y no sé si alguno me puede resolver la duda. Os mando el código -la parte importante- (funciona):

main()
{
int contador=0;
int tot_discos=0;

disco *a_discos[10];
rellenar_discos( a_discos,&contador, &tot_discos);
//Continua...
}

void rellenar_discos(disco *a_discos[100], int *contador, int *tot_discos)
{
FILE *f;
char c=' ';
int i=0;
char grupo[80],titulo[80];
f=fopen("discos.txt","r");

c=getc(f);
while (c!='\n' && !feof(f))
{
a_discos[*tot_discos]=new disco;
while (c!=':' && !feof(f))
{
grupo[i]=c;
i++;
c=getc(f);
}
grupo[i]='\0';
i=0;
c=getc(f);
while (c!='\n' && !feof(f))
{
titulo[i]=c;
i++;
c=getc(f);
}
titulo[i]='\0';
i=0;
c=getc(f);
a_discos[*tot_discos]->insertar(*contador,grupo,titulo);
a_discos[*tot_discos]->mostrar();
*contador=*contador+1;
*tot_discos=*tot_discos+1;
}

}