elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17
111  Programación / Programación Visual Basic / [SRC] Computer_Talk [by *PsYkE1*] en: 15 Junio 2010, 12:57 pm
Hacer que tu ordenador te hable
Bueno investigando por el msdn sobre objetos y demas encontre el ojeto "Sapi.spVoice", el cual nos permite ponerle voz a nuestro ordenador...  :laugh:
Algo asi como el loquendo, pero en ingles...   :¬¬
Hice este sencillo procedimiento para que veais un ejemplo:

Código
  1. ' ////////////////////////////////////////////////////////////////
  2. ' // *Autor: *PsYkE1* (miguelin.majo@gmail.com)                 //
  3. ' // *Podeis agrandar o reducir el codigo, siempre y cuando se  //
  4. ' // respete la autoria y se me comuniquen esos cambios.        //
  5. ' // *Agradecimientos a BlackZeroX                              //
  6. ' // *Visita http://foro.rthacker.net                           //
  7. ' ////////////////////////////////////////////////////////////////
  8. Option Explicit
  9. Public Sub Computer_Talk(ByVal sText As String, Optional ByVal lVelocity As Long = 0)
  10.    If lVelocity < -10 Or lVelocity > 10 Then Exit Sub
  11.    Dim oTalkComputer As Object
  12.    Set oTalkComputer = CreateObject("Sapi.spVoice")
  13.    If oTalkComputer Is Nothing Then Exit Sub
  14.    With oTalkComputer
  15.        .Rate = lVelocity
  16.        .Speak sText
  17.    End With
  18.    Set oTalkComputer = Nothing
  19. End Sub

Lo divertido es que podemos regular laa velocidad a nuestro gusto... :D
Asi unos ejemplos de llamadas:
Código
  1.    Call Computer_Talk("hello psyke1") ' Velocidad predeterminada 0

Código
  1.    Call Computer_Talk("hello psyke1", 5) ' Más rapido(valor maximo 10)

Código
  1.    Call Computer_Talk("hello psyke1", -7) ' Más lento (valor minimo -10)

Espero que os haya gustado... ;)

Salu2! :P
112  Programación / Programación Visual Basic / Palabras aleatorias SIN repeticion [ayuda] en: 15 Junio 2010, 02:12 am
Hola!! ;D a ver si me podeiss ayudar, la duda es:
Tengo esto para generar palabras aleatorias:
Pero quiero que esas palabras no se puedan repetir... y ya esta, asi de simple... :laugh:
(No os asusteis que esta en sucio  ;))
Código
  1. Private Sub Aleatory_Comb(ByRef CharList() As String, ByVal iDigits As Integer, ByVal iNumber As Long)
  2.    Dim sWord As String
  3.    Dim x     As Long
  4.    Dim y     As Long
  5.    For y = 1 To iNumber
  6.        For x = 1 To iDigits
  7.            Randomize
  8.            sWord = sWord + CharList((Rnd * (UBound(CharList()) - 1) + 1))
  9.        Next
  10.        MsgBox sWord: sWord = ""
  11.    Next
  12. End Sub
  13.  
  14. Private Sub Form_Load()
  15.    Dim Matriz() As String
  16.    Matriz = Split("a,b,c,d,e,f,g,h,i,j,k,l,,m,ñ,o,p,q,r,s,t,u,v,w,x,y,z", ",")
  17.    Call Aleatory_Comb(Matriz, 5, 7)
  18. End Sub

Gracias!!
113  Programación / Programación Visual Basic / Problema con SendMessage [AYUDA] en: 10 Junio 2010, 11:47 am
Hola, a ver si me podeis ayudar, porque sinceramente no se lo que puede pasar... :-(
Tengo esto:
Código
  1. Option Explicit
  2.  
  3. Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Any, ByVal lParam As Long) As Long
  4.  
  5. Private Sub Form_Load()
  6.    Timer1.Interval = 1500: Text1 = "HOla amigosssss"
  7. End Sub
  8.  
  9. Private Sub Timer1_Timer()
  10.    Call SendMessage(Text1.hwnd, &H102, vbKeyLeft, 0&)
  11. End Sub
Entonces se supone que cada 1500 ms la posicion del texto deberia moverse un sitio a la izquierda, ¿no? Pero en el text box me va añadiendo el caracter %...  :o
Y si pongo vbKeySpace funciona bien, me va añadiendo espacios, pero porque falla con vbKeyLeft??? :huh:

