using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace 原始碼修改
{
// 讀出關鍵字符串到目的文件
// 過濾重複字串
public class ReadSourceFile : IOperateSource
{
WriteDocument writeDocument;
public ReadSourceFile(WriteDocument writeDocument)
{
this.writeDocument = writeDocument;
}
private void ProcessALine(string aLine, string sourceFileName)
{
for (int i = 0; i < aLine.Length; ++i)
{
if (aLine[i] == KeyChar && i + 1 < aLine.Length && aLine[i + 1] == '"' && i + 2 < aLine.Length)
{
string constantString = null;
for (int j = i + 2; j < aLine.Length && aLine[j] != '"'; ++j)
constantString += aLine[j];
writeDocument.WriteAString(constantString,sourceFileName, aLine);
// 用以應對一行中出現多個待翻譯字串的情況
i += (constantString.Length + 2);
}
}
}
private string GeneratePathName(string parrentName, string fileName)
{
return parrentName + "/" + fileName;
}
override public void Go(FileInfo sourceFileInfo)
{
// 摘取想要的資訊讀進文檔
StreamReader reader = sourceFileInfo.OpenText();
string aLine = reader.ReadLine();
while (aLine != null)
{
ProcessALine(aLine, sourceFileInfo.Name);
aLine = reader.ReadLine();
}
reader.Close();
}
}
}