Voila mon problème j'ai un fichier avec des donnée de ce type la :
-13 5 8 26 a7 93 4 46 1 201
-9 3 12 23 a8 96 4 46 1 232
-12 1 -2 20 a8 95 4 46 1 232
-13 7 18 1d aa 9a 4 46 1 232
Soit 3 nombres, 3 hexa, 4 nombres
Je code en C pour récupérer ces données, les stocker dans un tableau ensuite c'est du calcul ...
Le problème c'est que j'arrive à extraire les 3 premières colonnes via ce code la :
main()
{
FILE* m_File; int i = 0; int j; double **Tab; char szbuff[MAX_CHAR_PER_LINE]; char* token; int x,y;
printf("OK\n");
// On initialise le tableau
Tab=malloc(LMAX*sizeof(*Tab)); //On alloue 'taille1' pointeurs.
for(i=0;i<LMAX;i++)
{
Tab[i]=malloc(CMAX*sizeof(**Tab)); //On alloue des tableaux de 'taille2' variables.
}
printf("OK\n");
for(i=0;i<LMAX;i++)
{
for(j=0;j<CMAX;j++)
{
Tab[i][j] = -1;
}
}
printf("OK\n");
// On réinitialise le compteur de ligne et de la colonne
i=0;
printf("OK\n");
// On ouvre le fichier en lecture seule et en mode texte
m_File = fopen(PATH,"rt");
printf("OK\n");
// On lit le fichier ligne a ligne et on stocke les valeurs dans un tableau d'entier
// La boucle while a l'avantage de permettre la lecture d'un fichier sans connaitre son nombre de ligne exact
// et nous évite donc de faire bugger le programme
// Le "feof" veut "End Of File". On lit donc jusuqu'à la fin du fichier
while(!feof(m_File) && i < LMAX)
{
j=0;
// On récupere la ligne courante du fichier
fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
// On decoupe la ligne selon le charactere de séparation SEP (" ")
token = strtok(szbuff,SEP);
// On lit les éléments découpés un à un et on les stocke dans le tableau Tab
while(token != NULL && j < CMAX)
{
// On stocke la valeur lue dans le tableau
Tab[i][j] = atoi(token);
// On lit l'element suivant retourner par strtok
token = strtok(NULL,SEP);
// On incremente le compteur des ordonnées
j++;
}
// On incrémente le compteur des abscisses
i++;
}
// On affiche le tableau pour etre sur que tout s'est bien passé...
for(x=0;x<i;x++)
{
for(y=0;y<j;y++)
{
printf("%lf \t",Tab[x][y]);
}
printf("\n");
}
}
Bref maintenant pour extraire seulement les colonnes hexa j'utilise ce code
main()
{
FILE* m_File; int i = 0; int j; double **Tab; int x,y;
printf("OK\n");
// On initialise le tableau
Tab=malloc(LMAX*sizeof(*Tab)); //On alloue 'taille1' pointeurs.
for(i=0;i<LMAX;i++)
{
Tab[i]=malloc(CMAX*sizeof(**Tab)); //On alloue des tableaux de 'taille2' variables.
}
printf("OK\n");
for(i=0;i<LMAX;i++)
{
for(j=0;j<CMAX;j++)
{
Tab[i][j] = -1;
}
}
printf("OK\n");
// On réinitialise le compteur de ligne et de la colonne
i=0;j=0;
printf("OK\n");
// On ouvre le fichier en lecture seule et en mode texte
m_File = fopen(PATH,"rt");
printf("OK\n");
// On lit le fichier ligne a ligne et on stocke les valeurs dans un tableau d'entier
// La boucle while a l'avantage de permettre la lecture d'un fichier sans connaitre son nombre de ligne exact
// et nous évite donc de faire bugger le programme
// Le "feof" veut "End Of File". On lit donc jusuqu'à la fin du fichier
if (m_File != NULL)
{
for(j=0;j<3;j++)
{
for(i=0;i<3;i++)
{
fscanf(m_File,"%lf",&Tab[i][j]);
}
}
}
// On affiche le tableau pour etre sur que tout s'est bien passé...
for(x=0;x<4;x++)
{
for(y=0;y<4;y++)
{
printf("%lf \t",Tab[x][y]);
}
printf("\n");
}
}
Mais la je vois pas comment choisir seulement mes trois colonnes hexa et passer a la ligne suivant ... si vous avez des idées je suis preneur merci beaucoup =)