Bueno, despues de ver el algoritmo de Blackzerox para encryptar y desencryptar cadenas decidi acer yo un ocde tambien, aqui se lo dejo, es 100% funcional. Espero que les gute:
'*******************************************
'** Funcion: Algoritmo simple **
'** fecha: 14-2-2010 **
'** Autor: Drinky94 **
'** Email: Drinky.94:-com **
'*******************************************
Option Explicit
Dim datos As String
Enum estado
encryptar = 1
desencryptar = 2
End Enum
Public Function Encryptdecrypt(ByRef cadena As String, ByRef modo As estado)
Dim longitudcadena As String, formarcadena As String, caracter As String, i As Integer
Dim drinky As String, adaptar As String
longitudcadena = Len(cadena)
If modo = 1 Then
For i = 1 To longitudcadena
caracter = Mid(cadena, i, longitudcadena)
formarcadena = Asc(caracter) + longitudcadena
drinky = Chr(formarcadena)
datos = datos + drinky
Next i
MsgBox "Su texto encryptado es: " & datos
Else
For i = 1 To longitudcadena
caracter = Mid(datos, i, longitudcadena)
formarcadena = Asc(caracter) - longitudcadena
drinky = Chr(formarcadena)
datos = datos + drinky
Next i
adaptar = Mid(datos, longitudcadena + 1, longitudcadena)
MsgBox "Su texto desencryptado es: " & adaptar
End If
End Function
y aqui les dejo un ejemplo de su uso:
Private Sub Command1_Click()
Call Encryptdecrypt(Text1, encryptar)
End Sub
Como ven es muy sencillo de usar.
Espero que les haya gustado.
salu2!
.
mmmm
Cita de: Drinky94 en 14 Febrero 2010, 20:21 PM
Bueno, despues de ver el algoritmo de Blackzerox para encryptar y desencryptar cadenas decidi acer yo un ocde tambien, aqui se lo dejo, es 100% funcional. Espero que les gute:
'*******************************************
'** Funcion: Algoritmo simple **
'** fecha: 14-2-2010 **
'** Autor: Drinky94 **
'** Email: Drinky.94:-com **
'*******************************************
Option Explicit
Dim datos As String
Enum estado
encryptar = 1
desencryptar = 2
End Enum
Public Function Encryptdecrypt(ByRef cadena As String, ByRef modo As estado)
Dim longitudcadena As String, formarcadena As String, caracter As String, i As Integer
Dim drinky As String, adaptar As String
longitudcadena = Len(cadena)
If modo = 1 Then
For i = 1 To longitudcadena
caracter = Mid(cadena, i, longitudcadena)
formarcadena = Asc(caracter) + longitudcadena
drinky = Chr(formarcadena)
datos = datos + drinky
Next i
MsgBox "Su texto encryptado es: " & datos
Else
For i = 1 To longitudcadena
caracter = Mid(datos, i, longitudcadena)
formarcadena = Asc(caracter) - longitudcadena
drinky = Chr(formarcadena)
datos = datos + drinky
Next i
adaptar = Mid(datos, longitudcadena + 1, longitudcadena)
MsgBox "Su texto desencryptado es: " & adaptar
End If
End Function
y aqui les dejo un ejemplo de su uso:
Private Sub Command1_Click()
Call Encryptdecrypt(Text1, encryptar)
End Sub
Como ven es muy sencillo de usar.
Espero que les haya gustado.
salu2!
mmm
tu vas de mal en peor ¬¬", bueno ya casi vas mejor... pruebas, pruebas... esto tiene un error logico.
byref solo deberías usarlo en variables no en instancias de controles o sus propiedades ¬¬" espero que ese text1 Lo ayas tratado como una variable... por que en código no sirve... lo probé antes de decir esto
Nota: quita ese Byref del argumento... como es un enum no vale poner byref...
cambia de
public funcition
a
public sub
o regresa los datos por la misma función.
porque? es sencillo y muy LOGICO si regresa algo el proceso se declara como función de lo contrario como Proceso es decir Function , Sub respectivamente.
Quita ese MSGBOX del proceso un proceso es para eso procesar, ya el que implemente este, ya sabrá que hacer...
Ahora el primer Byref de los argumentos para que?, en mi caso lo puse byref porque sacaba los datos por la misma entra... argumentos.
Esto hace un Crash... imaginemos que quiero cifrar otras cosas que no sean un texto xP
Dim hola As String
hola = "miguel angelmiguel angelmiguel angelmiguel angelmiguel angelmiguel angelmiguel angel" & space(255)
Call Encryptdecrypt(hola, encryptar)
MsgBox hola
Call Encryptdecrypt(hola, encryptar)
MsgBox hola
y esto no sirve
Dim hola As String
hola = "miguel angelmiguel angelmiguel angelmiguel angelmiguel angelmiguel angelmiguel angel" & Space(255)
Call Encryptdecrypt(hola, encryptar)
MsgBox hola
Call Encryptdecrypt(hola, desencryptar)
MsgBox hola
P.D.: Le falta trabajo a esta cosa ¬¬", y
Muchas Pruebas.
Sangrientas Lunas!¡.
.
aparte el codigo esta duplicado...
Ufa !!! ... otra vez sopa ?
Cita de: seba123neo en 14 Febrero 2010, 21:34 PM
aparte el codigo esta duplicado...
Esta aprendiendo esta bien quien no duplica código cuando aprende, inclusive cuando son códigos muy argos alguna vez o duplicamos sin darnos cuenta... aquel que me niegue esto es por que es algo así como tipo Dios a la potencia 100 -1.
Cita de: Hasseds en 14 Febrero 2010, 21:46 PM
Ufa !!! ... otra vez sopa ?
igua.
P.D.: Disculpen mi antiguo post estaba por irme y solo escribí sin formatear mucho xP
Sangrientas Lunas!¡.
.
Por cierto aunque la palabra cifrado y descifrado no existen menos va a existir encryptado y desencryptado :xD
Pues a mi no me parece que este tan mal xD, y a mi me funca dpm.... :/
nunca llueve a gusto de todos, que le vamos a hacer....
salu2!
PD: Este mensage va para la mayoria de los que critican, no digo que todos. Porque no subis un codigo vuestro? si tanto criticais sera porque vosotros lo haceis TODO perfecto... esperare esos codes con mucha ilusion ;)
Cita de: Drinky94 en 15 Febrero 2010, 10:01 AM
Pues a mi no me parece que este tan mal xD, y a mi me funca dpm.... :/
nunca llueve a gusto de todos, que le vamos a hacer....
salu2!
PD: Este mensage va para la mayoria de los que critican, no digo que todos. Porque no subis un codigo vuestro? si tanto criticais sera porque vosotros lo haceis TODO perfecto... esperare esos codes con mucha ilusion ;)
char resive como parámetro un valor entre 0 y 255 y si la suma de la longitud de tu texto + el valor asc(9 del carácter X supero a 255 chr() no sabrá que pedo y pufff chamuscado el algoritmo.
por cierto aqui hay algo que te puedas leer:
ByVal exíge que se haga una copia de la variable de origen y se trabaje localmente con esta copia por lo que no se puede modificar la variable de origen, y por otro lado se consume RAM al crear la copia.
Byref es, precisamente, un puntero "camuflado". El VB pasa internamente el puntero de la variable, no una copia, por más que el lenguaje sea de nivel tan alto que no nos permita apreciarlo. Entonces, localmente estamos leyendo/escribiendo sobre la variable de origen, por lo que no hay consumo adicional de RAM, aunque se deben tener precauciones y recordar que se está trabajando y afectando a la variable de origen en todo momento.
OFF
@ Dynky, si queres saber si la calculadora esta abierta... no se debe usar:
ret = FindWindow(vbNullString, "Calculadora") ' MAL
Porque Si tu aplicacion corre en un windows que no es en español "eso" no te sirve, debes usar:
ret = FindWindow("SciCalc", vbNullString) ' WXP
ret = FindWindow("CalcFrame", vbNullString) ' W7
PD1: Tampoco uses Spy++ para saber la clase de un control, mejor aprende a usar GetClassName
PD2: espero que no te enojes por el OFF , S2 ;)
Para nada, muchas gracias, son cosas coherentes, no como MUCHOS por ahi que se quejan y luego son unos ***** mierdas asi de claro.
salu2!