Autor
|
Tema: pasar de c a vb 6.0 (Leído 6,303 veces)
|
n4zGuL
Desconectado
Mensajes: 1
|
alber si alguien me puede ayudar a pasar este codigo de lenguaje C a VB 6.0:
public static string EncriptPassRunReg(string pass) { string buf =""; Random rnd = new Random(); string[] rell = { "KK", "cB", "0x", "z2", "A6" }; for (int i = pass.Length; i > 0;i--) { buf += rell[rnd.Next(5)] + Convert.ToChar(Convert.ToInt16( pass[pass.Length - i]) + i); } return buf;
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Si no me equivoco seria así: Public Function EncriptPassRunReg(ByVal pass As String) As String Dim i As Long Dim buf As String Dim rell() As Variant rell = Array("KK", "cB", "0x", "z2", "A6") For i = 1 To Len(pass) Call Randomize(Timer) buf = buf & rell(CInt(Rnd * 4)) & Chr$(Asc(Mid$(pass, i, 1)) + 1) Next i EncriptPassRunReg = buf End Function
MOD: Retoque un fallo, por cierto, en caso de que el valor Ascii de uno de los caracteres fuera 255 daria error... Saludos PD:Feliz primer post
|
|
« Última modificación: 10 Marzo 2009, 23:18 pm por Karcrack »
|
En línea
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
hola karcrack, si me premites la sugerencia, la condición del bucle sería algo así a mi parecer: For i = Len(pass) To 1 Step -1
saludos
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
hola karcrack, si me premites la sugerencia, la condición del bucle sería algo así a mi parecer: For i = Len(pass) To 1 Step -1
saludos No se permite rell() as string, ya que la funcion Array() devuelve variant... En cuanto al bucle es cierto, traduci mal el bucle de C Saludos
|
|
|
En línea
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
No se permite rell() as string, ya que la funcion Array() devuelve variant...
los arrays deben ser del mismo tipo, no todo es perfecto, jodido vb devuelve variants incluso si el contenido del array son cadenas
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
No se permite rell() as string, ya que la funcion Array() devuelve variant...
los arrays deben ser del mismo tipo, no todo es perfecto, jodido vb devuelve variants incluso si el contenido del array son cadenas Tampoco hay problema al trabajar con Variants Supongo que esta hecho por ejemplo para poder crear Arrays con umeros letras y objetos a la vez.. o yo que se!
|
|
|
En línea
|
|
|
|
cobein
|
Como dice Karcrack, al parecer es para que sea mas "versatil", te permite trabajar con numeros, letras o lo que sea. Pero no es mucho problema. Si te fijas vas a ver que hasta las funciones para trabajar con texto hacen lo mismo, por ejemplo Mid, Left y Right devuelven variant y Mid$, Left$ y Right$ devuelven strings.
|
|
|
En línea
|
|
|
|
wofdy
Desconectado
Mensajes: 1
|
Hola, por fa, ayudenme a convertir el siguiente codigo que esta hecho en C, quiero pasarlo a visual basic 6. sirve para convertir un texto a formato PDU, y viceversa.
/* Transforma un texto normal (pchOriginal) en PDU (pchTransformado) devolviendo pchTransformado*/ char *formatoMensaje(char *pchOriginal, char *pchTransformado) { char pchTablaHex[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; unsigned char chrCaracter; int intContador; int intIndice; int intTamano; int intMascara; int intDesplaza; intTamano = strlen(pchOriginal); intMascara = 1; intContador = 0; intIndice = 2; strcpy(pchTransformado,"00"); intDesplaza = 7; while(intContador < intTamano) { chrCaracter = ((*(pchOriginal + intContador + 1) & intMascara) << intDesplaza) + (*(pchOriginal + intContador) >> (7 - intDesplaza)); pchTransformado[intIndice] = pchTablaHex[(chrCaracter & 0xF0) >> 4]; intIndice++; pchTransformado[intIndice] = pchTablaHex[chrCaracter & 0x0F]; intIndice++; intContador++; intMascara <<= 1; intMascara++ ; intDesplaza--; if(intDesplaza == -1) { intMascara = 1; intDesplaza = 7; intIndice -= 2; } } pchTransformado[intIndice] = ''; chrCaracter=(char)intTamano; pchTransformado[0] = pchTablaHex[(chrCaracter & 0xF0) >> 4]; pchTransformado[1] = pchTablaHex[chrCaracter & 0x0F]; return pchTransformado; } /* Transforma un texto PDU (pchOriginal) en texto normal (pchTransformado) devolviendo pchTransformado*/ char *decodificaMensaje(char *pchOriginal, char *pchTransformado) { char pchLetras[5]; unsigned char chrCaracter; int intTamano; int intContador; int intArrastre; int intDesplaza; int intIndice; int intMascara; intMascara = 128; intIndice = intContador = intArrastre = intDesplaza = 0; strcpy(pchLetras, "0x"); strncat(pchLetras, pchOriginal + intIndice, 2); sscanf(pchLetras, "%x", &intTamano); intIndice += 2; while(intContador < intTamano) { strcpy(pchLetras, "0x"); strncat(pchLetras, pchOriginal + intIndice, 2); sscanf(pchLetras, "%x", &chrCaracter); pchTransformado[intContador] = ((chrCaracter & ~intMascara) << intDesplaza) + intArrastre; intArrastre=(chrCaracter & intMascara) >> (7 - intDesplaza); intIndice += 2; intMascara >>= 1; intMascara += 128; intDesplaza++; if(intMascara == 255) { intContador++; pchTransformado[intContador] = chrCaracter >> 1; intMascara = 128; intDesplaza = intArrastre = 0; } ++intContador; } pchTransformado[intContador] = ''; return pchTransformado;
|
|
|
En línea
|
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
me parece que en todo
|
|
|
En línea
|
|
|
|
|
|