Chaine de caractere

jerome57440 Messages postés 40 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 8 juillet 2008 - 6 mars 2008 à 14:10
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 7 mars 2008 à 14:36
bonjour ,
j'ai une chaine de caractere de n element du style "abcde...." et jaimerai separer chaque caractere par un espace pour ensuite affecter une variable a chaque element pour un traitement posterieur.
Je sais qu'il faut utiliser la fonction mid pour extraire les elements le pb est que j'ai un erreur de compilation dans ma boucle qui fait ce la
Si quelqu'un a une proposition a me faire ca seriat sympa.

voici le code:

Sub Traitement(tampon As String)
Dim decod(Len(caractere_a_recevoir)) As String
Dim i As Integer
For i = 0 To (Len(tampon) - 1)
decode(i) = Mid(tampon, i, 1)
Text9.Text = Text9.Text + decode(i) & ""
Next

11 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2008 à 14:18
Mid("abc", 0, 1) plantera...
le premier caractère c'est 1

mid pas efficace ici...
on peut jouer en faisant:

? strconv("bonjour",vbUnicode)
b o n j o u r

bon, qui sépare, ce ne sont pas de espaces, mais bon...(des \0 )
0
NHenry Messages postés 15132 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 19 juin 2024 159
6 mars 2008 à 14:26
Bonjour

Et faire ensuite un Replace(...,chr$(0)," ") ?

Sinon pour les espaces :
Dim lTmp as string
Dim i as long

ltmp=""

For i=1 to len(MaStr)
    ltmp=ltmp & " " & mid$(MaStr,i,1)
Next i

ltmp=trim$(ltmp)

Voila.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2008 à 14:31
a voir si les espaces se doivent d'être des espaces, ou si l'idée est juste de se reserver un caractère séparateur
0
jerome57440 Messages postés 40 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 8 juillet 2008
6 mars 2008 à 14:38
ca ne resou pa entierement mon probleme j'aimerai que dans la boucle chaque caractere soit affecter a une variable pour un traitement posterieur
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2008 à 14:42
NHenry et moi même t'avons indiqué les erreurs présentes dans ton code...

Sub Traitement(tampon As String)
Dim decode() As String
Dim i As Integer
Redim decode(Len(caractere_a_recevoir)-1)
For i = 1 To Len(tampon)
decode(i-1) = Mid$(tampon, i, 1)
Next i
Text9.Text = Text9.Text & Join(decode, " ")
End Sub


après, on ne sais pas ce que tu souhaites faire de ton tableau decode...
0
jerome57440 Messages postés 40 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 8 juillet 2008
6 mars 2008 à 16:05
avec mon tableau decode je doi convertir chaque caractere ascii en hexadecimal
ca marche mais g ke des ?????????? dans ma text box donc le code 3F correspondant
0
NHenry Messages postés 15132 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 19 juin 2024 159
6 mars 2008 à 16:18
Bonjour

Donc convertir une chaine en suite d'octer vu sous forme Hexa :

Dim lStr as string
lStr=""
Dim i as long

for i=1 to len(MaStr) 'MaStr étant la chaine source
    lStr=lstr & " " & left$("00" & hex$(asc(mid$(MaStr,i,1))),2)
Next i
lStr=trim$(lStr)

Puis :
Text9.Text=lStr

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 mars 2008 à 08:37
Right$ dans ce cas, NHenry, pour le formatage sur deux caractères.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
7 mars 2008 à 13:23
salut,
un ptit snippet pour la découpe... (sans tableau ou conversion hexa, question pas claire ^^)

http://www.codyx.org/snippet_entrecouper-chaque-caractere-chaine-avec-autre-caractere_560.aspx

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 mars 2008 à 14:23
voilà du code qui me plait: on limite les reallocations dues aux concaténations

sauf si on not bIncludeLast... là, je ferais donc:

Function ExplodeChars(ByRef Expression As String, Optional sChar As String " ", Optional bIncludeLast As Boolean True) As String
Dim i As Integer
Dim j As Integer
If Len(Expression) Then
If LenB(sChar) = 2 Then
If bIncludeLast Then
ExplodeChars = String(LenB(Expression), sChar)
Else
ExplodeChars = String(LenB(Expression) - 1, sChar)
End If

j = 1
For i = 1 To Len(Expression)
Mid$(ExplodeChars, j, 1) = Mid$(Expression, i, 1)
j = j + 2
Next i
End If
End If
End Function
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
7 mars 2008 à 14:36
pas bête, mieux ;)
0
Rejoignez-nous