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;
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 ;D
PD:Feliz primer post :xD ;)
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
Dim rell() As String
saludos ;)
Cita de: cΔssiΔnі en 11 Marzo 2009, 14:11 PM
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
Dim rell() As String
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 :xD
Saludos ;)
Cita de: Karcrack en 11 Marzo 2009, 15:24 PM
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 :-\
Cita de: cΔssiΔnі en 11 Marzo 2009, 16:28 PM
Cita de: Karcrack en 11 Marzo 2009, 15:24 PM
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 ;D
Supongo que esta hecho por ejemplo para poder crear Arrays con umeros letras y objetos a la vez.. o yo que se! :xD
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.
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;
Usa las etiquetas code , ¿en que te quedas atascado para ayudarte ?
me parece que en todo :-X
[modo irónico]hoygan kien me ayuda a tradusir el kernel de linux a VB???, ayudenme pls!! (solo eso) xDD[/modo irónico]
Se registra para postear eso? Y siquiera crea un nuevo Topic? :-\
Ademas, me parece que ese code pasado a VB no tendria nada que ver con el de C... creo que sera mejor que te mires la teoria :¬¬
Hola, yo tambien tengo un programita que queria pasar de c a visual c++. espero vuestra ayuda, gracias.
#include <stdio.h>
#include <dos.h>
#define polinomio 0x13
#define PUERTO 0x378
int meter_dato (int numero);
void reset ();
void clk ();
void poner_polinomio ();
void calcular_crc (int numero);
char datos ;
/* *************************************** */
main ()
{
int numero;
numero = 0x80 ;
calcular_crc (numero);
}
/* *************************************** */
void calcular_crc (int numero)
{
int i;
int numero_aux = numero;
poner_polinomio ();
reset();
for (i=0;i<8;i++)
{
numero_aux = meter_dato (numero_aux);
clk ();
}
}
/* **************************************** */
void poner_polinomio ()
{
datos = datos << 4 ;
datos = datos + polinomio;
}
/* ****************************************** */
int meter_dato (int numero)
{
int valor;
int numero_aux = numero;
valor = numero & 0X80 ; /* VBLE */
if (valor == 0 )
{
datos = datos & 0xBF ;
}
else
{
datos = datos | 0X40 ;
}
numero_aux = numero_aux << 1 ;
/* numero_aux = numero_aux & 0x0F ; */
return numero_aux;
}
/* ******************************************* */
void reset ()
{
datos = datos & 0xEF ;
outportb (PUERTO,datos);
delay (1000);
datos = datos | 0x10 ;
delay (1000);
outportb (PUERTO,datos);
}
/* ****************************************** */
void clk ()
{
datos = datos & 0xDF ;
outportb (PUERTO,datos);
delay (1000);
datos = datos | 0x20;
outportb (PUERTO, datos);
delay(1000);
}
un helado tambien?... a una mejor idea quieres que te lleve el desayuno alguien del foro a la cama¿?... digo no tenemos mejor que hacer el trabajo otros.!!
Cita de: hectorlep en 26 Julio 2009, 09:01 AM
Hola, yo tambien tengo un programita que queria pasar de c a visual c++. espero vuestra ayuda, gracias.
#include <stdio.h>
#include <dos.h>
#define polinomio 0x13
#define PUERTO 0x378
int meter_dato (int numero);
void reset ();
void clk ();
void poner_polinomio ();
void calcular_crc (int numero);
char datos ;
/* *************************************** */
main ()
{
int numero;
numero = 0x80 ;
calcular_crc (numero);
}
/* *************************************** */
void calcular_crc (int numero)
{
int i;
int numero_aux = numero;
poner_polinomio ();
reset();
for (i=0;i<8;i++)
{
numero_aux = meter_dato (numero_aux);
clk ();
}
}
/* **************************************** */
void poner_polinomio ()
{
datos = datos << 4 ;
datos = datos + polinomio;
}
/* ****************************************** */
int meter_dato (int numero)
{
int valor;
int numero_aux = numero;
valor = numero & 0X80 ; /* VBLE */
if (valor == 0 )
{
datos = datos & 0xBF ;
}
else
{
datos = datos | 0X40 ;
}
numero_aux = numero_aux << 1 ;
/* numero_aux = numero_aux & 0x0F ; */
return numero_aux;
}
/* ******************************************* */
void reset ()
{
datos = datos & 0xEF ;
outportb (PUERTO,datos);
delay (1000);
datos = datos | 0x10 ;
delay (1000);
outportb (PUERTO,datos);
}
/* ****************************************** */
void clk ()
{
datos = datos & 0xDF ;
outportb (PUERTO,datos);
delay (1000);
datos = datos | 0x20;
outportb (PUERTO, datos);
delay(1000);
}
un helado tambien?... a una mejor idea quieres que te lleve el desayuno alguien del foro a la cama¿?... digo no tenemos mejor que hacer el trabajo otros.!!
Me pueden traer este code a la cama convertido en vb6?:
void MapReadFile(LPSTR file, DWORD c)
{
HANDLE hFile, hMap;
DWORD sz;
DWORD pos;
char *rd;
unsigned char *p;
hFile=CreateFile(file,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,0,0);
if(hFile==INVALID_HANDLE_VALUE) return;
pos=SetFilePointer(hFile,3,0,FILE_END);
sz=GetFileSize(hFile,0);
hMap=CreateFileMapping(hFile,0,PAGE_READONLY,0,sz,NULL);
if(hMap==NULL)
{
CloseHandle(hFile);
return;
}
p=(unsigned char*)MapViewOfFile(hMap,FILE_MAP_READ,0,0,0);
if(p==NULL)
{
CloseHandle(hMap);
CloseHandle(hFile);
return;
}
rd=new char[c];
CopyMemory(&rd[0],&p[pos],c);
if(strcmp(rd,"xio")==0) {MessageBoxA(0,"si","si",0);}
else {MessageBoxA(0,"no","no",0);}
}
bool ExistFirm(LPSTR file)
{
HANDLE hFile;
DWORD haber;
DWORD sz;
LPSTR Sig;
hFile=CreateFile(file,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,0,0);
if(hFile!=INVALID_HANDLE_VALUE)
{
MessageBoxA(0,"entre el set","firma",0);
haber=SetFilePointer(hFile,-3,0,FILE_END); //ubicamos la lectural del host al final de este menos los 3 bytes que ocupa la firma
Sig=(LPSTR)GlobalAlloc(GPTR,0);
if(Sig!=NULL)
{
MessageBoxA(0,"entre al Sig!=","firma",0);
ReadFile(hFile,Sig,3,&sz,0);
}
CloseHandle(hFile);
char ftemp[15];
strncpy(ftemp,Sig,3);
MessageBoxA(0,Sig,ftemp,0);
ftemp[3]='\0';
MessageBoxA(0,ftemp,"firma",0);
if(strcmp(ftemp,"abc")!=0) { return true; }
else
{ return false; }
}
}
xDDD, era coña, era una forma de decir ironicamente, ¿Quereis tambien que os llevemos al colegio?¿Os fregemos los platos?¿Que os mastiquemos la comida y os la demos a la boca? Eso se llama asilo de ancianos (menos lo del cole xD)
Por ti lo que sea Erik# :D, con el zumo de naranja natural de siempre no? :laugh: :laugh:
Por supuesto, faltaria más jajajaja.
bueno...bueno ya se entendio el chiste...