VB到c ++还是c#?

时间:2010-06-06 06:23:47

标签: c# c++ file vb6 porting

我正在尝试翻译此代码,但我不明白如何在其他语言(如c ++或c#)中使用代码的GET / PUT部分。

这是代码:

Private Sub cmd_Click()
Dim i As Integer, a As Integer
a = 10
For i = 1 To a
    Dim file As String
    Open "txt" For Binary As #1
    file = Space(LOF(1))
    Get #1, , file
    Close #1
    Randomize
    Open "txtpath" & "\" & i & "txtname" For Binary As #1
    Put #1, , file
    Put #1, , Rnd
    Close #1
Next i
End Sub

代码可能有bug,因为我用纯文本替换了变量。我理解的是代码获取文件然后保存它并添加一些随机数据使其看起来与原始文件不同。多年以来我一直不使用vb​​而且我不记得任何事情。有人可以帮我把这个片段移植到c ++或c#?

2 个答案:

答案 0 :(得分:1)

Get和Put仅用于从文件中读取和写入二进制数据。

您发布的程序基本上为10个不同的文件执行了10次。

system("copy txt txtpath\\1.txtname"); //just copy the file

//and then append some random junk
FILE *f = fopen("txtpath\\1.txtname", "a");
srand(time(NULL));
float rnd = (double)rand() / RAND_MAX;
fwrite(&rnd, sizeof(rnd), 1, f);
fclose(f);

答案 1 :(得分:1)

C#

private void cmd_Click()
{
   int i, a = 10;
   Random r = new Random();
   for(i = 1; i <= a; i++)
   {
       List<byte> file = new List<byte>();
       file.AddRange(System.IO.File.ReadAllBytes("txt"));
       file.AddRange(BitConverter.GetBytes((float)r.NextDouble()));
       System.IO.File.WriteAllBytes(String.Format(@"txtpath\{0}txtname", i), file.ToArray());
   }
}