Probléme avec la fonction SPLIT [Résolu]

Messages postés
8
Date d'inscription
jeudi 9 juillet 2009
Dernière intervention
20 décembre 2011
- 19 déc. 2011 à 16:06 - Dernière réponse :
Messages postés
8
Date d'inscription
jeudi 9 juillet 2009
Dernière intervention
20 décembre 2011
- 20 déc. 2011 à 14:31
Bonjour

J'ai un problème avec la fonction SPLIT
Je split 2 variable string sur une ";" dans 2 variable
j'aimerais les stoqué l'une a la suite de l'autre dans une variable string avec des caractaires entre.

Mais rien y fais, à la dernière valeur de la premier variable le stockage ce stop comme si il y a vais un caractère de fin de chaine.

        cRepertoire = Trim(cRepertoire)
        str_Desc = cRepertoire.Split(";")
        str_valeur = cRepertoire.Split(";")
        'str_valeur(str_valeur.Length - 1).TrimEnd("", str_valeur(str_valeur.Length - 1))

        For int_j = 0 To str_Desc.Length - 1

            str_valeur(int_j) = Trim(str_valeur(int_j))

            str_text = str_text & " \par " & "{\fs21 " & str_valeur(int_j) & str_Desc(int_j)

        Next int_j

        str_text = str_text & " \fs18 \tab ttttt \par }"

        RichTextBox1.Rtf = str_text


voilà ce que vaux à la fin

str_text : "{\rtf1 \fs18 \tab Entretien \par \par {\fs21 12Vervier frein \par {\fs21 1300pneu \par {\fs21 14pneu2 \par {\fs21 5 \par {\fs21 9

9 étant la dernière valeur dans le tableau de "str_valeur"

en attendant vos commentaire merci
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
8
Date d'inscription
jeudi 9 juillet 2009
Dernière intervention
20 décembre 2011
20 déc. 2011 à 14:31
3
Merci
Oui c'est des variable pour aller chercher les variable dans mon fichier .ini

En tout cas j'ai trouvé une solution pour mon problème, je rajoute une variable on utilisée dans mes 2 tableaux
Et lors de la lecture des tableaux, je stop la lecture 1 variable avant la dernière qui me bloque.

C'est nul comme solution mais sa marche.

Merci pour toute les personne qui m'ont aidé.

Sephirothgex

Merci Sephirothgex 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de Sephirothgex
Messages postés
8
Date d'inscription
jeudi 9 juillet 2009
Dernière intervention
20 décembre 2011
19 déc. 2011 à 16:13
0
Merci
Je rajoute pour qu'on comprenne mieux
Il me manque dans "str_text"

la dérniére valeur de "str_Desc" et les "\fs18 \tab ttttt \par }" qui suit
Commenter la réponse de Sephirothgex
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
19 déc. 2011 à 16:55
0
Merci
Salut

L'inverse de Split est Join, comme dit dans l'aide de Split

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)
Commenter la réponse de cs_Jack
Messages postés
8
Date d'inscription
jeudi 9 juillet 2009
Dernière intervention
20 décembre 2011
19 déc. 2011 à 20:00
0
Merci
Merci pour t'as réponse

Mais le problème c'est que je met la valeur de str_valeur(X) suivit de la valeur str_Desc(X) plus des caractères pour configurer les ligne que je vais afficher dans ma RichTextBox1

avec join je ne saurais pas insérer tout ça je crois
Commenter la réponse de Sephirothgex
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
20 déc. 2011 à 04:21
0
Merci
J'avais lu en travers
A priori, comme str_valeur et str_Desc contiennent la même chose, pourquoi avoir voulu utiliser deux variables ?

Alors une boucle, oui.
Es-tu sûr que str_Desc.Length renvoie le dernier élément d'un tableau ?
Regarde plutôt du côté de UBound

