C#相当于VB6的'Open'& '放'功能

时间:2011-06-20 14:12:37

标签: c# vb6 put

我会尽量使这一点尽可能直​​截了当。这个问题只是涉及读写字节。我正在寻找这个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功能的更多信息。

非常感谢, 埃文

3 个答案:

答案 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执行此操作。

我会尝试这样的事情:

  • 读取前n位并使用StreamWriter将它们写入新流。
  • 使用相同的StreamWriter,编写要插入的新位。
  • 最后,从StreamReader中写下其余的位。

这个问题并不完美,但它显示了一种使用文本(非二进制数据)的类似技术:Insert data into text file

答案 2 :(得分:0)

StreamWriter Class的这个重载处特别查看Write method,它允许您开始写入流中的特定位置。