Read-only archive. Login and posting are unavailable.
Reply
 
Thread Tools
  #1  
Old 15-11-2010, 09:24
goddy's Avatar
Đã tốn tiền
Join Date: 07-2008
Posts: 2,918
Nhờ vả anh em lập trình cái ạ :)

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 . Search google có tìm đc 1 script replace.vbs edit 1 file text như sau:

Code:
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:

Code:
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 , 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 ạ . Thanks anh em........
__________________
[CENTER][B][COLOR=Black]Nothin' lasts forever
And we both know hearts can change[/COLOR][/B] [/CENTER]
Reply With Quote
  #2  
Old 15-11-2010, 09:30
jdkhang's Avatar
Senior Member
Join Date: 10-2007
Posts: 634
Re: Nhờ vả anh em lập trình cái ạ :)

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.


Attached Thumbnails
Click image for larger version

Name:	notepad++.png‎
Views:	64
Size:	27.6 KB
ID:	279712  
__________________
[SIZE="2"][COLOR="SlateGray"][B]E2140@2.67[/B][/COLOR][/SIZE]
Reply With Quote
  #3  
Old 15-11-2010, 09:34
goddy's Avatar
Đã tốn tiền
Join Date: 07-2008
Posts: 2,918
Re: Nhờ vả anh em lập trình cái ạ :)

Quote:
Originally Posted by jdkhang View Post
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.

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 . 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
__________________
[CENTER][B][COLOR=Black]Nothin' lasts forever
And we both know hearts can change[/COLOR][/B] [/CENTER]
Reply With Quote
  #4  
Old 15-11-2010, 09:37
jdkhang's Avatar
Senior Member
Join Date: 10-2007
Posts: 634
Re: Nhờ vả anh em lập trình cái ạ :)

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.

__________________
[SIZE="2"][COLOR="SlateGray"][B]E2140@2.67[/B][/COLOR][/SIZE]
Reply With Quote
  #5  
Old 15-11-2010, 09:40
goddy's Avatar
Đã tốn tiền
Join Date: 07-2008
Posts: 2,918
Re: Nhờ vả anh em lập trình cái ạ :)

Quote:
Originally Posted by jdkhang View Post
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.

Thế à, để tớ thử vậy . 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 ........
__________________
[CENTER][B][COLOR=Black]Nothin' lasts forever
And we both know hearts can change[/COLOR][/B] [/CENTER]
Reply With Quote
  #6  
Old 15-11-2010, 09:50
Jay's Avatar
Jay Jay is offline
Since 2001
Join Date: 07-2006
Posts: 11,602
Re: Nhờ vả anh em lập trình cái ạ :)

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:
Code:
Set folder = fso.GetFolder(path)
Set fc = folder.Files
   For Each f1 in fc
      ... đoạn code replace text ...
   Next
__________________
PlayStation Network: nestorvie (for GTA 5)
Reply With Quote
  #7  
Old 15-11-2010, 09:54
goddy's Avatar
Đã tốn tiền
Join Date: 07-2008
Posts: 2,918
Re: Nhờ vả anh em lập trình cái ạ :)

Quote:
Originally Posted by Jay View Post
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:
Code:
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 đó ạ . Đang ngâm cứu notepad++ nhưng em sẽ thử cái này nữa
__________________
[CENTER][B][COLOR=Black]Nothin' lasts forever
And we both know hearts can change[/COLOR][/B] [/CENTER]
Reply With Quote
  #8  
Old 15-11-2010, 10:06
Jay's Avatar
Jay Jay is offline
Since 2001
Join Date: 07-2006
Posts: 11,602
Re: Nhờ vả anh em lập trình cái ạ :)

Quote:
Originally Posted by goddy View Post
Thanks bác, đúng ý em muốn đó ạ . Đang ngâm cứu notepad++ nhưng em sẽ thử cái này nữa
welcome to Programming 101
__________________
PlayStation Network: nestorvie (for GTA 5)
Reply With Quote
Reply

« Previous Thread | Next Thread »

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


All times are GMT +7. The time now is 04:28.