2013-07-21 6 views
0

Je suis vraiment un débutant sur VB donc si vous pouvez m'aider, je serais reconnaissant. Mon problème est vraiment simple. J'ai un simple fichier .txt (disons test.txt) Je voudrais chercher à l'intérieur sur une ligne spécifique (disons la ligne 22) sur deux caractères spécifiques (disons les caractères 5 et 6). Si le nombre trouvé est supérieur à 18, exécutez un fichier .bat. Si non, ne faites rien.Rechercher dans le fichier texte et exécuter

J'apprécierais de l'aide!

Répondre

0

Cela devrait vous donner quelques exemples que vous aurez besoin:

Public Sub FindCode() 

    Dim tempLines As List(Of String) 
    Dim position As Int32 


    tempLines = ReadFileLines("c:\filename.txt") 

    If tempLines Is Nothing Then 
     MessageBox.Show("file not read") 
     Return 
    End If 

    If tempLines.Count < 22 Then 
     MessageBox.Show("Line 22 does not exist") 
     Return 
    End If 

    'position of line is one less than we are lookign for since List(Of T) is zero based 
    position = 22 - 1 

    If tempLines(position).Length < 6 Then 
     MessageBox.Show("Line 22 does not have 6 characters") 
     Return 
    End If 

    If IsNumeric(tempLines(position).Substring(4, 2)) = False Then 
     'characters 5 and 6 (zero based (4) for 2 characters) 
     MessageBox.Show("characters 5-6 are not numeric") 
    End If 

    If CInt(tempLines(position).Substring(4, 2)) <= 18 Then 
     MessageBox.Show("characters 5-6 are less than or equal to 18") 
     Return 
    End If 

    System.Diagnostics.Process.Start("c:\batchfile.bat") 


End Sub 

Public Function ReadFileLines(p_fileName As String) As List(Of String) 
    If System.IO.File.Exists(p_fileName) = False Then 
     MessageBox.Show("File does not exist") 
     Return Nothing 
    End If 

    Return System.IO.File.ReadAllLines(p_fileName).ToList() 

End Function 
+0

wow très merci! donc juste pour le comprendre, si disons que ce n'était pas les caractères 5 et 6 et que c'était les caractères 15 et 16 que je mettrais juste Substring (14, 2))? – user2604223

+0

Correct. N'oubliez pas de marquer ceci comme votre réponse si cela vous a été utile. –

+0

Je reçois Ligne 2 Char 15 Expected fin de l'instruction :( Code 800A0401 – user2604223

Questions connexes