Vb6 à vb.net

Signaler
Messages postés
12
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
19 janvier 2007
-
Messages postés
69
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
3 octobre 2006
-
Bonjour,

Je travaille actuellement avec vb6. Toutes les applications que je fais sont composé uniquement de module sans fenêtre ce qui permet de lancer des applications toute seule.
Je voulais savoir si parmis vous, il y en a qui ont fait la même chose et comment ils ont passé leur application vb6 en .net.
Est ce que pour chaque module que j'ai dans VB6, je dois faire une classe dans .NET? Ou est ce que je dois décomposé en beaucoup plus de classe
De plus dans mon module principale dans VB6, je fais pas mal d'appel de procédures. Comment fait-on en VB.net?
J'ai également d'autres questions, notamment au niveau de la lecture de fichier XML très volumineux, mais bon ça ca se ra pour après.

Merc d'avance pour vos réponses.

Fraisoo
http://www.ascm37.fr.st
http://www.fraisoo.fr.st

8 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Tu peux normalement garder en .net la même structure générale de ton programme que tu avais en vb6.

Le principe général des modules, fonctions, ... fonctionne pareil.

En ce qui concerne les classes, dans un premier temps, si tu n'en as pas en vb6, tu n'en as pas besoin en .net.
Dans un second temps, il est possible que certaines parties de ton code soient plus efficace dans des classes, mais cela dépend essentiellement de ton code, de ce que tu y fais dedans. Il n'y a pas de règle préétablie. Commence par faire marcher ton code actuel sous .net. Ensuite, tu pourras chercher à optimiser ton code dès que tu sera plus à l'aise avec .net.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
12
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
19 janvier 2007

Merci pour ta réponse,

je vais essayer ce que tu m'a dis.
Cependant, tu me dit de laisser ça comme ça pour l'instant et quand je serais plus àl'aise avec .net de faire des classes. Mais comment faire pour être plus à l'aise?
Quel outils utilisé? C'est vrai que vb.net pour une application windows (avec des fenêtres) y a pas de problèmes. Mais moi toutes mes applications sont sans fenêtre. Je passe une argument dans la ligne de commande et je lance mon programme.
Donc je voulais passé en .net pour voire si au niveau temps de traitement je pouvais gagner du temps, notamment lors de la lecture de fichier xml très volumineux (3Go)
Dans vb6 je le lis comme un fichier texte, y a t'il une meilleure solution?

Fraisoo
http://www.ascm37.fr.st
http://www.fraisoo.fr.st
Messages postés
12
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
19 janvier 2007

J'ai esayé d'importer un projet de vb6 en .net, il me mets des errerus sur mes procédures


Instructions non valide dans un espace de noms.


j'ai fait un imports microsoft.visualbasic






Fraisoo
http://www.ascm37.fr.st
http://www.fraisoo.fr.st
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
C'est normal, le code VB6 n'est pas directement réutilisable en .net. Beaucoup de chose ont changé, des fonctions ont disparu, d'autres ont été remplacées, ...

De faire un imports microsoft.visualbasic, te permet justement de garder la compatibilité de code vb6 avec .net.

Quitte à passer à .net, le but est justement de se passer de cet imports. Cela necessite de remanier une partie du code. C'est pas forcement évident quand on débute, cela necessite du temps, et des recherches dans l'aide, des essais, ...

Mais normalement, lorsque tu ouvre un projet vb6 avec .net, tu as un assiatnt qui se lance pour te convertir le code. Il n'est pas parfait, mais il te fait déjà une partie du travail.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
12
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
19 janvier 2007

Merci j'ai vouert mon projet avec .net, en effet il est pas parfait car il y a bcp d'erreur.
Je me posais une question car en vb6 lorsque je déclarais la strucutre de mon fichier de sortie (car je lis un fichier en entrée par exemple XML) et une fois que j'ai récupéré les infos dont j'ai besoin, je les écrit dans un fichier texte. Donc dans vb6 je déclarais chque zone de mon fichier avec une longueur fixe ex : dim toto as string *35.
Existe t-il une manière de faire pareil en .net car il n'accepte plus cette syntaxe?

Fraisoo
http://www.ascm37.fr.st
http://www.fraisoo.fr.st
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Une varaible de type string ne peut pas etre déclarée de longueur fixe en .net

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
12
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
19 janvier 2007

Alors comment fait-on lorsqu'on veut avoir en sortie un fichier de longueur fixe?

Fraisoo
http://www.ascm37.fr.st
http://www.fraisoo.fr.st
Messages postés
69
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
3 octobre 2006

Salut,

Je ne comprend pas trop pourquoi tu utilise des zones de taille fixe pour écrire ton fichier texte. Si je ne m'abuse un fichier texte est une suite de ligne de longeur variable se terminant par un code retour chariot (crlf).  Tu peux écrire dans  un fichier texte avec une simple zone définit en string. Si tu utilise les instructions standart de VB un simple Print #1,zone permet d'écrire du texte, quel que soit la taille de la chaine contenu dans la zone.

A moins que ton fichier texte soit destiné à une application tiers qui a besoin d'un fichier de taille fixe dont les informations sont zonées dans chaque enregistrement. Dans ce cas tu peux également te passer de fixer la taille de tes zones. Tu peux concatener tes informations avec des espaces et tailler la chaine avec l'instruction Left.

Prenont un exemple concret: tu veux écrire un fichier dont l'enregistrement est fixé à 100 octets, avec une zone Nom de 30 octets, une zone Prenom de 20 octets, et une zone Email de 50 octets. On a donc:

    Dim Ligne As String
    Dim Nom As String, Prenom As String, Email As String

    Nom = Left("Holmes" + Space(30),30)
    Prenom = Left("Sherlock" + Space(20),20)
    Email = Left("sherlock.holmes@scotland-yard.uk" + Space(50),50)
    Ligne = Nom + Prenom + Email
    Print #1, Ligne