Gracias! :-*
114  Programación / Programación Visual Basic / [SRC][Funcion] Clean_Html_Code [by *PsYkE1*] en: 6 Junio 2010, 20:33 pm
Hola a todos, aqui mi ultima funcion: Clean_Html_Code
Me llamareis pesao ya con tanta cadena, pero bueno... :laugh:
Esta funcion lo que hace es limpiar el Html de <strong>, <b>(entre otros)...
De esta forma es mas facil trabajar con la cadena, utilizo este metodo mientras aprendo ExprReg... :silbar:
Código
  1. ' ////////////////////////////////////////////////////////////////
  2. ' // *Autor: *PsYkE1* (miguelin.majo@gmail.com)                 //
  3. ' // *Podeis agrandar o reducir el codigo, siempre y cuando se  //
  4. ' // respete la autoria y se me comuniquen esos cambios.        //
  5. ' // *Visita http://foro.rthacker.net                           //
  6. ' ////////////////////////////////////////////////////////////////
  7.  
  8. Option Explicit
  9.  
  10. Private Declare Function IsCharAlphaNumeric Lib "user32" Alias "IsCharAlphaNumericA" (ByVal cChar As Byte) As Long
  11.  
  12. Public Function Clean_Html_Code(ByVal sHtmlCode As String) As String
  13.    Const ValidSymbolChars             As String = ",.?¿!¡=+-*Ç""_:%$·/|\ºª@ "
  14.    Const StartInvalidString           As String = "<{[(&"
  15.    Const StopInvalidString            As String = ">}];"
  16.    Dim sActualChar                    As String * 1
  17.    Dim bIgnoreString                  As Boolean
  18.    Dim lTotalChar                     As Long
  19.    Dim x                              As Long
  20.    Dim y                              As Long
  21.  
  22.    lTotalChar = Len(sHtmlCode)
  23.    If lTotalChar > 0 Then
  24.        For x = 1 To lTotalChar
  25.            sActualChar = Mid$(sHtmlCode, x, 1)
  26.            If InStr(StartInvalidString, sActualChar) <> 0 Then bIgnoreString = True
  27.            If bIgnoreString = False Then
  28.                If IsCharAlphaNumeric(Asc(sActualChar)) Or InStr(ValidSymbolChars, sActualChar) <> 0 Then
  29.                    Clean_Html_Code = Clean_Html_Code & sActualChar
  30.                End If
  31.            End If
  32.            If InStr(StopInvalidString, sActualChar) <> 0 Then bIgnoreString = False
  33.        Next
  34.        Do Until InStr(1, Clean_Html_Code, "  ") = 0
  35.            Clean_Html_Code = Replace$(Clean_Html_Code, "  ", " ")
  36.            DoEvents
  37.        Loop
  38.    End If
  39. End Function
Un ejemplo, tengo esto:
Citar
         <table border="0" width="100%" align="center" cellspacing="1" cellpadding="3" class="bordercolor">
            <tr class="titlebg">
               <td>Crear nuevo tema</td>
Hago la llamada asi(suponiendo que sData es el String donde tengo almacenado el codigo Html):
Código
  1. sData = Clean_Html_Code(sData)
La funcion me devuelve esto:
Citar
Crear nuevo tema

Si veis cualquier cosa mal o que se pueda mejorar, decirmela! ;)

Espero que os haya gustado! :P

Salu2! :)
115  Programación / Programación Visual Basic / [SRC] Check_Similar_Words [by Mr. Frog ©] en: 2 Junio 2010, 20:50 pm
Hola a todos, os presento mi utlima funcion : Check_Similar_Words

  • ¿Que hace?
    Busca palabras similares en una cadena de texto, obtendrias un resultado similar al tipico de Google : "Quizas quiso decir... "
  • ¿Como funciona?
    Lo que hace es alamcenar en un array todas las palabras que encuentre en la cadena a analizar, una vez aqui, descompongo la palabra que se busca en las partes correspondientes a el número de coincidencias que queramos buscar, os voy a poner un ejemplo:
    Supongamos que se desea buscar la palabra "mañana", y indicamos a la funcion que busque palabras similares con 3 coincidencias, entonces se partiria la palabra a buscar de esta manera:
