Vbscript 如何在读取行时将光标放在前面,以使Endofstream检查工作
我有一个包含10条记录的文件。我试着用下面的文字来阅读它。现在发生的事情是,我需要从第一行循环一些公司名称,并需要使用该名称创建一个文件(这就是我在if循环中所做的) 在Vbscript 如何在读取行时将光标放在前面,以使Endofstream检查工作,vbscript,automated-tests,qtp,Vbscript,Automated Tests,Qtp,我有一个包含10条记录的文件。我试着用下面的文字来阅读它。现在发生的事情是,我需要从第一行循环一些公司名称,并需要使用该名称创建一个文件(这就是我在if循环中所做的) 在Else中,我需要对所有行进行一些数据挖掘,包括已经读取的第一行。现在,由于ReadLine读取一行,然后将光标留在该行的末尾(在下面的情况下,光标将在测试之后),因此在下面的读取中,顺序将被1打乱,并且第一行或最后一行将丢失(基于重新读取该行的位置) 这只是为了测试(请保留此项。这是文本中引用的示例) “这是文中提到的一个例子
Else
中,我需要对所有行进行一些数据挖掘,包括已经读取的第一行。现在,由于ReadLine
读取一行,然后将光标留在该行的末尾(在下面的情况下,光标将在测试之后),因此在下面的读取中,顺序将被1打乱,并且第一行或最后一行将丢失(基于重新读取该行的位置)
这只是为了测试(请保留此项。这是文本中引用的示例)
“这是文中提到的一个例子”是什么意思?您不会在任何地方引用“这只是为了测试”这一行,而且由于VBScript不支持裸字,这一行将使您的代码示例VBScript无效。还有,你在说什么“数据挖掘”?您的代码片段所做的只是拆分CSV行的字段。@Kushal bhola您能做到吗?这可能会满足OP的要求,但可以做一些解释,而不仅仅是发布一个代码块。@Lankymart-这实际上只是对OPs原始代码的重新安排。我想他们已经知道每一行的作用了,所以我似乎不需要对它们进行注释。这是我的观点,蒂姆,我们什么时候才为OP写答案?我就是这么做的。我想我们都有不同的方法。
Set tsIn = fso.OpenTextFile("F:kushal\1094c.csv", 1)
Do While Not tsIn.AtEndOfStream
If firstRead Then
l = tsIn.Skipline ' skip the header row
l = tsIn.Readline
dim tsOut : Set tsOut = fso.CreateTextFile("..\HCR Files\" & _
ucase(formatFileDate(getSafeString(l))) & ".e", true, tristatefalse)
Else
l = tsIn.Readline
l = left(l, (len(l) - 1))
l = split(l, chr(34) & "," & chr(34))
'All other stuff
End if
Loop
Dim tsOut, firstRead
Set tsIn = fso.OpenTextFile("F:kushal\1094c.csv", 1)
If Not tsIn.AtEndOfStream Then tsIn.Skipline 'skip the header row
firstRead = True
Do While Not tsIn.AtEndOfStream
l = tsIn.Readline
'save the first line
If firstRead Then
Set tsOut = fso.CreateTextFile("..\HCR Files\" & _
ucase(formatFileDate(getSafeString(l))) & _
".e", true, tristatefalse)
firstRead = False
End If
l = left(l, (len(l) - 1))
l = split(l, chr(34) & "," & chr(34))
'etc etc
Loop