IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Séparer une chaine de caractère


Sujet :

VB 6 et antérieur

  1. #1
    Débutant
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Séparer une chaine de caractère
    Voilà mon souci :
    Voici ma chaine "1,5" et je souhaiterai ranger chacun des caractères constitutif dans un tableau et en récupérer le code Ascii.
    Concrétement,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    tab(1)=Asc("1")
    tab(2)=Asc(",")
    tab(3)=Asc("5")
    Le tout à l'aide d'une boucle for. Comment recuperer chaque caractére individuellement ? La fonction Split() a besoin d'un séparateur!
    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Points : 446
    Points
    446
    Par défaut
    Bonjour fabienschmitt,

    Crée un tableau à une dimension de la taille de ta chaine, fonction Len(), et utilise la fonction Mid().

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Mid...


    +

  4. #4
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Sans boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Command1_Click()
      Dim Txt As String
      Dim Tb() As Byte
      Dim iPnt As Integer
      Txt = "1234567890ABCDEF"
      Tb() = StrConv(Txt, vbFromUnicode)
      For iPnt = 0 To Len(Txt) - 1
        Print Chr$(Tb(iPnt))
      Next
    End Sub

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par Delbeke
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Tb() = StrConv(Txt, vbFromUnicode)
    Géniale, cette utilisation de StrConv.

    Tu as trouvé ça où?
    Certainement pas dans l'aide...

  6. #6
    Débutant
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Voilà ce à quoi j'aboutie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim i As Integer
    Dim n As Integer
    Dim parts As String
    Dim tabInt(1 To 3) As String
     
    parts = "1,5"
    n = 0
    For i = 1 To Len(parts) Step 1
    tabInt(i) = Asc(Mid(parts, 1 + n, 1))
    MsgBox tabInt(i)
    n = n + 1
    Next i
    Merci
    Sinon Delbeke pourrais tu m'expliquer 2-3 truc ?
    Pourquoi tu déclare tb() en Byte ?
    Que fait exactement StrConv(Txt, vbFromUnicode) ?
    et la fonction Chr$ ?
    Et je n'arrive pas a faire en sorte que mon tableau soit de taille variable.
    Je suis obligé de fixer la taille dés le début.

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Tu peut utiliser Redim tableau() pour redimensionner un tableau.
    Attention tu perds les données du tableau.
    Avec le mot cle Preserve tu peut les conserver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim tabInt(1 To 3) As String
    'Remplissage du tableau
    'Puis tu décide de redimensionner
    ReDim Preserve tabInt (1 To 4) As String
    Attention, j'ai utilisé redim uniquement en VBS, mais je suppose que cela fonction en VB6.

  8. #8
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Citation Envoyé par fabienschmitt
    Sinon Delbeke pourrais tu m'expliquer 2-3 truc ?
    Pourquoi tu déclare tb() en Byte ?
    Que fait exactement StrConv(Txt, vbFromUnicode) ?
    et la fonction Chr$ ?
    l'aide en ligne de vb donne ceci comme définirion pour StrConv.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Renvoie une valeur de type Variant (String) convertie au format indiqué
    vas regarder l'aide en ligne pour plus d'explication

    La fonction chr$(x) convertit le chiffre x en son equivalent caractère
    exemple chr$(65) retourne un A. la valeur de x étant comprise entre 0 et 255

    je definis tb comme un tableau de byte, chaque element du tableau recevras le caractere ascii pour chacun des caractères comprenant ton string

    j'utilise de façon non courante la fonction strconv, je dois bien le reconnaitre, mais c'est tres efficace. tu n'obtiens pas un tableau de type string, mais c'est vraiement pas grave a mon avis.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Séparer une chaine de caractères sans split
    Par ndsaerith dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 24/05/2011, 16h05
  2. [Débutant] séparer une chaine de caractères
    Par mygwel dans le forum MATLAB
    Réponses: 16
    Dernier message: 27/03/2009, 18h51
  3. [MySQL] Séparer une chaine de caractères dans ma table
    Par keokaz dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/11/2008, 19h39
  4. [BO XI R2] Séparer une chaine de caractère
    Par perrine1985 dans le forum Deski
    Réponses: 2
    Dernier message: 16/04/2008, 10h01
  5. Réponses: 15
    Dernier message: 23/01/2006, 04h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo