读取和写入文件时保持文本顺序

时间:2017-02-24 10:55:41

标签: c# richtextbox

您好我已经制作了一个程序,根据一些参数生成一个txt文件,这里是output.txt的一个例子

APSF-COMPANY = hi
APSF-CERTIFY = 12345678
APSF-CERTIFY = 12345678
APSF-CERTIFY = 12345678
APSF-CERTIFY = 12345678
APSF-CERTIFY = 12345678

当我去生成文件时,我已经创建了一个方法来隐藏文件中的字符,所以真正的output.txt是

UdgZAWcadUbm4Q4|}
UdgZAWYfh]Zm4Q4EFGHIJKL
UdgZAWYfh]Zm4Q4EFGHIJKL
UdgZAWYfh]Zm4Q4EFGHIJKL
UdgZAWYfh]Zm4Q4EFGHIJKL
UdgZAWYfh]Zm4Q4EFGHIJKL

这里是隐藏的方法

public string crypt(string tmp)
{
    string result = "";
    foreach (var c in tmp)
    {
        if (c == 'z') result += 'a';
        else if (c == 'Z') result += 'A';
        else result += (char)(((int)c) +20);
    }

    return result;
}

当我去解密文件(将output.txt的内容放在richTextBox中)时,它不是一样的。 解密方法

public string decrypt(string tmp)
{
    string result = "";

    foreach (var c in tmp)
    {
        result += (char)(((int)c) - 20);
    }

    return result;

}

以下是将内容放入richTextBox

的代码
richTextBox1.Text = decrypt(sr.ReadToEnd());

这里发生在richTextBox中的事情:

错误

Wrong

以下是必须的:

从右

Right

(我认为问题在于输入'字符)

1 个答案:

答案 0 :(得分:2)

正如BugFinder已经提到的那样,由于您显然解密的\n字符,因此不会一次解密整个文本。逐行解密:

string[] allLines = System.IO.File.ReadAllLines("YourFile.txt");
foreach (var line in allLines)
{
    richTextBox1.AppendText(decrypt(line) + Environment.NewLine);
}