2010-06-06 3 views
1

Я пытаюсь перевести этот код, но я не понимаю, как использовать часть кода GET/PUT на другом языке, таком как C++ или C#.VB to 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#?

ответ

1

Get and 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

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()); 
    } 
}