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

Sephirothgex 8 Messages postés jeudi 9 juillet 2009Date d'inscription 20 décembre 2011 Dernière intervention - 19 déc. 2011 à 16:06 - Dernière réponse : Sephirothgex 8 Messages postés jeudi 9 juillet 2009Date d'inscription 20 décembre 2011 Dernière intervention
- 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
Sephirothgex 8 Messages postés jeudi 9 juillet 2009Date d'inscription 20 décembre 2011 Dernière intervention - 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é 97 internautes ce mois-ci

Commenter la réponse de Sephirothgex
Sephirothgex 8 Messages postés jeudi 9 juillet 2009Date d'inscription 20 décembre 2011 Dernière intervention - 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
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 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
Sephirothgex 8 Messages postés jeudi 9 juillet 2009Date d'inscription 20 décembre 2011 Dernière intervention - 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
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 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
Sephirothgex 8 Messages postés jeudi 9 juillet 2009Date d'inscription 20 décembre 2011 Dernière intervention - 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
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 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
Sephirothgex 8 Messages postés jeudi 9 juillet 2009Date d'inscription 20 décembre 2011 Dernière intervention - 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
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 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.