leonchou
論壇維護群
離線
文章: 1160
|
試試 Sub SortTextFile() textFile = "D:\test.txt" '要處理的檔 tmpFile1 = "D:\tmp1.txt" '暫存檔1 tmpFile2 = "D:\tmp2.txt" '暫存檔2
'讀入原檔案,加上行號(排序用)並存入暫存檔 Open tmpFile1 For Output As #1 Open textFile For Input As #2 Do LinesRead = LinesRead + 1 Line Input #2, tmpLine Print #1, LinesRead; "x"; tmpLine Loop Until EOF(2) Close #1 Close #2
'利用DOS指令sort反向排序,存入暫存檔 Shell "sort /r " & tmpFile1 & " /o " & tmpFile2 '偵測直到檔案產生,再繼續後面的動作 While Dir(tmpFile2) = "" Wend
'將暫存檔去除行號並寫回原檔案 Open textFile For Output As #1 Open tmpFile2 For Input As #2 Do Line Input #2, tmpLine Print #1, Mid(tmpLine, InStr(tmpLine, "x") + 1) Loop Until EOF(2) Close #1 Close #2
'刪除暫存檔 Kill tmpFile1 Kill tmpFile2
End Sub
註: sort指令是Windows原本就有的DOS指令,用於排序純文字檔。 以上程式是在Windows2000+Excel2000下測試; 若在你的電腦執行有誤,請確認兩件事 -- 1. Windows 及 Excel 版本。 2. 你的電腦裡有 sort.exe 這個執行檔。
|