Tableau inversé...

tchem Messages postés 14 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 19 février 2008 - 18 févr. 2008 à 18:15
tchem Messages postés 14 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 19 février 2008 - 19 févr. 2008 à 11:31
Bonjour, voici mon problème :

J'ai besoin d'associer à des string une valeur, ex :

"0001-400" -> 24
"0001-401 "->46
"0001-450" -> 103
"0021-450" -> 841

je veux a partir de la  string retrouver le numéro en 1 ou 2 instruction (c'est à dire sans boucle)

genre chiffre=fct("0001-400") mais sans boucle

remarque : c'est faire l'inverse d'un tableau, avec le nom retrouver l'index, mais sans boucle

D'avance merci

5 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
18 févr. 2008 à 18:54
salut,
à moins que les valeurs de gauche ne donnent les valeurs de droite par un cacul, sinon impossible de récupérer sans boucle.
qui plus est... quel intérêt (à moins que ton tableau ne soit trop grand et que la raison ait été le temps d'éxecution)

Option Explicit
Private Type MyTab
    sVal As String
    lVal As Long
End Type
Dim tTab(3) As MyTab

Private Sub Form_Load()
    tTab(0).sVal = "0001-400": tTab(0).lVal = 24
    tTab(1).sVal = "0001-401": tTab(1).lVal = 46
    tTab(2).sVal = "0001-450": tTab(2).lVal = 103
    tTab(3).sVal = "0021-450": tTab(3).lVal = 841

    MsgBox fct("0001-400")
End Sub

Private Function fct(ByVal sVal As String) As Long
    fct = -1 'erreur
    Dim i As Long
    
    For i = LBound(tTab) To UBound(tTab)
        If tTab(i).sVal = sVal Then fct = tTab(i).lVal: Exit For
    Next i
End Function

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
tchem Messages postés 14 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 19 février 2008
18 févr. 2008 à 20:12
Comme tu l'as dit, le tableau est grand, et le temps d'execution est malheuresement trop critique...


d'autres idées ?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
18 févr. 2008 à 20:45
peut-être avec cette source :
http://www.vbfrance.com/codes/FASTCOLLECTION-COLLECTION-10000-FOIS-PLUS-RAPIDE-LECTURE-INDEX_42861.aspx

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
18 févr. 2008 à 21:57
Bonsoir,
Pas ouvert VB mais il y a peu être moyen en passant par une collection ou un Dictionnaire non?

bon j'vais ouvrir VB pour éviter de dire des bêtises.

@+: Ju£i?n
Pensez: Réponse acceptée
0

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

Posez votre question
tchem Messages postés 14 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 19 février 2008
19 févr. 2008 à 11:31
Je ne trouve vraiment pas, du nouveau ?
0
Rejoignez-nous