Vb6 à vb.net

Fraisoo37 Messages postés 12 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 19 janvier 2007 - 6 sept. 2006 à 09:49
geobasic Messages postés 69 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 3 octobre 2006 - 9 sept. 2006 à 01:47
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

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
6 sept. 2006 à 10:10
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 #
0
Fraisoo37 Messages postés 12 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 19 janvier 2007
6 sept. 2006 à 10:24
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
0
Fraisoo37 Messages postés 12 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 19 janvier 2007
6 sept. 2006 à 10:34
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
6 sept. 2006 à 10:59
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 #
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fraisoo37 Messages postés 12 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 19 janvier 2007
6 sept. 2006 à 11:46
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
6 sept. 2006 à 11:59
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 #
0
Fraisoo37 Messages postés 12 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 19 janvier 2007
6 sept. 2006 à 12:11
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
0
geobasic Messages postés 69 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 3 octobre 2006
9 sept. 2006 à 01:47
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
0