我需要更改后效应项目文件中的一些文本值,我认为它是一个二进制文件。您无法使用文本编辑器编辑此文件,如果您下次打开它时将遇到有关损坏的项目文件的错误消息。
所以我需要例如将“TextArea1”更改为“Some some text”,以便您看到新文本的长度与原始文本的长度不同。我应该使用BinaryReader吗?如何在Byte []数组中找到原始字符串我从这个命令中得到...
由于我是这个领域的新手,请告诉我在这件事情上该怎么做。
答案 0 :(得分:0)
你有视觉工作室吗?如果是这样,请执行:
至少你可以看到文件中的内容。这至少是一个很好的起点。它将显示字节值,以及右侧字节的任何字符值。
至于如何编辑文本,这一切都取决于数据的格式。我知道你说它是二进制的,但这不是一种格式,说二进制只是意味着你实际上并不知道格式是什么。可能是在字符串(文本)值之前,前一个字节给出了文本的长度,因此您可以插入更多文本然后增加此值。可能是长度存储在两个或更多字节中(因为一个字节只能容纳最多256个值,如果它们希望它们可能需要长于256的文本,它们可能会使用两个字节作为格式)。格式可能在一段文本后面有一个字节,其值为0以标记文本的结尾。此外,文本通常可以存储为1个字节中的一个字符,或2个字节中的1个字符,或者对于某些字符(普通话等),每个字符的字节数可以变化。
祝你好运!最好的建议是尝试找出知道文件格式是什么的人。告诉我们更多关于该文件的信息,它是什么类型的?是否有延期。答案 1 :(得分:0)
我不知道该文件结构,但您可能无法更改文本字符串的长度。作为测试,如果您只是逐字节替换字符,那么它可能不会被破坏。
答案 2 :(得分:0)
最简单的编辑方法是:
byte[] data = File.ReadAllBytes("C:\theFileName");
// modify data here
File.WriteAllBytes("C:\theFileName", data);
答案 3 :(得分:0)
假设文件结构中没有任何指针,表明字段x应该在距离文件开头的这个字节偏移处,字段y应该从这个其他字节偏移开始,等等,你要去需要这样的事情:
您没有说明文本是单字节,双字节还是多字节,如果所有字节都在字节区域(例如)但您需要搜索文本,这可能会使步骤2有些复杂化以双字节或多字节格式。