對於給定的一組文本文件,我需要找到每個「\
」字符並將其替換爲「\\
」。這是一個Windows系統,我的腳本語言選項是Javascript,VBScript或Perl。改進我的文件輸入/輸出算法
這些文件很大(〜10MB一塊),並且有很多(〜15,000)。我已經想出了以下Javascript:
function EscapeSlashes(inFilePath)
{
var readOnly = 1;
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var outFile = fso.CreateTextFile(inFilePath + "escaped.js", true);
var inFile = fso.OpenTextFile(inFilePath, readOnly);
var currChar;
while(!inFile.AtEndOfStream)
{
currChar = inFile.Read(1);
//check for single backslash
if(currChar != "\\")
{
outFile.Write(currChar);
}
else
{
//write out a double backslash
outFile.Write("\\\\");
}
}
outFile.Close();
inFile.Close();
}
我擔心上述可能會有點慢。有什麼方法可以改進算法嗎?由於我用兩個替換一個字符,我不認爲這可以在原地完成。
是否有任何性能優勢逐行閱讀,而不是逐字符?
在這種情況下,Perl或VBScript比JavaScript有什麼優勢嗎?