Другие языки программирования и технологии

Помогите расшифровать

Есть у меня в реестре такой UUID, записанный в реестре в двоичном параметре вот в таком виде: E0 3D E6 84 AA 46 CF 11 81 6F 00 00 C0 20 15 6E А вот тут он представлен в каком-то другом виде: 84E63DE0-46AA-11CF-816F0000C020156E Вопрос: как его преобразовывать между этими двумя формами записи? Одна прога считывает его с реестра и представляет его во 2-м виде, мне же нужно обратное преобразование.
SM
Sergey Mishustin
10 683
Нет тут никаких вычислений. Просто первые 3 секции нужно записать задом наперед с пробелами.
Вместо 84E63DE0 нужно написать E0 3D E6 84, потом вместо 46AA - AA 46, и вместо 11CF - CF 11.
Четвертую секцию нужно записать в прямом виде, только пробелы вставить
816F0000C020156E - 81 6F 00 00 C0 20 15 6E
Можно на Visual Basic написать простую программу.
Число во 2 виде, допустим, лежит в файле UUID.reg. Число в 1 виде записываем в файл UUID1.reg.

Dim x As String, y As String, z As String, Poz1 As Integer, Poz2 As Integer, n As Integer
Open "UUID.reg" For Input As #1
x = input(LOF(1), #1)
Close
Open "UUID1.reg" For Append As #1

Poz1 = 1
Poz2 = InStr (Poz1, x, "-", vbTextCompare)
If Poz2 = 0 Then Poz2 = Len(x)+1
y = Mid (x, Poz1, Poz2 - 1)
Poz1 = Poz2+1

n = Len(y)
Do While n > 0
z = mid(y, n-1, 2)
z = z & " "
n = n - 2
Loop
Print #1, z

Poz2 = InStr (Poz1, x, "-", vbTextCompare)
If Poz2 = 0 Then Poz2 = Len(x)+1
y = Mid (x, Poz1, Poz2 - 1)
Poz1 = Poz2+1

n = Len(y)
Do While n > 0
z = mid(y, n-1, 2)
z = z & " "
n = n - 2
Loop
Print #1, z

Poz2 = InStr (Poz1, x, "-", vbTextCompare)
If Poz2 = 0 Then Poz2 = Len(x)+1
y = Mid (x, Poz1, Poz2 - 1)
Poz1 = Poz2+1

n = Len(y)
Do While n > 0
z = mid(y, n-1, 2)
z = z & " "
n = n - 2
Loop
Print #1, z

Poz2 = InStr (Poz1, x, "-", vbTextCompare)
If Poz2 = 0 Then Poz2 = Len(x)+1
y = Mid (x, Poz1, Poz2 - 1)
Poz1 = Poz2

n = 1
Do While n < Len(y)
z = mid(y, n, 2)
z = z & " "
n = n + 2
Loop
Print #1, z

Close
End

Вроде бы так. Если будут вопросы, пиши на почту.
Алексей Минеральный
Алексей Минеральный
66 487
Лучший ответ
Гы нашёл чё спрашивать. прогу в студию
для начала, это у вас не двоичное число, а шестнадцатиричное, причем в обоих случаях. Вероятно, программа выполняет какие-то вычисления, это не просто форма записи.