VB в C ++ или C #? - PullRequest
       39

VB в C ++ или C #?

1 голос
/ 06 июня 2010

Я пытаюсь перевести этот код, но я не понимаю, как использовать часть кода GET / PUT на другом языке, таком как c ++ или c #.

Это код:

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

В коде может быть ошибка, поскольку я заменил переменные простым текстом. Я понимаю, что код получает файл, а затем сохраняет его с добавлением случайных данных, чтобы он выглядел иначе, чем оригинал. Я с годами не пользуюсь vb и ничего об этом не помню. Может ли кто-нибудь помочь мне перенести этот фрагмент на c ++ или c #?

Ответы [ 2 ]

1 голос
/ 06 июня 2010

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());
   }
}
1 голос
/ 06 июня 2010

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);
...