Suis ce que ton programme fait, ligne à ligne et vérifie le contenu des tes variables.
Méthode de débogage :
- F9 sur une ligne de code; elle change de couleur
Le programme s'y arrêtera au prochain passage
Survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
- F8 (VB6) ou F10 (.Net) pour avancer d'une ligne de code
- F5 pour continuer normalement
Commenter la réponse de cs_Jack
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
20 déc. 2011 à 07:33
0
Merci
Bonjour,

Ou j'ai mal compris le but recherché, ou les explications ne sont pas très claires, car, comme jack, j'ai immédiatement pensé à Join !
Tu "éclates" par split ===>> tu as un array (et je vois mal pourquoi 2)
Tu en modifies les éléments à ton gré
Tu ajoutes ce que tu veux ajouter (" \fs18 \tab ttttt \par }", si j'ai bien compris) au dernier élément
Tu utilises Join en lui passant le nouveau séparateur de ton choix.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
8
Date d'inscription
jeudi 9 juillet 2009
Dernière intervention
20 décembre 2011
20 déc. 2011 à 09:02
0
Merci
merci pour les réponce

c'est vrais en regardant je remarque que c pas trés claire en faite

str_Desc = cRepertoire.Split(";")
str_valeur = cRepertoire2.Split(";")
str_Desc et str_valeur son des valeur différent j'ai oublier le 2 à cRepertoire2

désolé
Commenter la réponse de Sephirothgex
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
20 déc. 2011 à 09:23
0
Merci
Bonjour,

Un petit exemple de principe

Public Class Form1
  Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim i As Integer
    Dim source = " un; deux"
    Dim separateur As String = ";"
    Dim t() As String = Split(source, separateur, , 1)
    Dim av As String = "Avant "
    Dim ap As String = " Après"
    Dim v As String = ""
    For i = 0 To UBound(t)
      v = v & av & Trim(t(i)) & ap & vbCrLf
    Next i
    TextBox1.Text = v
    'Avant un Après
    'Avant deux Après
  End Sub
End Class


Cordialement, Joe.
Commenter la réponse de ehjoe
Messages postés
8
Date d'inscription
jeudi 9 juillet 2009
Dernière intervention
20 décembre 2011
20 déc. 2011 à 13:33
0
Merci
Merci grasse à ton exemple que j'ai recopier dans mon programme, j'ai remarqué que sa fonctionne très bien.

J'ai donc été voir plus haut et en faite je rapatrie des données d'un fichier .INI

        cRubrique = Famille.Text
        cKey = Type.Text
        istat = Get_Private_Profile_String(cRubrique, cKey, "0", cRepertoire, cIniFile)
        cRepertoire = Trim(cRepertoire)
        str_valeur = cRepertoire.Split(";")


Et même avant de faire la fonction split, en regardant la valeur de "cRepertoire" je remarque que le dérnier " n'existe pas
voilà ce que je vois en faisant une pause dans le programme:

cRepertoire = "12;1300;14;5;9

je me demande si il ne manquerais pas un dernier caractère à la string un ".

Désolé si je suis pas claire

En tout cas merci pour ton exemple
Commenter la réponse de Sephirothgex
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
20 déc. 2011 à 14:10
0
Merci
Bonjour, suite...

Non... regarde mon exemple, volontairemet comme tu l'as fait, je n'ai pas mis de point-virgule à la fin, et pourtant SPLIT prend bien le dernier mot (le second) "deux"...

Ça :

cKey = Type.Text
istat = Get_Private_Profile_String(cRubrique, cKey, "0", cRepertoire, ccIniFile)


Je ne sais pas ce que ça veut dire !
"cKey" est peut être une variable qui prend le texte d'un objet nommé Type, cet objet est peut être un textBox ?
Ensuite la variable "istat", je présume que c'est une variable, reçoit je ne sais quoi, je ne connais pas ce vocabulaire... peut être est-ce une variable indicée, peut être est-ce une fonction, qui sait...

Cordialement, Joe.
Commenter la réponse de ehjoe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.