ouai très franchement d'un point de vue propreté, il vaux mieux lire ligne par ligne et parser ta ligne ensuite.
le fscanf y doit cumuler deux domaines d'erreurs: les erreurs de lecture, et les erreurs d'extraction de champ/valeur.
l'avantage c'est que avec un truc style ça:
Code :
- char buffer[256];
- int Step=0;
- while( fgets(buffer,sizeof(buffer),file) )
- {
- switch( Step )
- {
- // 0: Header
- case 0:
- if( sscanf(... ) == ... )
- {
- // Header OK
- Step=1;
- }
- break;
- // 1: collection de trucs type A
- case 1:
- if( sscanf(.... ) == ... )
- {
- // Element Ok
- // ajout à une liste
- }
- break;
- }
- }
|
tu peux plus facilement parser un petit fichier ASCII à la con.
en changeant de mode pour switcher de type de données à récupérer. (avec la possibilité de faire des allez-retours entre plusieurs type d'infos).
notamment j'avais ça pour les fichiers de scènes 3D de 3DStudio en .ASC tout con, mais bon c'était vieux et limité à la base.
le fscanf j'aime po, mais bon ça dépends ce que tu comptes faire par la suite et qu'est-ce que tu as à parser.
Message édité par bjone le 13-12-2005 à 18:08:26