2010-06-25 4 views
6

tôi có một biến có tên là 'dữ liệu' tôi cần phải viết vào một tệp văn bản có tên là "listfile.txt" .Bạn có thể cho tôi biết mã vbscript để làm điều đó không .. và tôi cần mã VBScript để đọc giá trị từ textfile "listfile.txt" cũngĐọc và viết giá trị từ một tệp văn bản bằng cách sử dụng mã vbscript

+0

có thể trùng lặp của [Cách đọc từ tệp văn bản bằng VBScript?] (Http://stackoverflow.com/questions/854975/how -to-read-from-a-text-file-using-vbscript) – Helen

+0

Câu hỏi này khá được đề cập trong StackOverflow: http://stackoverflow.com/search?q=[vbscript]+read+text+file – Fionnuala

Trả lời

28

Để Viết

Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\listfile.txt",2,true) 
objFileToWrite.WriteLine(data) 
objFileToWrite.Close 
Set objFileToWrite = Nothing 

thông số OpenTextFile:

<filename>, IOMode (1=Read,2=write,8=Append), Create (true,false), Format (-2=System Default,-1=Unicode,0=ASCII) 

Để đọc toàn bộ tập tin

Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\listfile.txt",1) 
strFileText = objFileToRead.ReadAll() 
objFileToRead.Close 
Set objFileToRead = Nothing 

Để đọc từng dòng

Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\listfile.txt",1) 
Dim strLine 
do while not objFileToRead.AtEndOfStream 
    strLine = objFileToRead.ReadLine() 
    'Do something with the line 
loop 
objFileToRead.Close 
Set objFileToRead = Nothing 
0

Tập lệnh này sẽ đọc các dòng từ tệp lớn và ghi vào các tệp nhỏ mới. Sẽ sao chép tiêu đề của dòng đầu tiên (Đầu trang) vào tất cả các tệp con

Dim strLine 
lCounter = 1 
fCounter = 1 
cPosition = 1 
MaxLine = 1000 
splitAt = MaxLine 
Dim fHeader 
sFile = "inputFile.txt" 
dFile = LEFT(sFile, (LEN(sFile)-4))& "_0" & fCounter & ".txt" 
Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile(sFile,1) 
Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile(dFile,2,true) 
do while not objFileToRead.AtEndOfStream 
     strLine = objFileToRead.ReadLine() 
     objFileToWrite.WriteLine(strLine) 
     If cPosition = 1 Then 
      fHeader = strLine 
     End If 
     If cPosition = splitAt Then 
      fCounter = fCounter + 1 
      splitAt = splitAt + MaxLine 
      objFileToWrite.Close 
      Set objFileToWrite = Nothing 
      If fCounter < 10 Then 
       dFile=LEFT(dFile, (LEN(dFile)-5))& fCounter & ".txt" 
       Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile(dFile,2,true) 
       objFileToWrite.WriteLine(fHeader) 
      ElseIf fCounter <100 Or fCounter = 100 Then 
       dFile=LEFT(dFile, (LEN(dFile)-6))& fCounter & ".txt" 
       Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile(dFile,2,true) 
       objFileToWrite.WriteLine(fHeader) 
      Else 
       dFile=LEFT(dFile, (LEN(dFile)-7)) & fCounter & ".txt" 
       Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile(dFile,2,true) 
       objFileToWrite.WriteLine(fHeader) 
      End If 
     End If 
     lCounter=lCounter + 1 
     cPosition=cPosition + 1 
Loop 
objFileToWrite.Close 
Set objFileToWrite = Nothing 
objFileToRead.Close 
Set objFileToRead = Nothing 
+1

không giải quyết câu hỏi. –