View: MFC convertir Tree en texte

  1. 11 years ago by moifort
    1. // Conversion d'un TreeControl en texte
    2. void Conversion(void)
    3. {
    4.         CStdioFile File;
    5.         if(File.Open( "C:\\test.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText )) // Cree un nouveau fichier, ici : "C:\\test.txt"
    6.         {
    7.                 HTREEITEM hti = m_TreeStruct.GetRootItem();
    8.                 while( hti )
    9.                 {
    10.                         int nLevel = GetTreeLevel( hti );
    11.                         while( nLevel-- ) File.WriteString( "|\t" );
    12.                         if (m_TreeStruct.ItemHasChildren( hti ))
    13.                                 File.WriteString("+ " + m_TreeStruct.GetItemText( hti ) + "\r\n");
    14.                         else
    15.                                 File.WriteString("  " + m_TreeStruct.GetItemText( hti ) + "\r\n");
    16.                         hti = GetNextItem( hti );
    17.                 }
    18.         }
    19.  
    20.         File.Close(); // Ferme le fichier
    21.  
    22.         ShellExecute(NULL, "open", "C:\\essai.txt", 0, 0, SW_SHOWNORMAL); // On l'ouvre avec l'executable auquel il est associĆ©, sous windows notepad.
    23.        
    24. }
    25.  
    26.  
    27.  
    28. /************************************************************************
    29.                                                                                           
    30. FONCTION: int GetTreeLevel(HTREEITEM)&HTREEITEM GetNextItem(HTREEITEM)
    31.                                                                                                                                         
    32. DEFINITION: Sous fonctions pour la conversion du Tree -> Txt           
    33.  
    34. ************************************************************************/
    35. int CTailleStructureDlg::GetTreeLevel( HTREEITEM hItem )
    36. {
    37.         int iIndent = 0;
    38.         while( (hItem = m_TreeStruct.GetParentItem( hItem )) != NULL )
    39.                 iIndent++;
    40.         return iIndent;
    41. }
    42.  
    43.  
    44. HTREEITEM CTailleStructureDlg::GetNextItem( HTREEITEM hItem )
    45. {
    46.         HTREEITEM       hti;
    47.  
    48.         if( m_TreeStruct.ItemHasChildren( hItem ) )
    49.                 return m_TreeStruct.GetChildItem( hItem );           
    50.         else
    51.         {              
    52.                 while( (hti = m_TreeStruct.GetNextSiblingItem( hItem )) == NULL )
    53.                 {
    54.                         if( (hItem = m_TreeStruct.GetParentItem( hItem ) ) == NULL )
    55.                                 return NULL;
    56.                 }
    57.         }
    58.         return hti;
    59. }
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/388"></script>

0 comment about "MFC convertir Tree en texte"