Citar
mañ
aña
ñan
ana
La formula para sacar el numero de fragmentos es esta:

Código:
(x - n) + 1
Donde x es la cantidad de digitos de la palabra y n los digitos en los que se quiere separar esa palabra... :D

Comprobaria si las palabras de la cadena contienen algunos de estos trozos y las guarda en mi Collection.
Lo divertido es que segun el número de coincidencias que pongamos, la busqueda sera mas o menos estricta. :laugh:

  • Bueno aqui os dejo el codigo:

Código
  1. '==================================================================================================
  2. ' º Function  : Check_Similar_Words
  3. ' º Version   : 1.2
  4. ' º Author    : Mr.Frog ©
  5. ' º Country   : Spain
  6. ' º Mail      : vbpsyke1@mixmail.com
  7. ' º Twitter   : http://twitter.com/#!/PsYkE1
  8. ' º Recommended Websites :
  9. '       http://visual-coders.com.ar
  10. '       http://InfrAngeluX.Sytes.Net
  11. '==================================================================================================
  12.  
  13. Option Explicit
  14. Option Base 0
  15.  
  16. Private Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
  17.  
  18. Public Function Check_Similar_Words(ByVal sStringToAnalyze As String, ByVal sWord As String, ByVal bvComparationLevel As Byte) As Collection
  19. Const sNullChars                                                            As String = ".,"
  20. Dim cTemp                                                                   As New Collection
  21. Dim sCompareWord()                                                          As String
  22. Dim sTextWord()                                                             As String
  23. Dim sActualWord                                                             As String
  24. Dim lTotalCompWords                                                         As Long
  25. Dim lTotalWords                                                             As Long
  26. Dim lLenWord                                                                As Long
  27. Dim Q                                                                       As Long
  28. Dim G                                                                       As Long
  29.  
  30.    If CBool(bvComparationLevel) Then
  31.        lLenWord = Len(sWord)
  32.        If (lLenWord > 2) And (Len(sStringToAnalyze) > lLenWord) Then
  33.            If (bvComparationLevel < lLenWord) Then
  34.                If Not (InStrB(sWord, vbNewLine)) Then
  35.                    G = 1
  36.  
  37.                    lTotalCompWords = (lLenWord - bvComparationLevel) + 1
  38.                    ReDim sCompareWord(lTotalCompWords) As String
  39.  
  40.                    Do Until Q = lTotalCompWords
  41.                        sCompareWord$(Q) = Mid$(sWord, G, bvComparationLevel)
  42.                        G = G + 1
  43.                        Q = Q + 1
  44.                    Loop
  45.  
  46.                    sStringToAnalyze = Replace$(sStringToAnalyze, vbNewLine, Space$(1))
  47.                    sTextWord() = Split(sStringToAnalyze, Space$(1))
  48.  
  49.                    lTotalWords = UBound(sTextWord)
  50.                    lTotalCompWords = lTotalCompWords - 1
  51.  
  52.                    For Q = 0 To lTotalWords
  53.                        sActualWord = sTextWord(Q)
  54.                        If Len(sActualWord) >= bvComparationLevel Then
  55.                            For G = 0 To lTotalCompWords
  56.                               If CBool(lstrcmpi(sWord, sActualWord)) Then
  57.                                    If InStrB(1, sActualWord, sCompareWord(G), vbTextCompare) Then
  58.                                        If InStrB(sNullChars$, Right$(sActualWord, 1)) Then
  59.                                            sActualWord = Left$(sActualWord, Len(sActualWord) - 1)
  60.                                        End If
  61.                                        On Error Resume Next
  62.                                        cTemp.Add sActualWord, sActualWord
  63.                                    End If
  64.                                End If
  65.                            Next G
  66.                        End If
  67.                    Next Q
  68.  
  69.                    Set Check_Similar_Words = cTemp
  70.                End If
  71.            End If
  72.        End If
  73.    End If
  74. End Function

  • Un ejemplo práctico:

    Tengo en un TextBox(llamado Text1) esto:
    Citar
    La inspiración de Cervantes para componer esta obra vino, al parecer, del llamado Entremés de los romances, que era de fecha anterior (aunque esto es discutido). Su argumento ridiculiza a un labrador que enloquece creyéndose héroe de romances. El labrador abandonó a su mujer, y se echó a los caminos, como hizo Don Quijote. Este entremés posee una doble lectura: también es una crítica a Lope de Vega; quien, después de haber compuesto numerosos romances autobiográficos en los que contaba sus amores, abandonó a su mujer y marchó a la Armada Invencible. Es conocido el interés de Cervantes por el Romancero y su resentimiento por haber sido echado de los teatros por el mayor éxito de Lope de Vega, así como su carácter de gran entremesista. Un argumento a favor de esta hipótesis sería el hecho de que, a pesar de que el narrador nos dice que Don Quijote ha enloquecido a causa de la lectura de libros de caballerías, durante su primera salida recita romances constantemente, sobre todo en los momentos de mayor desvarío. Por todo ello, podría ser una hipótesis verosímil. A este influjo se agregó el de Tirante el Blanco de Joanot Martorell, el del Morgante de Luigi Pulci y el del Orlando Furioso de Ludovico Ariosto.

    Para ver un ejemplo:
