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 :

[VB6] Découper une chaine sans délimiteur


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Points : 47
    Points
    47
    Par défaut [VB6] Découper une chaine sans délimiteur
    Bonjour à tous,
    je voulais savoir s'il était possible de découper une chaine de caractère tous les deux caratères sans insérer de délimiteur comme avec l'instruction Split.
    Quelqu'un peut-il m'aider?

    Cordialement.
    Stalindim.

  2. #2
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Pas testé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim str As String
    Dim b() As Byte
     
    str = "Bonjour"
     
    b = StrConv(str,vbFromUnicode)
    Ca convertit ta chaine en tableau de caractères ANSI
    "Il y a 3 personnes en ce monde sur qui tu peux compter : moi, le pape et le cavalier solitaire ! "
    Penser à svp

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Points : 47
    Points
    47
    Par défaut
    Merci sozie
    ce n'est pas exactement ce que je cherche mais si personne n'a mieux je pense que je vais essayer de m'arranger avec ça.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function decoup(unechaine as string;pas as integer) as string
    dim temp as string
    do while len unechaine>pas then
    temp=left(unechaine,pas) & " "
    unechaine=rigth(unechaine;len(unechaine)-pas)
    loop
    decoup=temp & une chaine
    end function
    Elle est pas belle la vie ?

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Points : 47
    Points
    47
    Par défaut
    désolé random mais je n'arrive pas à comprendre et encore moins à faire fonctionner ton code.

    Et utilise les balises apropriées s'il te plaîs.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    pardon pour les balises
    cette fonction découpe un texte par pas de pas qui est la valeur adressée
    Elle est pas belle la vie ?

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Points : 47
    Points
    47
    Par défaut
    Bon après avoir corrigé ton code j'arrive presque à avoir ce que je veux puisque lorsque j'entre cette chaine "abcdefghijklmnopqrstuvwxyz" je récupère "wx yz". Par contre j'ai du mal à voir d'où proviens le problème , peut-être est-ce du à la fatigue après cette dure journée de cours .

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Function decoup(unechaine As String, pas As Integer) As String
    Dim temp As String
    Do While Len(unechaine) > pas
    temp = temp & Left(unechaine, pas) & " "
    unechaine = Right(unechaine, Len(unechaine) - pas)
    Loop
    decoup = temp & unechaine
    End Function
    Avec mes excuses.
    Elle est pas belle la vie ?

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Sinon, tu peux toujours faire ça en sub ou en fonction avec la chaine en paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub MaChaineEnPetitsBouts()
    Dim LesBouts(), MaChaine, i, j
    MaChaine = "Ouistiti"
        For i = 1 To Len(MaChaine) Step 2
            j = j + 1
            ReDim Preserve LesBouts(j)
            If Len(MaChaine) > 2 Then
                LesBouts(j) = Mid(MaChaine, 1, 2)
                MaChaine = Right(MaChaine, Len(MaChaine) - 2)
            Else
                LesBouts(j) = MaChaine
            End If
        Next
        'RELECTURE
        For i = 1 To j
           MsgBox LesBouts(i)
        Next
    End Sub
    A+

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Points : 47
    Points
    47
    Par défaut
    Merci les gars vos deux solutions sont parfaites.

  11. #11
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Un exemple vaut mille mots...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Option Explicit
     
    ' un champ de texte (textbox) nommé txtChaine
    ' une zone de liste (listebox) nommée lstTab2Car
    ' deux boutons (Command) nommés cmdConvertir et cmdQuitter
    ' sur une feuille (Form) nommée comme tu voudras
     
    Private Sub cmdConvertir_Click()
        If txtChaine.Text <> "" Then Convertir txtChaine.Text
    End Sub
     
    Private Sub Convertir(psChaine As String)
        Dim liI As Integer
        liI = 1
        lstTab2Car.Clear
        Do While liI <= Len(psChaine)
            lstTab2Car.AddItem Mid(psChaine, liI, 2)
            liI = liI + 2
        Loop
    End Sub
     
    Private Sub cmdQuitter_Click()
        End
    End Sub
    pour le tableau c'est le même principe... Tu définit un tableau dynamique de chaînes de caractères que tu remplis dans la routine Convertir à la place d'un listbox...

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Trois solutions pour lui tout seul... Salut zaza, paraît qu'il fait beau chez toi...

    A+

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

Discussions similaires

  1. [VB6]ecrire une chaine de byte dans la base de registre
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 17/12/2008, 10h50
  2. Découper une chaine sans couper les mots
    Par jgoguel dans le forum Langage
    Réponses: 3
    Dernier message: 31/10/2007, 11h22
  3. Réponses: 8
    Dernier message: 24/07/2007, 13h39
  4. [VB6]ouvrir une DLL sans en conaitre le nom à la creation
    Par victorracine dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 05/02/2004, 15h16

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