Rechercher des tabulations avec StartWith(string)

Résolu
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 9 nov. 2010 à 14:26
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 15 nov. 2010 à 11:44
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

mdevaux62 Messages postés 111 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 17 novembre 2012 7
9 nov. 2010 à 17:02
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
3
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
9 nov. 2010 à 16:08
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!?!?




 
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
15 nov. 2010 à 11:44
Ok merci ça marche très bien !

 
0
Rejoignez-nous