Código
  1. Private Sub Form_Load()
  2.    Dim vItem         As Variant
  3.  
  4.    Debug.Print "--------------->"; Time$
  5.    For Each vItem In Check_Similar_Words(Text1.Text, "argumento", 4)
  6.        Debug.Print vItem
  7.    Next vItem
  8. End Sub

Y obtengo esto:
Citar
Entremés
numerosos
resentimiento
entremesista
constantemente
momentos

En cambio si en vez de 3 pongo 4 en la llamada la busqueda de palabras similares se vuelve más extricta y obtendria esto:
Citar
resentimiento
constantemente
momentos

Espero que os haya gustado! :-*

Salu2! :P
116  Programación / Programación Visual Basic / Reemplazar simbolos en Cadena [ayuda] en: 1 Junio 2010, 17:34 pm
Hola, necesito saber cual es la forma óptima de quitar los caracteres que no sean ni numeros ni letras (,$%·"!%&/^¨*: ...) en una cadena...  :)
¿Quizas con Expresiones Regulares?  :huh:
Actualmente meto todos los imbolos a mano en un array y utilizo Replace, no creo que sea la mejor forma... :-\

Gracias! ;D
117  Programación / Programación General / Expresiones Regulares en: 1 Junio 2010, 01:03 am
Hola, os cuento:
Me gustaria saber un poco mas de las expresiones regulares, he mirado ejemplos por ahi pero no me acabo de aclarar que digamos...  :-\
Estoy abierto a recomendaciones y me gustaria que me pusierais un ejemplo de como se saca X caracter de una cadena utilizando E.R.  :)
Son tan complicadas como parecen¿?  :(

Gracias!  ;)
118  Programación / Programación Visual Basic / [SRC] + [Función] Text_Between_Words [by *PsYkE1*] en: 31 Mayo 2010, 21:58 pm
ATENCION: SRC CORREGIDO

Hola, aqui os dejo esta funcin que acabo de hacer, no es gran cosa, pero bueno...  :P

Código
  1. ' ////////////////////////////////////////////////////////////////
  2. ' // *Autor: *PsYkE1* (miguelin.majo@gmail.com)                 //
  3. ' // *Podeis agrandar o reducir el codigo, siempre y cuando se  //
  4. ' // respete la autoria y se me comuniquen esos cambios.        //
  5. ' // *Agradecimientos a BlackZeroX & Cobein                     //
  6. ' // *Visita http://foro.rthacker.net                           //
  7. ' ////////////////////////////////////////////////////////////////
  8. Option Explicit
  9. Public Function Text_Between_Words(ByVal sTextToAnalyze As String, ByVal sStartWord As String, ByVal sEndWord As String) As String
  10.    Dim iPosition1             As Integer
  11.    Dim iPosition2             As Integer
  12.    Dim iStart                 As Integer
  13.  
  14.    iPosition1 = InStr(sTextToAnalyze, sStartWord)
  15.    If iPosition1 <> 0 Then
  16.        iStart = iPosition1 + Len(sStartWord)
  17.        iPosition2 = InStr(iStart, sTextToAnalyze, sEndWord)
  18.    Else
  19.        Exit Function
  20.    End If
  21.    If iPosition2 <> 0 Then
  22.        Text_Between_Words = Mid$(sTextToAnalyze, iStart, iPosition2 - iStart)
  23.    End If
  24. End Function
Un ejemplo seria asi:
Código:
El contexto es el ámbito de referencia de un texto. ¿Qué entiendo por ámbito de referencia?.

