Différence taille vba vs vb.net

Résolu
IMX Messages postés 16 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 4 mai 2011 - 23 nov. 2007 à 10:13
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

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 nov. 2007 à 10:58
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)
3
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
Merci beaucoup,

IMX
0
Rejoignez-nous