Alternance de chaine de caractère

Evlo13 Messages postés 1 Statut Membre -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai le mot bonjour et je voudrais trouver bnorujo.

1ere lettre de bonjour (b)= est ma première (1) lettre de bnorujo
2ieme lettre de bonjour (o) = ma derniere (7)lettre de bnorujo
3ieme lettre bonjour(n) = ma deuxieme(2) lettre de bnorujo
4ieme lettre de bonjour(j) = l'avant derniere(6) lettre de bnorujo
5ieme lettre de bonjours(o) = ma troisième (3)lettre de bnorujo
6ieme lettre de bonjours(u) = ma cinquième(5) lettre de bnorujo
7ieme lettre de bonjour(r) = ma quatrième(4) lettre de bnorujo

J'espère que cela est compréhensible .

Merci

Configuration: Macintosh / Chrome 86.0.4240.111

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Déjà, tu n'indiques pas dans quel VB tu veux faire cela ...
    VB.NET ? VbScript ? VBA ? VB6 ? Autre ??

    Ensuite,
    Il y a un souci entre ce que tu dis vouloir obtenir "bnorujo"
    et l'explication que fais ensuite.... qui ne donnera pas du tout ce que tu veux...

    Si on alterne la première et la dernière puis la seconde et l'avant dernière.. etc... on trouvera le mot "brounoj"
    ce qui, par code, pourrait se faire ( en VBA par exemple )
    Sub test()
    Dim taille As Integer
    Dim str As String
    Dim result As String
    Dim G As Integer
    Dim D As Integer
    
    str = "bonjour"
    taille = Len(str)
    G = 0
    D = taille
    
    'on transforme le mot en array
    arrStr = split_string_to_char(str)
    
    'On fait une boucle de 1 à "nombre de caractères dans le mot"
    For i = 1 To taille
        
        'on vérifie si on est "pair" ou "impaire"
        If i Mod 2 Then
            'si i est impaire, on prend à Gauche
            result = result & arrStr(G)
            G = G + 1
        Else
            'si i est Paire, on prend à Droite
             result = result & arrStr(D - 1)
             D = D - 1
        End If
    
    Next
    MsgBox (result)
    
    End Sub
    
    Function split_string_to_char(text) As String()
    
       Dim chars() As String
       For char_count = 1 To Len(text)
          ReDim Preserve chars(char_count - 1)
          chars(char_count - 1) = Mid(text, char_count, 1)
       Next
       split_string_to_char = chars
    End Function
    
    
    


    0