Que nos echamos otro post de discusion?
Deja le cambio nombre...
jajajajaja
Si eso del $ siempre se me pasa es algo que casi no uso por casos sencillos pero es una mala costumbre mia xS
Dulces Lunas!¡.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: cobein en 6 Diciembre 2009, 09:53 AM
Entiendo lo que planteas, pero la solucion no es correcta. Tendrias que hacer algo asi:
For a = 0 To 4
For x = a + 1 To 4
Ahi no hay no se excluyen ni repiten comparaciones.
'' /////////////////////////////////////////////////////////////
' // Autor: BlackZeroX ( Ortega Avila Miguel Angel ) //
' // //
' // Web: http://InfrAngeluX.Sytes.Net/ //
' // //
' // |-> Pueden Distribuir Este Codigo siempre y cuando //
' // no se eliminen los creditos originales de este codigo //
' // No importando que sea modificado/editado o engrandesido //
' // o achicado, si es en base a este codigo //
' /////////////////////////////////////////////////////////////
Option Explicit
Enum tAcciones
Encryptar = 0
Desencryptar
End Enum
Public Sub DecodeEncodeString(ByRef Data As String, Pass As String, Optional Accion As tAcciones = Encryptar)
Dim PosPass As Long
Dim CharData As String * 1
Dim i As Long
If Pass <> "" Then
For i = 1 To Len(Data)
CharData = Mid(Data, i, 1)
PosPass = IIf((PosPass + 1) > Len(Pass), 1, PosPass + 1)
Mid(Data, i, 1) = DecodeEncodeChar(CharData, Pass, PosPass, Accion) ' // Es para evitar usar CopyMemory
Next i
End If
End Sub
Public Function DecodeEncodeChar(StrChar As String, ByRef Psss As String, PosPass As Long, Optional Encode_Code As tAcciones = Encryptar) As String
Dim CharPass As String
Dim NewChar As Byte
Dim i As Long
Const cBytes As Byte = 255
CharPass = Mid(Psss, PosPass, 1)
' // Buscamos la coherencia
For i = 0 To cBytes
If StrChar = Chr(i) Then
' // Calculamos el Nuevo Caracter
If Encode_Code = Encryptar Then
NewChar = IIf(Asc(CharPass) + Asc(StrChar) > cBytes, _
(Asc(CharPass) + Asc(StrChar)) - cBytes, _
Asc(CharPass) + Asc(StrChar))
Else
NewChar = IIf(Asc(StrChar) - Asc(CharPass) < 0, _
cBytes + (Asc(StrChar) - Asc(CharPass)), _
Asc(StrChar) - Asc(CharPass))
End If
DecodeEncodeChar = Chr(NewChar)
Exit For
End If
Next i
End Function
Private Sub Command1_Click(Index As Integer)
Dim AuxData As String
AuxData = Text1.Text
Call DecodeEncodeString(AuxData, "Miguel Angel Ortega Avila", IIf(Index = 0, Encryptar, Desencryptar))
Text1.Text = AuxData
End Sub
Cita de: cobein en 6 Diciembre 2009, 04:37 AM
Una aclaracion aca para ░▒▓BlackZeroҖ▓▒░ en estos dos loops anidados se esta comparando una matriz con sigo misma por ende se van a producir tantas coliciones como objetos haya, en este caso 76.
For a = 0 To 75 'Error
For x = 0 To 75 'Error
If a <> x Then
If txtChr(a).Text = txtChr(x).Text Then
txtChr(a).BackColor = &H8080FF
txtChr(x).BackColor = &H8080FF
ElseIf Len(txtChr(a).Text) > 1 Then
txtChr(a).BackColor = &H8080FF
ElseIf Len(txtChr(x).Text) > 1 Then ' Posible Error
txtChr(x).BackColor = &H8080FF
End If
End If
Next x
Next a
For a = 1 To 75 ' Se empiesa desde 1
For x = 0 To 74 ' se termina en total -1
If a <> x Then
If txtChr(a).Text = txtChr(x).Text Then
txtChr(a).BackColor = &H8080FF
txtChr(x).BackColor = &H8080FF
ElseIf Len(txtChr(a).Text) > 1 Then
txtChr(a).BackColor = &H8080FF
end if
If Len(txtChr(x).Text) > 1 Then
txtChr(x).BackColor = &H8080FF
End If
End If
Next x
Next a