Différence taille vba vs vb.net [Résolu]

Messages postés
16
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
4 mai 2011
- - Dernière réponse : IMX
Messages postés
16
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
4 mai 2011
- 23 nov. 2007 à 11:27
Bonjour,

   j'ai un problème (on vous ne l'avais jamais faite celle-là !! Comme c'est original)

J'ai créé une petite application qui génère un fichier avec comme élément une structure de taille fixe (374).
Je voudrait utiliser ce fichier dans word et j'ai fait une petite macro qui utilise ce fichier.
J'ai donc créé un type dans vba avec les mêmes caractéristiques (que je croyais !!). Il fait 354 octets dans vba !!!

VB.NET

Structure Ref_Style
        Public Num As Long
        <VBFixedString(40)> Public Titre As String
        Public type As Integer
        <VBFixedString(255)> Public formule As String
        <VBFixedString(20)> Public F1 As String
        Public F2 As Integer
        Public E1 As Integer
        Public E2 As Integer
        Public E3r As Integer
        Public E4 As Integer
        <VBFixedString(15)> Public T As String
        <VBFixedString(1)> Public B1 As String
        <VBFixedString(5)> Public B2 As String
        Public P As Integer
        Sub initialize()
            Num = -1
            Titre = ""
            type = 0
            formule = ""
            F1 = ""
            F2 = 10
            E1 = 999
            E2 = 999
            E3 = 1
            E4 = 1
            T = ""
            B1 = ","
            B2 = ""
            P = 1
        End Sub
    End Structure


End Module
Cela donne une longueur = 372




Type Ref_Style
    Num As Long
    Titre As String * 40
    Type As Integer
    formule As String * 255
    F1 As String * 20
    F2 As Integer
    E1 As Integer
    E2 As Integer
    E3 As Integer
    E4 As Integer
    T As String * 15
    B1 As String * 1
    B2 As String * 5
    P As Integer
End Type
Cela donne une longueur = 354

Quelqu'un aurait une idée d'où cela vient ?

Merci,

IMX
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
59
3
Merci
Salut
En effet, .Net a modifié la définition des variables pour ce rapprocher du C.
VBA : Integer = Entier de 16 bits --> .Net devenu Short
VBA : Long = Entier de 32 bits --> .Net devenu Integer

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 128 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
16
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
4 mai 2011
0
Merci
Merci beaucoup,

IMX
Commenter la réponse de IMX