C# 读写文件时保持文本顺序

C# 读写文件时保持文本顺序,c#,richtextbox,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是 UdgZAWcadUbm

大家好,我制作了一个程序,在给定一些参数的情况下生成一个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);
}

正如BugFinder已经提到的,不要一下子解密整个文本,因为您显然解密了
\n
字符。逐行解密:

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

是的,完成每一行并对其进行加密,不加密换行符是的,完成每一行并对其进行加密,也不加密换行符