VB2Html : Créer un rapport Html d'un projet Visual Basic 6, et VB .Net

https://codes-sources.commentcamarche.net/source/43716

D'après VBToHtml V2 de Bricomix : https://codes-sources.commentcamarche.net/source/19251

Documentation : VB2Html.html

Code source : VB2Html.vbproj.html

Lien : VB2Html209.zip

Par Patrice Dargenton : patrice.dargenton@free.fr

Nombreux exemples d'export via VB2Html :

http://patrice.dargenton.free.fr/CodesSources/index.html

 

Version 2.09 du 09/09/2018

 

J'ai repris la source de Bricomix et je l'ai converti en VB .NET pour pouvoir justement traiter aussi les projets VB .NET : Je n'ai pas eu à faire beaucoup de modifs, car la source d'origine fonctionne assez bien (mieux que d'autres projets équivalents en tout cas), j'ai juste fait en sorte d'éviter les nouveaux warnings de VB .NET, et j'ai compilé en mode Strict (du coup maintenant on n'a plus de dépassement de capacité sur des gros projets). J'ai corrigé aussi les boutons Haut et Bas (ils ne fonctionnent maintenant que si un seul fichier est sélectionné, car je ne voie pas très bien comment c'était sensé fonctionné avant, c'était bogué en tout cas).

J'ai ajouté la prise en charge d'un menu contextuel sur les projets VB6, VB 2005 et 2008 avec le bouton droit de la souris dans l'explorateur de fichier, via le menu personnalisé : "Convertir en Html".

Quelques mots clés ajoutés pour VB .NET : Global, Partial, UByte, UInteger, ULong, UShort, #Const, #If, #Else, #End et #Region (#End Region n'est pas géré, car il y a 2 mots clés).

 

Il reste à remplacer toutes les concaténations de String par des StringBuilder pour aller plus vite (ça tourne quand même assez vite si on compile en mode Release, une fois qu'on a trouvé comment l'activer, et à condition de lancer en dehors de VB). Il serait judicieux aussi de remplacer les fonctions d'origine VB6 qui restent encore (par exemple les fonctions FileGet, car l'encodage peut changer en VB .NET, il y a un risque de bug, déjà corrigé en partie, pour le moment je n'ai plus de bug de ce genre). Il faut revoir aussi le nommage des variables pour éviter les confusions de type, cela peut éviter des erreurs...

 

Avec VB Express .NET, pour choisir le mode Debug ou Release, il faut sélectionner le menu Générer : "Gestionnaire de configuration..." : Debug ou Release... mais pour voir ce menu, il faut le demander !!! (en anglais : Menu Build : Configuration Manager... : Debug ou Release)

Menu Outils : Options... : "Projets et solutions" : "Afficher les configurations de génération avancées" (en anglais : Menu Tools : Options... : "Projets and Solutions" : "Show Advanced Build Configuration").

 

Mots clés : VB2Html VB2Htm VBToHtml VBToHtm Html VB2Txt VBToTxt VB2Text VBToText

 

Table des matières

Limitations. 2

Historique des versions. 2

Version 2.09 du 09/09/2018. 2

Version 2.08 du 28/06/2014. 2

Version 2.07 du 15/09/2013. 2

Version 2.06 du 17/07/2011. 2

Version 2.05 du 13/09/2009. 2

Version 2.04 du 06/09/2009. 2

Version 2.03 du 13/04/2008. 2

Version 2.02 du 14/10/2007 (en collaboration avec "claudetom") 2

Version 2.01 du 09/08/2007. 3

Version VBToHtml V2 de Bricomix du 21/05/2005. 3

Liens. 3

 

 

Limitations

 

Il reste quelques petits défauts à corriger, par exemple :

- #End Region n'est pas colorisé car c'est un mot clé double (seul #End est colorisé dans ce cas) ;

- Si on ne demande pas les déclarations complètes de procédure dans la table des matières, alors ne pas afficher les attributs non plus :

  2.1 - <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent

- Lire correctement le titre de l'Assembly si un souligné est utilisé dans l'attribut :

    <Assembly: AssemblyTitle( _

        "VB2Html")>

 

 

Historique des versions

 

Version 2.09 du 09/09/2018

- Gestion des caractères spéciaux (par ex. en grec) dans le code source, via l'Unicode UTF8 (remplacement du code hérité de VB6 : FileGet, FileClose, ... par les équivalents .Net avec la gestion de l'Unicode : System.IO.FileStream et StreamWriter).

 

Version 2.08 du 28/06/2014

- Gestion des fonction Lambdas (Linq, ...) : empêcher les procédures imbriquées (si on est déjà dans une procédure et qu'on détecte une nouvelle procédure, alors il s'agit d'une fonction lambda : ne pas inclure d'entrée dans la table des matières) ;

- Passage en DotNet 4.

 

Version 2.07 du 15/09/2013

- Passage en VB 2010.

 

Version 2.06 du 17/07/2011

- Prise en charge de VBExpress 2010 (le menu contextuel est différent : "VBExpress.Launcher.vbproj.10.0" au lieu de "VBExpress.vbproj.10.0", et correction de 2 warnings à la compilation : GetItemString et SetItemString non compatibles avec SE 64 bits).

 

Version 2.05 du 13/09/2009

- Mots clés VB .NET ajoutés : #Const, #If et #Else ;

- Correction du bug si aucun projet n'est sélectionné quand on quitte (problème suite à la version 2.04).

 

Version 2.04 du 06/09/2009

- Correction du bug fichier inexistant enregistré dans le fichier ini (modification des fichiers d'un projet entre deux export html).

 

Version 2.03 du 13/04/2008

- Mots clés VB .NET ajoutés : Global, UByte, UInteger, ULong, UShort ;

- Mémorisation de l'ordre des fichiers sources de chaque projet dans un fichier ini ;

- Gestion des menus contextuels remaniée, et prise en compte de VB 2008 aussi ;

- Passage en VB 2008.

 

Version 2.02 du 14/10/2007 (en collaboration avec "claudetom")

- Utilisation des ressources internes de l'exécutable si les fichiers de mots clés et html sont absents ;

- Sauvegarde des paramètres dans un fichier xml au lieu de la base de registre (le fichier de configuration dépend de l'utilisateur Windows, il se situe donc dans \Documents and Settings\<utilisateur>\Local Settings\Application Data\ORS_Production\VB2Html.exe_Url_xxx...xxx\2.0.2.xxxxx\user.config) ;

- Gestion d'un menu contextuel par le programme (cela permet de convertir directement un projet depuis l'explorateur de fichier, via le bouton droit : "Convertir en Html") ;

- Formulaire redimensionnable (simplification des éléments de l'interface : panels redondants avec les GroupBox) ;

- Export en mode texte : VB2Txt (utile pour indexer les fichiers avec un autre projet que publierai un jour, ou simplement pour visualiser la date des fichiers répartis à l'origine dans plusieurs dossiers) ;

- Formulaire d'attente pendant la conversion, avec possibilité d'annuler.

 

22/09/2007

- Détection de l'absence des fichiers des mots clés ;

- Isolation du code de conception du formulaire VB2Html (Designer.vb) ;

- Utilisation de StringBuilder pour la boucle principale (qui fonctionne caractère par car.: pour le moment on ne gagne rien, car un test sur le mot clé est effectué à chaque ajout de caractère) ;

- Compilation en mode Strict terminée ;

- Blocage du bouton Créer pendant la conversion ;

- S'il n'y a pas d'info dans l'assembly, alors reprise du nom du projet ;

 

15/09/2007

- Option pour ignorer les modules .Designer.vb de VB 2005 ;

- Bug corrigé : Remplacement des vbTab par des espaces.

 

Note : Claudetom travaille actuellement sur une version multi-langage (C#, J# ?,  html/xml/aspx, T-Sql, Javascript et PowerShell, en plus des versions VB), qui n'est pas encore tout à fait terminée (elle utilise les expressions régulières, ce qui est plus élégant, mais je n'ai pas réussi à la faire fonctionner) :

 

La base du programme est sur VB2Html pour certain élément de génération, c'est pour cela qu'il n'est pas optimisé à 100%

L'autre partie du code la génération des fichiers html repose sur un autre source CSharpformat (C# converti en vb)

1) Génération de plusieurs langages

2) Table des matières avec icône

3) Numérotation de ligne

4) Couleur Ligne

A Revoir : Césure des lignes non fonctionnel a 100%

La génération des autres langages autre que C# et VB (code présent pour le J#, Powershell, XML, etc..) pouvant être étendu par l'ajout d'une simple class.

ProgressBar de l'évolution par thread séparé.

etc..

Je compte mettre ce code sur VBFrance mais seulement quand il sera fonctionnel (sans défaut)

2 versions en cours :

Version tirée de Bricomix et moi pour l'amélioration et correction (VBToHTML.NET2)

Version tirée de Bricomix, Patrice, Manoli et moi pour l'intégration et corrections (CodeVSHTML)

 

Version 2.01 du 09/08/2007

- Correction du fonctionnement des boutons Haut et Bas ;

- Gestion du chemin du fichier projet à convertir en argument de la ligne de commande ;

- Mots clés ajoutés pour VB 2005 : Global, Partial, UByte, UInteger, ULong, UShort, #Region, #End ;

- Passage en DotNet2 : VB8/2005/Express : correction des nouveaux warnings, compilation en mode Strict (du coup maintenant on n'a plus de dépassement de capacité sur des gros projets).

 

Version VBToHtml V2 de Bricomix du 21/05/2005

www.vbfrance.com/code.aspx?ID=19251

 

 

Liens

 

- Autre VB2Html : Génération en Html de sources VB, avec coloration syntaxique et hyperliens

  www.vbfrance.com/code.aspx?ID=38517 : ne traite que VB6 et est bogué (sinon présentation pas mal)

 

- Générateur de documentation (lib pour Réflection et XmlDoc)

  www.csharpfr.com/code.aspx?ID=44645

 

- General Purpose Colorizer : via regEx

  www.codeproject.com/KB/HTML/GPC.aspx

 

ImmDoc .NET - a tool for generating HTML documentation

  ImmDoc .NET is a command-line utility for generating HTML documentation from a set of .NET assemblies and XML files created by the compiler
  www.codeproject.com/KB/dotnet/ImmDocNet.aspx

 

- Analyseur de code VB

  www.vbfrance.com/code.aspx?ID=3401

 

- 100% Reflective Class Diagram Creation Tool

  www.codeproject.com/csharp/AutoDiagrammer.asp

 

Diagrams with Reflector and the Graph Plugin (Part 1)

  www.codeproject.com/useritems/method_deps_p1.asp

 

- Détection des variables inutilisées dans un projet Visual Basic

  www.vbfrance.com/code.aspx?ID=6449

 

- Code non utilisé dans un assembly

  www.codeproject.com/cs/algorithms/Not_Used_Analysis.asp

 

- VSN2005-2-2003 www.codeproject.com/useritems/WhidbeyProjectConverter.asp

 

- Mesure de la taille d'un projet : effort de dev. à faire

  www.codeproject.com/csharp/FP_Analysis_Tool_in_NET.asp

 

Dependency scanner by EBArtSoft (VB6)

  www.vbfrance.com/code.aspx?id=39148

 

Visualizing project dependencies automatically

  www.codeproject.com/useritems/DependencyTracker.asp

 

www.codeproject.com/useritems/LineCountUtility.asp

- Lister les propriétés, events, subs d'une form

  www.vbfrance.com/code.aspx?ID=43914

 

- DBComp2 : le comparateur de structure de base de données Access (ou ODBC) avec Windiff

  www.vbfrance.com/code.aspx?ID=17847 : DBComp2.05