读写文件时保持文本顺序

Keep text order when read and write a file

您好,我制作了一个程序,可以根据一些参数生成一个 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 中发生的事情:

错误

这里必须是这样的:

(我认为问题是 'enter' 字符)

正如 BugFinder 已经提到的那样,由于您显然解密了 \n 字符,所以不要一口气解密整个文本。逐行解密:

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