2013-07-21 2 views
0

Я действительно новичок на VB, поэтому, если вы можете мне помочь, я был бы вам признателен. Моя проблема очень проста. У меня есть простой .txt-файл (скажем, test.txt). Я хотел бы искать внутри на определенной строке (например, строка 22) на двух конкретных символах (скажем, символы 5 и 6). Если найденное число больше 18, то выполните файл .bat. Если ничего не делать.Поиск в текстовом файле и выполнение

Буду признателен за помощь!

ответ

0

Это должно предоставить вам некоторые примеры, которые вам понадобятся:

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

вау очень спасибо! поэтому просто понять это, если скажем, что это были не символы 5 и 6, и можно было сказать, что символы 15 и 16 я бы просто поставил подстроку (14, 2)) правильно? – user2604223

+0

Правильно. Не забудьте отметить это как ваш ответ, если это было полезно. –

+0

Я получаю Line 2 Char 15 Ожидаемый конец утверждения :( Код 800A0401 – user2604223

Смежные вопросы