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

Título: me estoy volviendo loca! como paso sto de visual basic a c?
Publicado 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
Título: Re: me estoy volviendo loca! como paso sto de visual basic a
Publicado por: jirho en 01 de Julio de 2005, 05:54:55 pm
...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...
Título: me estoy volviendo loca! como paso sto de visual basic a c?
Publicado por: BuHo en 02 de Julio de 2005, 03:58:25 am
Yo tampoco se de VB, y sin saber lo que hace el programa, va a estar complicado...
Título: Re: me estoy volviendo loca! como paso sto de visual basic a c?
Publicado por: klondike en 31 de Octubre de 2005, 09:24:54 pm
Aquí esty yo, yo os lo puedo traducir de VB a español, vosotros ocuparos de pasarlo a C.

Código: [Seleccionar]
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..
Título: Re: me estoy volviendo loca! como paso sto de visual basic a c?
Publicado por: destroyer en 31 de Octubre de 2005, 09:26:33 pm

Este es un foro de programacion, por tanto no hay ningun problema en hablar de visual o el lenguaje que sea conveniente ;)

Un saludo
Título: Re: me estoy volviendo loca! como paso sto de visual basic a c?
Publicado por: klondike en 31 de Octubre de 2005, 09:32:53 pm
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
Título: Re: me estoy volviendo loca! como paso sto de visual basic a c?
Publicado por: jirho en 01 de Noviembre de 2005, 04:40:20 pm
... :P...jeje...pues bueno no somos especialistas en todos los lenguajes, pero podremos buscar soluciones que pueden sirven... :unhappy:...
Título: Re: me estoy volviendo loca! como paso sto de visual basic a c?
Publicado por: klondike en 02 de Noviembre de 2005, 12:01:33 am
Bueno vale, pero os queda pasarlo a c ¿no?