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

再把 CreateObject("Wscript.Shell")  这一行改成下面两行
strOut = "" : n = ""
Next

TOP

本帖最后由 apang 于 2013-10-27 20:26 编辑

哦,貌似错了
strOut = "" : n = 0
Next
试试

TOP

是这个帖子吧?http://www.bathome.net/viewthread.php?tid=23404&highlight=
1.txt~300.txt列数必须相同,行数可以不相同。
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. m = 2  'm=总列数
  3. For x = 1 to 300
  4.     Set file = fso.OpenTextFile(x & ".txt")
  5.     fso.OpenTextFile("z" & x & ".txt",2,true).Write GetStr(file)
  6.     file.Close : Set file = Nothing
  7. Next
  8. Function GetStr(file)
  9.     ReDim arIn(m-1) : ReDim arOut(m-1)
  10.     Max = 0 : n = 0
  11.     Do Until file.AtEndOfStream
  12.         strLine = RegEx(file.ReadLine)
  13.         If strLine <> "" Then
  14.             ReDim PreServe ar(m-1,n)
  15.             For i = 0 to m-1
  16.                 arIn(i) = arIn(i) & "$" & Split(strLine)(i) & " "
  17.                 ar(i,n) = arIn(i)
  18.             Next
  19.             n = n + 1
  20.        End If
  21.     Loop
  22.     For i = 0 to m-1
  23.         For j = CLng(n/2) to 0 step -1
  24.             ar1 = Split(ar(i,n-1),ar(i,j))
  25.             If UBound(ar1) > 1 Then
  26.                 For k = 1 to UBound(ar1) - 1
  27.                     a = UBound(Split(ar1(k))) - 1
  28.                     b = UBound(Split(ar(i,j))) - 1
  29.                     If a >= 0 Then
  30.                         arOut(i) = arOut(i)&Mid(Split(ar1(k))(a),2)&" "
  31.                     Else
  32.                         arOut(i) = arOut(i)&Mid(Split(ar(i,j))(b),2)&" "
  33.                     End If
  34.                 Next
  35.                 Exit For
  36.             End If
  37.         Next
  38.         If UBound(Split(arOut(i))) > Max Then Max = UBound(Split(arOut(i)))
  39.     Next
  40.     For i = 0 to Max - 1
  41.         For j = 0 to m-1
  42.             If UBound(Split(arOut(j))) >= i Then
  43.                 strOut = strOut & Split(arOut(j))(i) & vbTab
  44.             Else strOut = strOut & vbTab
  45.             End If
  46.         Next
  47.         strOut = Left(strOut,Len(strOut)-1) & vbCrLf
  48.     Next
  49.     GetStr = strOut  
  50. End Function
  51. Function RegEx(strLine)
  52.    Set re = New RegExp
  53.    re.Pattern = "\s+"
  54.    re.Global = True
  55.    RegEx = Trim(re.Replace(strLine," "))
  56. End Function
复制代码
1

评分人数

TOP

返回列表