我会尽量使这一点尽可能直截了当。这个问题不只是涉及读写字节。我正在寻找这个VB6代码和C#代码之间的完全转换。我知道这并不总是一种可能性,但我确信那里有人有一些想法!
VB6 Code&说明:
以下代码将数据写入文件的特定部分。
[ Put [#]filenumber, [byte position], varname ].
这是*字节位置*我无法搞清楚 - 对此的帮助将非常感谢!
Dim file, stringA as string
Open file for Binary As #1
lPos = 10,000
stringA = "ThisIsMyData"
Put #1, lPos, stringA
Close #1
所以,我再一次寻找字节位置的帮助。在此示例中,字节位置由lPos表示。
为HENK编辑 -
我将阅读二进制数据。此二进制数据中有一些字符需要 替换 。出于这个原因,我将使用VB6的 instr 函数来获取这些数据(之前已知的长度)。然后,我将使用Vb6的 Put 函数在新发现的位置写入此数据。这将使用新数据覆盖旧数据。我希望这有帮助!
如果它可以帮助任何人,here是关于Put
功能的更多信息。
非常感谢, 埃文
答案 0 :(得分:4)
你能否使用BinaryWriter?
例如:
FileStream fs = new FileStream(file, FileMode.Open);
BinaryWriter w = new BinaryWriter(fs);
w.Seek(10000, SeekOrigin.Origin);
w.Write(encoding.GetBytes("ThisIsMyData"));
w.Flush();
w.Close();
fs.Close();
答案 1 :(得分:2)
您可以使用StreamReader和StreamWriter执行此操作。
我会尝试这样的事情:
这个问题并不完美,但它显示了一种使用文本(非二进制数据)的类似技术:Insert data into text file
答案 2 :(得分:0)
在StreamWriter Class的这个重载处特别查看Write method,它允许您开始写入流中的特定位置。