Loops 使用VB脚本将“|”替换为“,”
此代码仅更改第一行,并删除2000的其余部分 线 循环中有什么需要更改的吗?Loops 使用VB脚本将“|”替换为“,”,loops,vbscript,Loops,Vbscript,此代码仅更改第一行,并删除2000的其余部分 线 循环中有什么需要更改的吗? 请提供帮助您不能使用ReadLine和WriteLine方法替换整个文件内容。创建另一个输出文件,如下所示: Dim sFile sFile = "File Name" Dim RecCount Set objFSO = CreateObject("Scripting.FileSystemObject") RecCount = 1
请提供帮助您不能使用ReadLine和WriteLine方法替换整个文件内容。创建另一个输出文件,如下所示:
Dim sFile
sFile = "File Name"
Dim RecCount
Set objFSO = CreateObject("Scripting.FileSystemObject")
RecCount = 1
Set objFileRead = objFSO.OpenTextFile(sFile,1)
Do Until objFileRead.AtEndOfStream
'Set objFileRead = objFSO.OpenTextFile(sFile,RecCount)
'RecCount = RecCount + 1
text = objFileRead.ReadLine
set objFileWrite = objFSO.OpenTextFile(sFile,2)
objFileWrite.WriteLine(replace(text, "|", ","))
' objFileRead.close
RecCount = RecCount + 1
loop
objFileRead.close
objFileWrite.Close
Msgbox " files processed"
records processed 8
D:\pshell\SO\Journals\test2.csv
"Name"|"AtBats"|"Hits"
"Ken Myer Jr."|"43"|"13"
"Pilar Ackerman"|""|"11"
"Jonathan Haas"|"37"|"17"
D:\pshell\SO\Journals\test2Comma.csv
"Name","AtBats","Hits"
"Ken Myer Jr.","43","13"
"Pilar Ackerman","","11"
"Jonathan Haas","37","17"
输出:
或者,使用ReadAll和Write方法替换整个文件内容,如下所示:
Dim sFile
sFile = "File Name"
Dim RecCount
Set objFSO = CreateObject("Scripting.FileSystemObject")
RecCount = 1
Set objFileRead = objFSO.OpenTextFile(sFile,1)
Do Until objFileRead.AtEndOfStream
'Set objFileRead = objFSO.OpenTextFile(sFile,RecCount)
'RecCount = RecCount + 1
text = objFileRead.ReadLine
set objFileWrite = objFSO.OpenTextFile(sFile,2)
objFileWrite.WriteLine(replace(text, "|", ","))
' objFileRead.close
RecCount = RecCount + 1
loop
objFileRead.close
objFileWrite.Close
Msgbox " files processed"
records processed 8
D:\pshell\SO\Journals\test2.csv
"Name"|"AtBats"|"Hits"
"Ken Myer Jr."|"43"|"13"
"Pilar Ackerman"|""|"11"
"Jonathan Haas"|"37"|"17"
D:\pshell\SO\Journals\test2Comma.csv
"Name","AtBats","Hits"
"Ken Myer Jr.","43","13"
"Pilar Ackerman","","11"
"Jonathan Haas","37","17"
输出初始副本用˙|˙垂直线重新建立输入文件:
为什么要逐行执行此操作?如果我执行该代码,我将获得一个错误权限被拒绝,这与您在读取文件的同时尝试写入文件时所期望的一样。请确保您制作了一个实际的最小可复制样本来演示问题
Option Explicit
Dim sFile
sFile = "D:\pshell\SO\Journals\test62676742.csv"
Dim RecCount, objFSO, objFileRead, objFileWrite, text
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFileRead = objFSO.OpenTextFile(sFile,1)
text = objFileRead.ReadAll
objFileRead.Close
Set objFileWrite = objFSO.OpenTextFile(sFile,2,true)
objFileWrite.Write(replace(text, "|", ","))
objFileWrite.Close
Wscript.Echo "file processed"
copy /Y "D:\pshell\SO\Journals\test2.csv" "D:\pshell\SO\Journals\test62676742.csv"
1 file(s) copied.
cscript //NoLogo D:\bat\SO\62676742b.vbs && type "D:\pshell\SO\Journals\test6*.csv"
file processed
D:\pshell\SO\Journals\test62676742.csv
"Name","AtBats","Hits"
"Ken Myer Jr.","43","13"
"Pilar Ackerman","","11"
"Jonathan Haas","37","17"