Comment peut diviser un texte avec retour a la ligne

Résolu/Fermé
Karim_94
Messages postés
10
Date d'inscription
mercredi 20 avril 2022
Statut
Membre
Dernière intervention
1 mai 2022
- Modifié le 24 avril 2022 à 14:23
Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
- 24 avril 2022 à 22:15
Bonjour, moi je travaille avec la méthode de "split string "elle fonctionne mais je peux faire un retour a la ligne sans supprimer le variable de split
Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        TextBox1.Text = "5156785123579"
    End Sub
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        TextBox2.Clear()

        For Each word As String In Split(TextBox1.Text, "5")
            TextBox2.Text = TextBox2.Text & word & vbCrLf & word
        Next

    End Sub

'il m'affiche
'1
'678123
'12379
'79
moi je recherche a l'afficher de sa facon
'51
'5678123
'512379
'579
le 5 reste sans supprimer et faire une retour a ligne
merci d'avance <3

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

3 réponses

NHenry
Messages postés
14927
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
162
24 avril 2022 à 14:28
Comme ça 2 solutions, soit tu ajoutes le 5 dans ta ligne
For Each word As String In Split(TextBox1.Text, "5")
            TextBox2.Text = TextBox2.Text + "5"+ word + vbCrLf +"5"+ word
        Next


Soit tu fais plus direct (mais même résultat :

TextBox2.Text = string.Join(Environment.NewLine,Split(TextBox1.Text, "5").Select(p=>"5"+p))

ça utilise LINQ (J'ai fais de tête, je ne sais plus si le Join a le séparateur en premier ou second paramètre)

De plus, je vois que tu utilises en partie une syntaxe VB6 (le &), cela n'est plus utile et peut troubler à la lecture.
1
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151
Modifié le 24 avril 2022 à 16:45
Bonjour
Pour poster du code prière de suivre ce tuto : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code . Votre code sera bien plus agréable à lire .
De plus vbCrLf c'est du VB 6 . VB Net permet l'utilisation de mots clé VB 6 par l'importation de l'espace de nom Microsoft Visual Basic . Pour faire du vrai VB Net il suffit de supprimer celui-ci .
Pour ceci allez dans les propriétés du projet et cliquez l'onglet Références à gauche . Dans la fenêtre qui s'affiche vous décochez l'espace de nom Microsoft Visual Basic dans la liste du bas .
Maintenant pourquoi le "5" ne s'affiche pas ? Vous splittez sur ce caractère donc celui-ci sert de séparateur . il suffit donc de rajouter ce caractère avant la variable word
TextBox2.Text = TextBox2.Text & "5" & word & Environment.NewLigne


Environment.NewLine
remplace vVbCrLf en vrai VB Net


1
Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
596
24 avril 2022 à 22:15
1