[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 pcl_test 于 2015-8-4 15:35 编辑

VBS
  1. Dim fso,File1,File2,File3,MyArray(),arr
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. Set File1= fso.OpenTextFile(".\$DG.txt", 1 , True)
  4. Set File2= fso.OpenTextFile(".\NEW_DG.txt", 1 , True)
  5. Set File3 = fso.CreateTextFile(".\结果.txt", 2 ,False)
  6. i=0
  7. s=""
  8. Do While File1.AtEndOfStream <> True
  9. ReDim Preserve MyArray(i)
  10. MyArray(i)=File1.ReadLine
  11. i=i+1
  12. Loop
  13. File1.Close
  14. Do While File2.AtEndOfStream <> True
  15. t=File2.ReadLine
  16. For j=0 To UBound(MyArray)
  17. arr=Split(MyArray(j)," ")
  18. If t = arr(0) Then
  19. s=s&MyArray(j)&vbCrLf
  20. End If
  21. Next
  22. Loop
  23. File3.WriteLine s
  24. File2.Close
  25. File3.Close
  26. Msgbox "完成"
复制代码
1

评分人数

TOP

本帖最后由 pcl_test 于 2015-8-5 22:12 编辑

回复 6# 回家路上

你的思路跟我之前的vbs代码的是一样的,用NEW_DG.txt每行去遍历匹配$DG.txt,这样效率自然是慢的,批处理的话有个灵活好用的“变量表”机制,可充当“临时文件”来储存数据,要取某个数据时只要扩展相应的变量名即可,这样就可以避免多次的重复动作,看你新发的帖子里的代码,群友们提供的思路就是如此,通过后期学习也可了解到vbs中也可以用Scripting.Dictionary组件实现快速索引访问的机制
  1. Dim fso,File1,File2,File3,objDict,arr
  2. Set objDict = CreateObject("Scripting.Dictionary")
  3. Set fso = CreateObject("Scripting.FileSystemObject")
  4. Set File1 = fso.OpenTextFile(".\$DG.txt", 1)
  5. Set File2 = fso.OpenTextFile(".\NEW_DG.txt", 1)
  6. Set File3 = fso.CreateTextFile(".\结果.txt", 2)
  7. Do While File1.AtEndOfStream <> True
  8.     arr = Split(File1.ReadLine," ")
  9.     objDict.Add arr(0), arr(1)
  10. Loop
  11. File1.Close
  12. Do While File2.AtEndOfStream <> True
  13.     t = File2.ReadLine
  14.     If objDict.Exists(t) Then
  15.        File3.WriteLine t&" "&objDict.Item(t)
  16.     End If
  17. Loop
  18. File2.Close
  19. File3.Close
  20. Msgbox "完成"
复制代码
1

评分人数

TOP

返回列表