Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Psyke1 en 12 Abril 2010, 21:05 pm



Título: [ayuda] Combinar caracteres
Publicado por: Psyke1 en 12 Abril 2010, 21:05 pm
Hola amigos, necesito su ayuda :huh:, necesito conbinar todos los caracteres del abecedario de 2 a 6 digitos, algo asi:

Código:
aa
ab
ac
ad
...
az
bb
ba
...
Muchas gracias!!! ;D


Título: Re: [ayuda] Conbinar caracteres
Publicado por: Shell Root en 12 Abril 2010, 21:28 pm
...de 2 a 6 digitos,...
Con eso te referis a que empieza desde aa y termina en zzzzzz


Título: Re: [ayuda] Conbinar caracteres
Publicado por: Psyke1 en 12 Abril 2010, 21:36 pm
si, exacto ;)


Título: Re: [ayuda] Conbinar caracteres
Publicado por: Shell Root en 13 Abril 2010, 02:22 am
Podrias usar la funcion de mi amigo Og., aunque la podrias modificar así:
Código
  1. function muestra($num){
  2. $a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  3. $cont = strlen($a);
  4. $ctp = 0;
  5.  
  6. while($num != 0){$tmp[$ctp] = $num%$cont; $num -= $tmp[$ctp++]; $num /= $cont;}
  7. while($ctp != 0){echo $a[$tmp[--$ctp]];}
  8. }
  9.  
  10. for($i=1;$i<300;$i++){
  11. muestra($i);
  12. echo "<br>";
  13. }

Resultado:
Código:
B
C
D
E
[..Snip..]
LM
LN


Título: Re: [ayuda] Conbinar caracteres
Publicado por: Lupin en 13 Abril 2010, 03:47 am
...mmm no entendi mucho el codigo anterior...¿php?
otra opcion podria ser anidar for de hasta seis niveles...me imagino k esto
consumira harta memoria es algo de 500 millones de combinaciones ufff :-X :-X
 



Título: Re: [ayuda] Conbinar caracteres
Publicado por: Shell Root en 13 Abril 2010, 04:03 am
En Visual Basic 6.0 sería algo así: (Desde hace mucho raton que no programó en VB, así que obviamente debe tener algun error)

Código
  1. Public Function Muestra(strNumero As String) As String
  2.  Dim strAbecedario As String
  3.  Dim intContador, intctp, intNum As integer
  4.  Dim intTemp(), inta() As Integer
  5.  
  6.  
  7.  strAbecedario = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  8.  intContador = Len(strAbecedario)
  9.  intctp = 0
  10.  
  11.  while intNum <> 0
  12.    intTemp(intctp) = intNum MOD intCont
  13.    intNum -= intTemp(intctp + 1)
  14.    intNum /= intCont
  15.  End While
  16.  
  17.  While intctp <> 0
  18.    inta(intTemp(intctp - intctp))
  19.  End While
  20. End Function
  21.  
  22. For inti As integer = 0 to 300
  23.  Muestra(inti)
  24. Next


Título: Re: [ayuda] Conbinar caracteres
Publicado por: BlackZeroX en 13 Abril 2010, 06:46 am
Código
  1. '   //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //
  2. '   //  Se nesesita solo un ListBoX  =  List1//  //  //  //
  3. '   //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //
  4. Private Sub Combinaciones(Palabra As String, Optional strFixed As String)
  5.    Dim Recorrer As Integer
  6.    If Len(Palabra) <> 1 Then
  7.        For Recorrer = 1 To Len(Palabra)
  8.            Combinaciones Left$(Palabra, Recorrer - 1) & Mid$(Palabra, Recorrer + 1), strFixed & Mid$(Palabra, Recorrer, 1)
  9.        Next Recorrer
  10.    Else
  11.        List1.AddItem strFixed & Palabra
  12.    End If
  13. End Sub
  14.  
Código
  1. Private Sub Form_Load()
  2.    List1.visible = false
  3.    Call Combinaciones("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  4.    List1.visible = true
  5. End Sub
  6.  

Sangriento Infierno Lunar!¡.


Título: Re: [ayuda] Conbinar caracteres
Publicado por: Psyke1 en 13 Abril 2010, 17:16 pm
Gracias BlackZeroX▓▓▒▒░░  ;D, pero creo q no es lo que necesito:

En vez de:
Código
  1. Call Combinaciones("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  2.  
puse:
Código
  1. Call Combinaciones("ABC")
  2.  
Y obtuve como resultado en el ListBox esto:
Código:
ABC
ACB
BAC
BCA
CAB
CBA
Faltan BBA o BCC por ejemplo, ademas, necesito que sea de 2 digitos y con todas las combinaciones... :huh:

Salu2


Título: Re: [ayuda] Conbinar caracteres
Publicado por: Karcrack en 13 Abril 2010, 18:36 pm
Antes que nada: ANTES DE 'B' SIEMPRE VA 'M', NO 'N'

Después, tu sabes lo que quieres hacer, así que por que no diseñas tu el algoritmo? Si no dominas todavía la programación supongo que si que podrás hacerlo en tu idioma (castellano), después de tener los pasos necesarios podrás imaginar como se hace programando.

Vas a ver mi comentario como uno que no ayuda, pero date cuenta que si te lo hacen no aprenderás.


Título: Re: [ayuda] Conbinar caracteres
Publicado por: Lupin en 13 Abril 2010, 19:36 pm
Mi codigo no es muy eficiente que digamos je je je pero la intencion es la que cuenta
pero creo que puede dar una idea....solo seria para 2 y 3 digitos..para mas digitos
habria que anidar mas for..y no me atrevo pork ya colgue mi maquina  y perdi mi trabajo que no he guardado... :(

Citar
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub Form_Load()

Dim abecedario(0 To 26) As String
Dim FileNum As Integer
For x = 1 To 26
abecedario(x) = Chr(96 + x)
Next x

FileNum = FreeFile
Open "C:\abecedario.txt" For Output As FileNum
        For x = 1 To 26 ' con 2 digito
                    For y = 1 To 26
                        letra = letra + Trim(abecedario(y)) + Trim(abecedario(x)) + " "
                    Next y
                    letra = letra + vbCrLf
        Next x
       
       
         
         For x = 1 To 26 ' con 3 digito
                    For y = 1 To 26
                        For w = 1 To 26
                        letra = letra + Trim(abecedario(w)) + Trim(abecedario(y)) + Trim(abecedario(x)) + " "
                        Next w
                    Next y
                    letra = letra + vbCrLf
        Next x
       
        Print #FileNum, letra
        ShellExecute Me.hwnd, "open", "c:\abecedario.txt", "", "", 4
Close FileNum
End Sub


Título: Re: [ayuda] Conbinar caracteres
Publicado por: Psyke1 en 13 Abril 2010, 20:42 pm
Vas a ver mi comentario como uno que no ayuda, pero date cuenta que si te lo hacen no aprenderás.
No Karcrak, entiendo lo q m dices a la perfeccion, me esforzare y lo intentare sacar por mi mismo. :)
Me podre a ello ahora que ya se por donde tirar...

Gracias a to2!



Título: Re: [ayuda] Combinar caracteres
Publicado por: Psyke1 en 14 Abril 2010, 15:13 pm
Estoy trabakando en ello, en unos dias subo el code ;-)