Foros de daboweb
MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación => Webmasters - Diseño Web - Programación - Diseño gráfico => Mensaje iniciado por: xaxa en 01 de Julio de 2005, 01:48:25 pm
-
Tengo que pasar un codigo de visual basic a c++. No se muy bien lo que hace pero con pasarlo a c++ me seria suficiente. Alguien me podria ayudar?? Se que s dificil. Mucha gracias, os dejo el codigo:
Function CRC32(ByRef trama As String) As String
Dim dwCrc32 As Long
Dim i As Long
dwCrc32 = &HFFFFFFFF
Dim j As Integer, h As Integer
For j = 1 To Len(trama)
'recorremos la trama byte a byte
i = CLng(Asc(Mid(trama, j, 1))) Xor ((dwCrc32) And &HFF&)
For h = 1 To 8
If (i And 1) Then
i = ((i And &HFFFFFFFE) / 2) Xor &HEDB88320
Else
i = (i And CLng(&HFFFFFFFE)) / 2
End If
Next h
dwCrc32 = ((dwCrc32 And &HFFFFFF00) / (2 ^ 8)) Xor i
Next j
'convertimos a representación hexadecimal con 8 digitos
Dim repHex As String
repHex = Hex$(dwCrc32)
If Len(repHex) = 8 Then
CRC32 = repHex
Else
'Colocamos símbolos "0" al principio de la cadena
CRC32 = String$(8 - Len(repHex), "0") & repHex
End If
End FunctionDE
-
...vaya, un problema, lo siento pero no tengo ni idea de visual, pero bienvenida y cuando te pases a C++...ya vere que puedo hacer por ti...
-
Yo tampoco se de VB, y sin saber lo que hace el programa, va a estar complicado...
-
Aquí esty yo, yo os lo puedo traducir de VB a español, vosotros ocuparos de pasarlo a C.
Function CRC32(ByRef trama As String) As String ' esta función devuelve un valor de cadena de texto, y requiere una entrada de cadena de texto, llamada trama y también del tipo cadena de texto
Dim dwCrc32 As Long 'Declara la variable dwCrc32 como número de tipo long
Dim i As Long ' Declara la variable i como número de tipo long
dwCrc32 = &HFFFFFFFF 'Le carga a dwCrc32 el valor hexadecimal FFFFFFFF
Dim j As Integer, h As Integer ' define j e i como número enteros
For j = 1 To Len(trama) ' inicia un bucle1 que acaba cuando j,tras cargar el valor 1,e incrementando de uno en uno, adquiere el valor de la langitud de la variable trama
'recorremos la trama byte a byte
i = CLng(Asc(Mid(trama, j, 1))) Xor ((dwCrc32) And &HFF&)'carga en i la conversión a un dato long de ((Codigo ascii (tipo entero)del caracter situado en la posción j de la cadena trama)Xoreado con (la variable dwCrc32 y el valor hexadecimal FF(las veces necesarias para completar la longitud de la cadena) [Esos parentesis]
For h = 1 To 8' inicia un bucle2 que acaba cuando h,tras cargar el valor 1,e incrementando de uno en uno, adquiere el valor 8
If (i And 1) Then ' si la variable i Y(logico) 1 es verdadero,
i = ((i And &HFFFFFFFE) / 2) Xor &HEDB88320 'iCarga el valor de ((i Y(lógico) valor hexadecimal(FFFFFFFE))entre 2)oexclusivo(lógico) con el valor hexadecimal (HEDB88320) [atento a los paréntesis]
Else 'Sino,
i = (i And CLng(&HFFFFFFFE)) / 2 'carga en i el valor de (i y el valor Long correspondiente a el hexadecimal FFFFFFFE) /2
End If 'Fin del bloque if
Next h ' fin del bucle 2
dwCrc32 = ((dwCrc32 And &HFFFFFF00) / (2 ^ ) Xor i 'carga en dwCrc32 (el valor de dwCrc32 Y(lógico) el valor hexadecimal(FFFFFF00) entre dos, y luego lo Xorea con la variable i
Next j 'Fin del bucle 1
'convertimos a representación hexadecimal con 8 digitos
Dim repHex As String ' declara el valor repHex, como un valor de tipo cadena de caracteres
repHex = Hex$(dwCrc32) 'Carga en repHex la cadena Hexadecimal de la variable dwCrc32
If Len(repHex) = 8 Then 'Comprueba que la longitud de la cadena rep Hex, sea 8
CRC32 = repHex 'Si lo es, otorga a la variable CRC32 el valor de repHex
Else ' sino,
'Colocamos símbolos "0" al principio de la cadena
CRC32 = String$(8 - Len(repHex), "0") & repHex' Hace CRC32 como el string rephex, pero con los ceros necesarios delante para que tenga una longitud de 8 carácteres
End If ' fin del bloque if
End Function 'fin de la función
Esta función obtiene el CRC32 de una cadena de carácteres.
Tras el simbolo ' esta la explicación de cada linea.
Una cosa, se agradecería un foro de Visual Basic..
-
Este es un foro de programacion, por tanto no hay ningun problema en hablar de visual o el lenguaje que sea conveniente ;)
Un saludo
-
Hombre Dest, que ya el título te hace creer que solo se puede hablar de C, si se puede habalr de Visual, os avasallaré con mis dudas XDDDDD
-
... :P...jeje...pues bueno no somos especialistas en todos los lenguajes, pero podremos buscar soluciones que pueden sirven... :unhappy:...
-
Bueno vale, pero os queda pasarlo a c ¿no?