Bonjour à tous,
J'ai un petit souci de conversion d'une chaîne de caractère dans un tableau de chaînes de caractère !!!(tAgTabTrame). (C'est pas agréable à dire çà !)
Le petit programme suivant (extrait) lit un fichier .csv, il concatène dans un char* (Datatxt) les caractères lus (ch).
Une fois le ';' détecté, il insère Datatxt dans le tableau de char* (tAgTabTrame) à un index (CptData)
Seulement l'affectation
[b]tAgTabTrame[CptData] = Datatxt ;
ne fonctionne pas !
L'affectation suivante : tAgTabTrame[CptData] = "Salut !" fonctionne bien...
et à l'affichage, printf("Datatxt : %s", Datatxt);
affiche correctement ma chaîne !
Est-ce que quelqu'un peut m'aider ! Merci beaucoup, beaucoup d'avance !
Phil
// Extrait du fichier .csv -----------
*CLS\n;
SYSTem:COMMunicate:LAN:TELNet:WMESsage?\n;
MEAS:VOLT:DC?\n;
MEAS:VOLT:AC?\n;
// -----------------------------------
void LectureFichierCSV(void)
{
char *tAgTabTrame[50];
char ligne[2000];
char ch = 'a';
char Datatxt[1000];
bool Next ;
//char * s="TEST";
//ouverture du fichier depuis /harddisk/prgrm/ (QNX)
FILE * fp=fopen("AGI_Database.csv","rb");
// écriture du fichier
if (fp!=NULL)
{
printf("Debut de lecture du fichier Database: \n");
int cptchar = 0; int CptData = 0 ;
sprintf(Datatxt,"%s", "");
while(fgets(ligne, sizeof ligne, fp) != NULL)
{
cptchar = 0 ;
Next = false ;
do
{
ch = ligne[cptchar++];
if((ch == '\n') || (ch == '\r'))
break;
if(ch == ';')
{
CptData = CptData + 1;
// La ligne qui pose problème !
tAgTabTrame[CptData] = Datatxt ;
printf("%i : %s\n",CptData, Datatxt);
sprintf(Datatxt,"%s", ""); // réinitialise le char*
Next = true ;
} // Fin du if(ch == ';')
else
sprintf(Datatxt,"%s%c",Datatxt, ch); // concaténation
}// do
while (!Next);
} // While
printf("Nombre de trame lues : %i, CptData);
printf("Fin de lecture du fichier Database: \n");
fclose(fp);
}
}