Chaines de caractères

cs_Ricardo69 Messages postés 3 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 17 novembre 2007 - 15 nov. 2007 à 21:48
cs_Ricardo69 Messages postés 3 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 17 novembre 2007 - 17 nov. 2007 à 11:04
Bonjour,
Je vais essayer d'être le plus clair possible, je m'escuse d'avance si mes questions sont un peu compliquées.
Je possède un certain nombre de valeurs en décimale qui se trouvent dans un fichier csv.
Après extraction et conversion de ces valeurs en binaire j'obtients des valeurs de type 1001010101 (exemple)

Je souhaite connaitre les codes et fonctions permettant de tester chaque caractère (0 ou 1) des valeurs obtenues et, en fonction du résultat obtenu, d'écrire le résultat dans une cellule.

Comme c'est assez dur a expliquer je vais ecrire le programme que je souhaiterais en "français":

- Selectionner la plage de cellules A4 à B20 (ces cellules contiennent mes valeurs en decimale)
- Pour chaque cellule sélectionnée, convertir la valeur en binaire (jusque la je suis arrivé à me débrouiller)
- Pour chaque valeur obtenue, décomposer la valeur en chaine de caractère (on appelle i le caractère)       Si i 1 alors Ecrire "resultat 1" dans une cellule (C4 par exemple)
       Sinon Ecrire "resultat = 0"
    i = i+1 (et je recomence  le test avec le caractère suivant)         Si i 1 alors Ecrire "resultat 1" dans une cellule (Cette foi je voudrais ecrire dans C5...)
Et ainsi de suite pour chaque caractère..

Pour réaliser cette opération sur chaque caractère de chaque chaine en binaire, je pensais utiliser des boucles "For" mais je ne sais pas comment programmer cela en VB.
Si quelqu'un sait comment m'aider...
Desolé encore pour mon explication un peu longue et complexe mais j'espère que cela est assez clair.

   

6 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 nov. 2007 à 22:39
Bonsoir,

Fais donc un Split sur la chr(0)
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 nov. 2007 à 09:08
Bon...
Pas de réactions (j'en attendais).

Bien que je préfèrerais dans ce cas particulier utiliser un split sur le caractère chr(0) ... car amusant,

Il sera surement plus simple pour toi d'utiliser la fonction Mid  (aide en ligne) dans une boucle For next.


Intéresse-toi donc à la fonction Mid.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
16 nov. 2007 à 15:33
Voici le code de base qui réalise la décomposition, ensuite à toi de voir pour les références etc...

=

Sub ess()



mot = "101010001110"



For t = 1 To Len(mot)
    MsgBox Mid$(mot, t, 1)
Next t



End Sub


=

Comme tu vois, c'est très simple.
Mid extrait une chaine de caractère de la chaine "mot" à partir de l'emplacement "t" de longueur "1"...

En espérant que cela te mettra sur la voie...

Amicalement,
Us.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 nov. 2007 à 17:35
Oui ?

Ben ...il n'a plus tellement à travailler, là ...

Alors et puisque c'est fait :

Passons aux méthodes amusantes :

Private Sub Command1_Click()
  toto = "11001010111A"
  titi = Split(StrConv(toto, vbUnicode), Chr(0))
  For i = 0 To UBound(titi) - 1
    MsgBox titi(i)
  Next
End Sub


Private Sub Command2_Click()
  toto = "C'est-y pas beau, çà ?"
  titi = Replace(StrConv(toto, vbUnicode), Chr(0), "   ")
  MsgBox titi
End Sub
0

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

Posez votre question
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
16 nov. 2007 à 18:45
C   '   e   s   t   -   y       p   a   s       b   e   a   u   ,       ç   à       ?  

S i C i !!

U  s    y    e   s   t      b   e   a   u   ,    c   o   m   m  e     ç   à       !

(fo pos chercher...)

A+
Us.
0
cs_Ricardo69 Messages postés 3 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 17 novembre 2007
17 nov. 2007 à 11:04
Bonjour a tous,
Escusez moi pour le temps mis pour repondre a votre aide, je n'ai pas pu me connecter plus tôt.
Comme tu dit Jmfmarques je n'est plus grand chose a faire avec votre aide, tout est complet et bien expliqué.
En tout cas merci beaucoup je viens de tester ca dans mon projet visual basic et tout marche a merveille !!

Bonne journée. A+
Ricardo69
0
Rejoignez-nous