读写文件时保持文本顺序
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);
}
您好,我制作了一个程序,可以根据一些参数生成一个 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);
}