VBA - Utilisation tableau multidimensionnel au lieu de deux?

Beaucoup de questions stupides ces derniers temps, mais j'aimerais avoir des commentaires sur celui-ci.
J'ai une chaîne qui vient à partir d'un fichier INI. Il ressemble à Firstname=FIRSTNAME. C'est, fondamentalement, un tableau avec des charges de ces. Je veux diviser, mais de préserver à la fois. Alors, j'ai réussi à mettre Firstname dans son propre tableau et FIRSTNAME sur elle-même. Mais alors, un de mes collègues m'a dit "Pourquoi ne pas simplement utiliser un tableau multidimensionnel à la place?". Et cela m'a fait réfléchir, mettre Firstname en 0 et FIRSTNAME en 1. Mais comment dois-je faire?

C'est mon code maintenant:

    For iTeller = 0 To UBound(arrIniName)
        If Not arrIniName(iTeller) = "" Then
            arrIniName(iTeller) = Split(arrIniName(iTeller), "=")(0)
        End If
    Next

    For iTeller = 0 To UBound(arrIniValue)
        If Not arrIniValue(iTeller) = "" Then
            arrIniValue(iTeller) = Split(arrIniValue(iTeller), "=")(1)
        End If
    Next

Les deux arrIniName et arrIniValues consiste exactement le même tableau pour commencer. Qui ressemble à ceci:

arrIniName(0) "Fistname=FIRSTNAME"
arrIniName(1) "Lastname=LASTNAME"
arrIniName(2) "Initials=INITIALS"

J'ai donc divisé chacun dans leurs propres tableaux distincts de la façon dont je le fais maintenant. Mais les mettre dans un tableau multi dimensionnel serait probablement mieux? Parce qu'alors j'aurais juste un tableau pour gérer et pourrait également tirer de ce tableau par le biais d'un For Each boucle.

Edit: j'ai fini par le faire comme cela, où Values est la matrice de

For Each s In Values
    Dim strName, strValue
    s = Split(s, "=")
    strName = s(0)
    strValue = s(1)

    'Run function strName, strValue
Next
Pour répondre à la question de savoir quelle serait la meilleure structure pour conserver les données, il serait utile de savoir ce que vous comptez faire avec les paires nom/valeur après vous les lire. Comment allez-vous souhaitez utiliser ces données?
Je vais courir deux d'entre eux par une fonction qui crée une Scripting.Dictionary entrée. Donc, fondamentalement, je veux juste créer dynamiquement des variables basées sur ce qui est dans le fichier INI. Plus tard, je regarde pour les signets dans le Mot modèle basé sur FIRSTNAME et insère une valeur en elle. J'ai juste envie d'être dynamique, donc je n'ai qu'à mettre à jour le fichier ini et insérer le signet que je veux, sans avoir à se soucier du code derrière vous voir 🙂 j'Espère que prend tout son sens :p
Rire - votre commentaire est apparu après que j'ai posté ma réponse. Pourquoi ne pouvez-vous pas créer le dictionnaire dès le début? Je veux dire, pourquoi avez-vous besoin d'un tableau temporaire pour stocker ces valeurs, plutôt que de juste les mettre directement dans le dictionnaire?
Bon point.. je n'ai pas vraiment besoin de l'tableaux pour quoi que ce soit. Il a juste obtenu de cette façon parce que je veux diviser la chaîne d'origine à partir du tableau en deux parties. Mais avec ton idée, je peux maintenant courir Pour Chaque boucle et le couper en mettre à chaque partie grâce à la fonction qui crée l'entrée de dictionnaire. Va l'essayer et voir comment il fonctionne 🙂
Qui fonctionne très bien.. je me sens comme un idiot! 🙂 Mais ces "aha"-expériences se fait de mieux à ce! 🙂

OriginalL'auteur Kenny Bones | 2011-03-30