hr=mBasicCsv->MaFonction(&inf);
AfxMessageBox("Lecture OK" );
long lStartBound =0;
long lEndBound = 0;
long lDimension[2];
SAFEARRAY* pSafeArray = inf.parray;
hr = SafeArrayGetLBound(pSafeArray, 1, &lStartBound);
hr = SafeArrayGetUBound(pSafeArray, 1, &lEndBound);
for(int iIndex = lStartBound; iIndex <= lEndBound; iIndex ++)
{
VARIANT NomChamp;
lDimension[1] = NbEt_InfoSV;
lDimension[0] = iIndex;
hr = SafeArrayGetElement(pSafeArray, lDimension, &NomChamp);
AfxMessageBox(CString(NomChamp.bstrVal));
VARIANT TypeD;
lDimension[1] = NbEt_InfoSV + 1;
lDimension[0] = iIndex;
hr = SafeArrayGetElement(pSafeArray, lDimension, &TypeD);
AfxMessageBox(CString(TypeD.bstrVal)); // message Box qui affiche la valeur
if (CString(TypeD.bstrVal) != 'G')
{
VARIANT Valeur;
lDimension[1] = NbEt_InfoSV + 2;
lDimension[0] = iIndex;
hr = SafeArrayGetElement(pSafeArray, lDimension, &Valeur);
AfxMessageBox(CString(Valeur.bstrVal));
}
}
NbEt_InfoSV = une constante initialisée à 5
Sachant que la premiere dimension de mon tableau est :
NbEt_InfoSV x des entiers
NbEt_InfoSV : le nom du champ
NbEt_InfoSV + 1 : le type du champ
NbEt_InfoSV + 2 : la valeur du champ
j'ai pas trop le temps de t expliquer plus mais en gros :
Tu recupere la taille des 2 dimension de ton tableau avec SafeArrayGetLBound et SafeArrayGetUBound
Et ensuite tu boucle pour récuperer les données qui vont bien
Voila, je repond pas forcement super en avance par rapport à ton post
tu a probablement trouvé la solution tout seul depuis, mais ça pourra toujours aider quelqu'un
Bonne chance
++
Billy-Bob