Чтение следующей строки из файла данных VB Script - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь получить следующую строку файла тега данных, однако из-за того, что есть несколько строк с одним и тем же тегом, он проходит и берет последний, но мне нужна первая. Пример файла тега ниже.

Summary SA2100|7775555
Summary SUM100|9674555
Summary SUM100|8544555
Summary SUM100|8555554

Отсюда 8555554, а не 7775555.

Я пытался поместить первую строку в условие if и задать строку следующей строкой, возможно ли это?

if Left(strLine, 14) = "Summary SA2100" Then
        strSummary = mid(strNextLine, 16, 7)
End If 

Есть ли способ использовать StrNextLine или что-то подобное?

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018
Set FSO = CreateObject("Scripting.FileSystemObject")  'create object to open file
Set txtFile = FSO.OpenTextFile("C:\test.txt")   'full path for your file

 Do while Not txtFile.AtEndOfStream 
    strLine = txtFile.ReadLine

    If InStr(1,strLine,"Summary SA2100",1) > 0 Then
      strNextLine=txtFile.ReadLine
        nxtLine= mid(strNextLine, 16, 7)
        Exit Do 
    End If
loop
   MsgBox "The First Line : "& mid(strLine,16,7) & vbcrlf & "The Next Line : " & nxtLine
0 голосов
/ 14 сентября 2018

Может быть, вы имеете в виду что-то вроде этого:

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("c:\scripts\servers.txt", ForReading)

Do Until objTextFile.AtEndOfStream 
    strNextLine = objTextFile.Readline
    MsgBox strNextLine
Loop

VbsEdit : я не люблю рекомендовать инструменты, но vbsedit.com имеет пробную версию, которая частично работает без лицензии. Я думаю, это вам очень поможет. Я лично использую его как легкий способ быстро проверить свойства и методы COM-объекта.

Библиотека сэмплов : Более того, и это действительно важная часть, у них есть большая библиотека сэмплов, которую вы можете искать, когда вам нужен быстрый совет о том, как делать полезные вещи. См. Галерею образцов . Приведенный выше фрагмент адаптирован из этого образца .

Внутри приложения есть меню, которое позволяет быстро искать всю библиотеку, или вы можете искать его онлайн. В приложении вы ищете: Samples => Search Samples.... Вы получаете этот диалог:

VbsEdit Samples


UPDATE

Измените путь к вашему файлу данных - очевидно. В методе OpenTextFile.

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("C:\Users\YourName\Desktop\test.txt", ForReading)

Do Until objTextFile.AtEndOfStream 
    strNextLine = objTextFile.ReadLine

    If Left(strNextLine, 14) = "Summary SA2100" Then
        strSummary = mid(strNextLine, 16, 7)
        MsgBox strSummary
        Exit Do
    End If

    'MsgBox strNextLine
Loop
...