嗨,我是VB的新手,只是如果有人能在我目前的情况下帮助我
我有一个名为shar.txt的文本文件 它有6条线。
我是新生
我正在学习VB
请各位朋友帮帮我
朋友们一生都很重要
感谢您的支持
永远感激你
我想要一个脚本来读取这个文本文件并查找诸如“Friends”,“support”之类的字符串,并在同一位置打印包含这些字符串的行在另一个文本文件中说“sha.txt”
我试过这一点,但我中途迷失了方向。
请有人帮助我。
谢谢
Sub ReadToTextFile()
Dim strPattern1 As String
Dim strPattern2 As String
H1 As String
H2 As String
strPattern1 = "friends"
strPattern2 = "support"
Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Users\sonu\Desktop\auto\shar.txt", 1, True)
Do Until
objFileToRead.AtEndOfStream
strLine = objFileToRead.ReadLine
ElseIf
InStr(strLine, strPattern1) > 0
Then
Wscript.Echo strLine
H1 = strLine
ElseIf
InStr(strLine, strPattern2) > 0
Then
Wscript.Echo strLine
H2 = strLine
End If
End If
Loop
Wscript.Echo H2
Set objFileToRead = Nothing
End Sub
答案 0 :(得分:5)
这个网站形成了一个非常糟糕的问题。花些时间阅读rules对你有好处。
无论如何,这是来自我。
Const ForReading = 1, ForWriting = 2
Dim FSO, FileIn, FileOut, strTmp
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FileIn = FSO.OpenTextFile("shar.txt", ForReading)
Set FileOut = FSO.OpenTextFile("sha.txt", ForWriting, True)
Do Until FileIn.AtEndOfStream
strTmp = FileIn.ReadLine
If Len(strTmp) > 0 Then
If InStr(1, strTmp, "Friends", vbTextCompare) > 0 _
Or InStr(1, strTmp, "support", vbTextCompare) > 0 Then
FileOut.WriteLine strTmp
End If
End If
Loop
FileIn.Close
FileOut.Close
编辑:关于使用数组的问题......
' an example array
arWords = Array("friends", "support", "xyz")
' modified Do..Loop
Do Until FileIn.AtEndOfStream
strTmp = FileIn.ReadLine
If Len(strTmp) > 0 Then
For i = 0 To UBound(arWords)
If InStr(1, strTmp, arWords(i), vbTextCompare) > 0 Then
FileOut.WriteLine strTmp
Exit For
End If
Next
End If
Loop
干杯!