Alternance de chaine de caractère

Fermé
Evlo13 Messages postés 1 Date d'inscription mercredi 4 novembre 2020 Statut Membre Dernière intervention 4 novembre 2020 - 4 nov. 2020 à 04:13
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 4 nov. 2020 à 09:36
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
A voir également:

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
4 nov. 2020 à 09:36
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