Read-only archive. Login and posting are unavailable.

PDA

View Full Version : Nhờ vả anh em lập trình cái ạ :)


goddy
15-11-2010, 09:24
Chả là em đang cần 1 tool hay 1 script trên win có thể edit nội dung trong nhiều file text nhưng ko biết làm thế nào :D. Search google có tìm đc 1 script replace.vbs edit 1 file text như sau:

Const ForReading = 1
Const ForWriting = 2

strFileName = Wscript.Arguments(0)
strOldText = Wscript.Arguments(1)
strNewText = Wscript.Arguments(2)

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName, ForReading)

strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, strOldText, strNewText)

Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.WriteLine strNewText
objFile.Close


và file .bat để run script trên có nội dung:

cscript replace.vbs "longlx.txt" "Y:" "E:"

lệnh trên sẽ đổi các ký tự "Y:" thành "E:" trong file longlx.txt

Tuy nhiên với lệnh đó e chỉ tác động lên đc 1 file txt thôi :sad:, giờ em muốn có thể tác động lên nhiều file .txt nhưng lệnh trên ko làm được (em thay longlx.txt thành *.txt mà ko đc :((). Anh em biết về những cái này giúp em với ạ, đang cần gấp ạ :sosad: . Thanks anh em........

jdkhang
15-11-2010, 09:30
Vất vả thế nhỉ.

Bạn tải Notepad++ về, dùng chức năng Replace in Directory của nó cho nhanh.

http://vozforums.com/attachment.php?attachmentid=279712&d=1289788200
:baffle:

goddy
15-11-2010, 09:34
Vất vả thế nhỉ.

Bạn tải Notepad++ về, dùng chức năng Replace in Directory của nó cho nhanh.

:baffle:

Nói thế nói làm gì. Ở đây là mình có các file list.txt được tạo ra hàng ngày trên 1 folder nhất định, có nhiều file nhé, mình muốn có thể thay đổi nội dung 1 cách tự động :D. Khi có script rồi thì sẽ cho script đó run auto 30' một lần or 1 ngày 1 lần (cái này lên schedule ko biết có đc ko :)). Chứ nếu dùng notpad++ thì notepad trên win cũng làm đc roài :D

jdkhang
15-11-2010, 09:37
Thế bạn đã thử với notepad++ chưa? Đã thử với chức năng thay thế trong thư mục chưa? Đã thử với chức năng lên lịch chưa?

Còn bạn nói, notepad mà cũng làm được cái chức năng đó như notepad++ thì tớ chịu.

:sweat:

goddy
15-11-2010, 09:40
Thế bạn đã thử với notepad++ chưa? Đã thử với chức năng thay thế trong thư mục chưa? Đã thử với chức năng lên lịch chưa?

Còn bạn nói, notepad mà cũng làm được cái chức năng đó như notepad++ thì tớ chịu.

:sweat:

Thế à, để tớ thử vậy :D. Cũng chưa bao giờ dùng notpad ++, còn notepad thì ko làm được yêu cầu thì mình mới phải đi hỏi chứ :). Thanks :*:*:*:*:*:*........

Jay
15-11-2010, 09:50
mình hông rành về cái vbscript này nên Google 1 tí. Về cơ bản thì mục tiêu của bạn không phải là mở 1 file mà phải mở folder ra và dùng vòng lặp để duyệt qua tất cả các file trong folder đó. do đó nên phải thay thế đoạn từ Set objFile = objFSO.OpenTextFile(strFileName, ForReading) trở xuống dưới bằng một vòng lặp. Nhưng trước tiên thì có thể mở folder:
Set folder = fso.GetFolder(path)
Set fc = folder.Files
For Each f1 in fc
... đoạn code replace text ...
Next

goddy
15-11-2010, 09:54
mình hông rành về cái vbscript này nên Google 1 tí. Về cơ bản thì mục tiêu của bạn không phải là mở 1 file mà phải mở folder ra và dùng vòng lặp để duyệt qua tất cả các file trong folder đó. do đó nên phải thay thế đoạn từ Set objFile = objFSO.OpenTextFile(strFileName, ForReading) trở xuống dưới bằng một vòng lặp. Nhưng trước tiên thì có thể mở folder:
Set folder = fso.GetFolder(path)
Set fc = folder.Files
For Each f1 in fc
... đoạn code replace text ...
Next


Thanks bác, đúng ý em muốn đó ạ :D. Đang ngâm cứu notepad++ nhưng em sẽ thử cái này nữa :beauty:

Jay
15-11-2010, 10:06
Thanks bác, đúng ý em muốn đó ạ :D. Đang ngâm cứu notepad++ nhưng em sẽ thử cái này nữa :beauty:

welcome to Programming 101