VBSCRIPT在许多行中检查相同的值但在不同的位置

时间:2015-11-13 10:01:38

标签: vbscript

我需要这个问题的帮助,我在文本文件(.txt)中有多行作为示例

  1. 0001 0002 0005 0007
  2. 0004 0005 0009 0004
  3. 0004 0009 0006 0004
  4. xxxx 0006 zzzz kkkk
  5. xxxx zzzz ..........
  6. 我必须检查每一行的第三个元素(第一行中的0005)是否与下一行的第二个元素(第二行中的0005)相同,我必须继续检查每一行(第二行中的0009与0009)在第三行)

    我如何检查价值是否相等?也许放在阵列?

    感谢您的回答

1 个答案:

答案 0 :(得分:0)

保持阵列太过分了。只保留两个变量,一个在数组中包含一行元素,另一个包含下一个元素。类似的东西:

Option Explicit

Dim fso,f,problem, i, lineone, linetwo

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(WScript.Arguments.Item(0),1,true)

lineone = Split(Trim(f.ReadLine))
i = 1
problem = false

Do While f.AtEndOfStream <> True
  linetwo = Split(Trim(f.ReadLine))
  i = i+1
  If lineone(2) <> linetwo(1) Then
     MsgBox "Problem at line " & i
     problem = True
     Exit Do
  End If
  lineone = linetwo 'for next pass through the loop
Loop
f.close
If Not problem Then MsgBox "File is Okay"

当我向脚本提供以下文件时:

0001 0002 0005 0007
0004 0005 0009 0004
0004 0009 0006 0004
0004 0006 0006 0004
0004 0006 0006 0008

脚本打印“文件正常”

但是当我把它送到这个文件时:

0001 0002 0005 0007
0004 0005 0009 0004
0004 0006 0006 0004
0004 0006 0006 0004
0004 0006 0006 0008

脚本打印“第3行的问题”

我没有进行任何错误检查来处理文件中少于两行的情况,或者某些行缺少预期的条目数。显然,你应该让它更健壮。