开发者

VBS adding lines to text file without spaces

开发者 https://www.devze.com 2023-01-29 12:40 出处:网络
trying to figure out how to modify the code below to add to a text file that happens to have an extra CRLF at the end of the file. I get confusing results depending on where I put the CHR(10). Any ide

trying to figure out how to modify the code below to add to a text file that happens to have an extra CRLF at the end of the file. I get confusing results depending on where I put the CHR(10). Any ideas how to strip the CRLF or remove the blank line? I need to end up with no extra CRLF's !!!

'This script will add lines to the RandomCSV file if it is not in a multiple of 20. 'If the file is already a mulitiple of 20, nothing should happen.

dim filesys, readfile, contents, lines, remainder, LinesToAdd, StaticLine, Appendfile, Count  
dim field1, field2, field3, field4      
set filesys = CreateObject("Scripting.FileSystemObject")  
Set readfile = filesys.OpenT开发者_运维技巧extFile("C:\RandomCSV.txt", 1, false)  
contents = readfile.ReadAll  
Lines = readfile.line  
readfile.close  
    MsgBox "The file contains this many lines " & Lines  
remainder = lines mod 20  
LinesToAdd = (20 - remainder)  
    MsgBox "Adding this many lines " & LinesToAdd  
If LinesToAdd <> 20 then  
   Set Appendfile = filesys.OpenTextFile("C:\RandomCSV.txt", 8, false)  
For Count = 1 to LinesToAdd  
    Appendfile.write Chr(34) & "Field1" & Chr(34) & Chr(44) & Chr(34) & "Field2" & Chr(34) & Chr(44) & Chr(34) & "Field3" & Chr(34) & Chr(44) & Chr(34) & "Field4" & Chr(10)  
Next  
appendfile.close  
End If  


Here's what I ended up doing to get rid of the CRLF at the end of the file. Seems to work fine:
'============================
'Get rid of blank Line at End of file Dim strEnd

Const ForReading = 1 'Const ForWriting = 2

Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("C:\RandomCSV.txt", ForReading) strFile = objFile.ReadAll objFile.Close

intLength = Len(strFile) strEnd = Right(strFile, 2)

If strEnd = vbCrLf Then
strFile = Left(strFile, intLength - 2)
Set objFile = objFSO.OpenTextFile("C:randomCSV.txt", ForWriting)
objFile.Write strFile
objFile.Close
End If
strFile = ""

0

精彩评论

暂无评论...
验证码 换一张
取 消