Bonjour,
J'ai besoin d'alimenter un Treeview à partir d'un fichier texte qui est une liste d'artiste, titre, date.
ex:
Artiste Date Image
Air 26/02/2002 air_live_260202.jpg
Air 05/06/2004 air_live_050604.jpg
...
Bob Marley ... ...
Bob Marley ... ...
etc..
Je récupère bien ma valeur a insérer (artiste) dans mon treeview, mais j'obtien autans d'entrées que de ligne dans mon fichier texte.
hors je voudrais qu'avant d'insérer une nouvelle entrée dans mon treeview, je vérifie si l'entrée n'existe pas.
J'ai pour l'instant :
Code C/C++ :
// Déclaration de mon treeview //
TVINSERTSTRUCT tvis;
TVITEMEX tvix, tvinfo;
HTREEITEM ht, htFather, htRoot;
TVITEM tvi;
tvix.mask = TVIF_TEXT | TVIF_PARAM | TVIF_SELECTEDIMAGE | TVIF_STATE | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
tvix.pszText = L"Artistes";
tvix.lParam = 0;
tvix.stateMask = TVIS_EXPANDED | TVIS_STATEIMAGEMASK ;
tvix.state = TVIS_EXPANDED;
tvix.iImage = IDX_DISC;
tvix.iSelectedImage = tvix.iImage;
tvis.itemex = tvix;
tvis.hParent = TVI_ROOT;
tvis.hInsertAfter = TVI_LAST;
htRoot = TreeView_InsertItem(hWndTree,&tvis);
// REMOVE ITS CHECKBOX (STATE IMAGE)
tvi.mask = TVIF_STATE;
tvi.hItem = htRoot;
tvi.stateMask = TVIS_STATEIMAGEMASK;
tvi.state = 0;
TreeView_SetItem(hWndTree,&tvi);
// ... dans ma boucle de traitement pour récupérer ma valeur lPa.Artiste
if ( (ht = TreeView_GetChild(hWndTree,htFather)) != NULL ) {
do {
tvi.mask = TVIF_PARAM|TVIF_TEXT;
tvi.hItem = ht;
tvi.pszText = szToComp;
tvi.cchTextMax = 256;
// TreeView_GetItem(hWndTree,&tvi);
if ( StrCmp(szToComp,lpA.pwszArtist) == 0 ) break;
} while ( (ht = TreeView_GetNextSibling(hWndTree,ht)) != NULL );
}
if ( ht ) {
// THIS NODE EXISTS ALREADY, MOVE UP WITH IT
htFather = ht;
goto NextEntry;
} else {
// OTHERWISE, ADD IT AND MOVE UP WITH THIS NEW ONE
tvix.mask = TVIF_TEXT | TVIF_PARAM | TVIF_SELECTEDIMAGE | TVIF_STATE | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
tvix.pszText = lpA.pwszArtist;
tvix.lParam = 0;
tvix.stateMask = TVIS_EXPANDED | TVIS_STATEIMAGEMASK;
tvix.state = TVIS_EXPANDED | TVIS_STATEIMAGEMASK;
// tvix.iImage = IDX_EMAILFOLDER;
// tvix.iSelectedImage = tvix.iImage;
tvis.itemex = tvix;
tvis.hParent = htFather;
tvis.hInsertAfter = TVI_LAST;
htFather = TreeView_InsertItem(hWndTree,&tvis);
}
Je n'arrive pas a comparer si mon entrée existe déjà ou pas.
Si quelquns a déjà rencontré ce problème, merci de votre aide.
Alain