Rechercher des tabulations avec StartWith(string)

[Résolu]
Signaler
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
-
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
-
Bonjour,

je souhaite lors de la lecture d'un fichier texte , rechercher sur chaque ligne si celle-ci débute par une tabulation ou plusieurs.
j'y arrive lors d'une seule tabulation mais je ne sais pas comment faire avec 2 voir 3 ou 4.
voici mon code:
If ligne.StartsWith(Microsoft.VisualBasic.ControlChars.Tab)
ElseIf ligne.StartsWith("       ")'ne marche pas
ElseIf ligne.StartsWith("           ")'ne marche pas


comment détecter la suite et le nombre exactes de tab?

merci,
 

3 réponses

Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
6
Bonjour,
Une solution :

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Ecrire un fichier avec 3 lignes comportant respectivement 1, 2 et 3 tabs
        Dim texte As String = Chr(9) & "1 tab" & vbCrLf & Chr(9) & Chr(9) & "2 tabs" & vbCrLf & Chr(9) & Chr(9) & Chr(9) & "3 tabs"
        System.IO.File.WriteAllText(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\test.txt", texte)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'Lire le fichier et compter les tabs pour chaque ligne
        Dim texte As String() = System.IO.File.ReadAllLines(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\test.txt")
        Dim resultat As String = ""
        Dim numeroLigne As Integer = 0
        For Each item As String In texte
            Dim position As Integer = 0
            Dim caractere As String = ""
            numeroLigne += 1
            Do
                caractere = item.Substring(position, 1)
                If caractere = Chr(9) Then position += 1
            Loop Until caractere <> Chr(9)
            resultat &= "Nombre de tabs dans la ligne " & numeroLigne.ToString & " : " & position.ToString & vbCrLf
        Next
        MessageBox.Show(resultat)
    End Sub
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
bon j'ai essayé en rusant en faisant un substring(4)
mais ça ne marche pas du tout...

je suis pas sûr qu'il existe une solution!?!?




 
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
Ok merci ça marche très bien !