Código
  1.    Debug.Print Text_Between_Words(Text1.Text, "referencia", "entiendo")

El resultado seria:
Citar
de un texto. ¿Qué

Y si pongo esto:

Código
  1.    Debug.Print Text_Between_Words(Text1.Text, "referencia", "referencia")

Me sale esto:
Citar
de un texto. ¿Qué entiendo por ámbito de

Espero que os haya gustado(mas aun  :xD)... ;)

Salu2!
119  Programación / Programación Visual Basic / [Ayuda] Editar archivo de texto en: 30 Mayo 2010, 01:34 am
Hola , os lo voy a poner facil:
Estoy haciendo un programa que lee un archivo de texto, y si detecta la cadena "Siguiente" en una linea cree un archivo de texto que contenga esa linea, actualmente hago esto:
Código
  1. Private Sub Form_Load()
  2.    Dim archivo As Integer
  3.    Dim linea   As String
  4.    Dim x       As Integer
  5.    archivo = FreeFile
  6.    Open App.Path & "\lista.txt" For Input As archivo
  7.    Do While Not EOF(archivo)
  8.        Line Input #archivo, linea
  9.        If InStr(linea, "siguiente") <> 0 Then
  10.            Open App.Path & "\" & linea & x & ".txt" For Output As #1
  11.                Print #1, "Hola"
  12.            Close #1
  13.            x = x + 1
  14.        End If
  15.    Loop
  16. End Sub
Pero me da error me dice:
Citar
El archivo ya está abierto
Y me marca la linea:
Citar
Open App.Path & "\" & linea & x & ".txt" For Output As #1
mmmmmm
Porque?¿  :huh:
120  Programación / Programación Visual Basic / [Ayuda] Leer texto web en: 29 Mayo 2010, 16:33 pm
Hola a todos, a ver os cuento un poco lo que me pasa...
Estoy haciendo un bot utilizando wininet, Lo que necesito es ver el contenido de un label de la web en un label en mi Form, actualmente hago esto:
Código
  1. Option Explicit
  2.  
  3. Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
  4. Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
  5. Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
  6. Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
  7.  
  8. Public Function GET_(hURL As String) As String
  9.    Dim hBuffer As String * 1000
  10.    Dim hInternet As Long
  11.    Dim hFile     As Long
  12.    Dim hRead     As Long
  13.    hInternet = InternetOpen(0, 1, vbNullString, vbNullString, 0): DoEvents
  14.    If hInternet <> 0 Then
  15.        hFile = InternetOpenUrl(hInternet, hURL, vbNullString, ByVal 0&, &H80000000, ByVal 0&): DoEvents
  16.        If hFile <> 0 Then
  17.            Do
  18.                Call InternetReadFile(hFile, hBuffer, 1000, hRead): DoEvents
  19.                GET_ = GET_ & Left$(hBuffer, hRead)
  20.                If hRead = 0 Then Exit Do: DoEvents
  21.            Loop
  22.        End If
  23.    End If
  24.    If hInternet <> 0 Then Call InternetCloseHandle(hInternet)
  25.    If hFile <> 0 Then Call InternetCloseHandle(hFile)
  26. End Function
  27.  
  28. Public Function GetUserName(Optional ID As Long) As String
  29.    Dim Buffer   As String
  30.    Dim UserName As String
  31.    If ID > 0 Then
  32.        MyProfileData = GET_(urlotroperfildemipagina & Str(ID))
  33.    Else
  34.        MyProfileData = GET_(urlmiperfil)
  35.    End If
  36.    'Buscamos "Ver perfil de "
  37.    For x = 1 To Len(MyProfileData)
  38.        Buffer = Mid(MyProfileData, x, 14)
  39.        If Buffer = "Ver perfil de " Then Exit For
  40.    Next
  41.    'Buscamos el nombre
  42.    For x = x + 14 To Len(MyProfileData)
  43.        Buffer = Mid(MyProfileData, x, 1)
  44.        If Buffer <> Chr(34) Then UserName = UserName & Buffer Else Exit For
  45.    Next
  46.    GetUserName = UserName
  47. End Function

No estoy seguro de que sea una buena forma de hacerlo, por ello os pido consejo, asi como si en vez de wininet me recomendais otro metodo... :silbar:

Gracias!
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines