请帮仔细解析一下代码,功能是:删除重复文本
Private Sub Form_Load()
thepath = "c:\1.txt" '设置文本文件的路径
Open thepath For Input As #1
Open Left(thepath, Len(thepath) - 4) & "修改后.txt" For Output As #2
ReDim a(0) '重新定义a数组最大下标为0
i = 0
If Not EOF(1) Then '如果文件没有已经到尾部 则
Line Input #1, a(i) '从【文件1】读取一行,到数组元素a(i)(a(i)其实就是一个字符串变量)
Print #2, a(i) '将读取的那行写入【文件2】
i = i + 1 '数组标号加一
ReDim Preserve a(i) '将数组标号最大值扩大到i(注意,这里的i已经是加过1了的)
Do While Not EOF(1) '如果文件没有到尾部 则
Line Input #1, a(i) '从【文件1】读取一行,到数组元素a(i)
ifex = False '表示没有相同文字
For j = 0 To i - 1 '循环,从流程分析,此时i至少为1,所以这里i-1大于或等于0
If a(j) = a(i) Then ifex = True: Exit For '循环比较已经保存在数组中的文字是否与当前的文字(即a(i))相同,若相同则ifex=True(表示相同),退出循环
Next
If Not ifex Then '如果,经过比较,刚刚提取的a(i)与之前的a(0)到a(i-1)都不相同,则
Print #2, a(i) '在【文件2】中保持经过验证与先前内容不重复的那句,即保持a(i)
i = i + 1 '数组标号加1
ReDim Preserve a(i) '将数组标号最大值扩大到i(注意,这里的i已经是加过1了的)
End If
Loop '循环尾部,只有文件1读取完了才会执行loop后面的语句,否则,回到上一个do处继续循环
MsgBox "修改成功,新文件路径为:" & Left(thepath, Len(thepath) - 4) & "修改后.txt"
End If
Close #1 '关闭文件1
Close #2 '关闭文件2
End Sub
【够详细吧,能给分最好!3q】
多重随机标签