cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 19 juil. 2005 à 20:20
Salut
Pour ça, il faut apprendre à utiliser les fonctions suivantes :
# Instr : Te renverra l'emplacement où commence la chaine recherchée :
Instr("{1234}{5678}-abcdefghijkf", "{") renverra 1 puisque { est en 1ere position
Instr(2, "{1234}{5678}-abcdefghijkf", "{") renverra 7 puisque { est trouvé en 7eme position à compter du caractère n° 2
# Mid renvoie une portion de la chaine :
Mid("{1234}{5678}-abcdefghijkf", 2, 4) renverra "1234" (commence au 2eme et prend 4 caratères)
# CLng convertira une chaine en chiffre entier
CLng("1234") renverra 1234 (utilise pour faire des additions)
# CStr convertira un chiffre en chaine
CStr(1234) renverra "1234"
# le symbole & te permettra de concaténer (mettre bout à bout) deux chaines
"1234" & "8888" renverra "12348888"
...
Bien sûr, tu peux utiliser toutes les combinaisons possibles de ces fonctions
A toi d'isoler les zones qui t'interessent, les manipuler et les remettre dans l'ordre
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
(je
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 19 juil. 2005 à 20:37
Salut
Je te proposes un premiere solution... qui se base sur les { et }
permettant aisni de modifier la longueur des chaines numérique qu'elles
contiennent. Par contre si les chaine numerique sont de longueur fixe,
tu peux simplifier ..
Private Function decouper(str As String, ByRef debut As Integer, _
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 19 juil. 2005 à 20:49
Salut,
Un peu tard peut-être, mais j'avais envie de m'amuser.
OK avec les instr sauf que ça ne renvoie que la 1ere occurence. J'ai codé une méthode très bourrin mais qui a l'air de marcher, quelque soit le nombre de paire de {], le tout sans commentaires ou presque :
Private Sub Form_Load()
Dim s As String 'la chaine d'origine
Dim sc As String 'les sous chaine
Dim sr As String 'la chaine résultat
Dim p As Integer 'position du {
Dim i As Integer 'compteur de position dans la chaine
Dim c As String 'le car analysé
Dim inc As Long 'incrément
inc = 100
s = "{1234}{5678}-abcdefghijkf"
For i = 1 To Len(s)
c = Mid(s, i, 1)
Select Case c
Case "{"
sr = sr & c
p = i + 1
Case "}"
sr = sr & CStr(CLng(sc) + inc) & c
sc = ""
p = 0
Case Else
If p > 0 Then
sc = sc & c
Else
sr = sr & c
End If
End Select
Next
MsgBox sr
End Sub
Comme ça, mierkool tu as le choix.
Bonne prog
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Vous n’avez pas trouvé la réponse que vous recherchez ?