Menú

Mostrar Mensajes

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ú

Mensajes - Psyke1

#271
Dios mio... SendKeys() para este tipo de cosas no por favor. :-(
Te dejo aquí una funcion para sacar el texto entre dos palabras, para esto creo que te funcionará, sino otra opción será usar RegExp.

Código:
Código (vb) [Seleccionar]

'by Mr.Frog™
Public Function TextBetweenWords(ByRef strText$, ByRef strWord1$, ByRef strWord2$) As String
Dim lngPos1&, lngPos2&, lngStart&

    lngPos1 = InStr(strText, strWord1)
    If lngPos1 Then
        lngStart = lngPos1 + LenB(strWord1) \ 2
        lngPos2 = InStr(lngStart, strText, strWord2)
        If iPosition2 Then
            TextBetweenWords = Mid$(strText, lngStart, lngPos2 - lngStart)
        End If
    End If
End Function


Ejemplo:
Código (vb) [Seleccionar]

Private Sub Form_Load()
    Msgbox TextBetweenWords("<a href=""xfire:add_friend?user=mrdogbertt""><img class=", "<a href=""", """><img class=")
End Sub


Resultado:
xfire:add_friend?user=mrdogbertt

No tengo el vb ahora, pero debería funcionar. :rolleyes:

DoEvents! :P
#272
Ya está corregido el mío también... :)




Prueba:
Código (vb) [Seleccionar]

Private Sub Form_Load()
Dim c1  As Class1
Const s1 As String = "¿hola como estás? , esto es sólo una prueba Miguel... y además : ¡funciona genial!  amo a las ranas!."
   
   Set c1 = New Class1
   Debug.Print c1.CorrectUCase(s1)
   Debug.Print uCaseCorrect7913(s1)
   Set c1 = Nothing
End sub


Retorno:

¿Hola como estás? , esto es sólo una prueba Miguel... y además : ¡funciona genial!  Amo a las ranas!.
¿Hola como estás? , esto es sólo una prueba Miguel... y además : ¡funciona genial!  Amo a las ranas!.A


Cambiando esta linea el 3 por un 4 me da resultado correcto:
Código (vb) [Seleccionar]
uCaseCorrect7913 = Mid$(uCaseCorrect7913, 2, Len(uCaseCorrect7913) - 4)




Test:
Código (vb) [Seleccionar]

'Compilado quitando comprobación de límites de arrays

Option Explicit

Private Sub Form_Load()
Dim t   As New CTiming
Dim c1  As Class1
Dim X   As Long
Dim s   As String

   Set c1 = New Class1

   AutoRedraw = True
   
   s = Text1.Text '// Mismo contenido que en el anterior test
   
   t.Reset
   For X = 1 To 1000
       uCaseCorrect7913 s
   Next
   Me.Print "uCaseCorrect7913", t.sElapsed
   
   DoEvents
   
   t.Reset
   For X = 1 To 1000
       c1.CorrectUCase s
   Next
   Me.Print "cFrogUCase.cls", t.sElapsed
   
   Set c1 = Nothing
End Sub


Resultado:


DoEvents! :P
#273
Ook, nueeevas cosas a añadir... :D
Sería así:
¿Hola como estás? , esto es sólo una prueba Miguel... y además : ¡funciona genial!  Amo a las ranas!.

DoEvents! :P
#274
Gracias Karcrack! :D
Muy interesante! ;-)

DoEvents! :P
#275
Texto en Text1:
las declaraciones del presidente de la academia de cine español, álex de la iglesia, ayer por la tarde en el programa la ventana de la cadena ser para defender la finalmente tumbada ley sinde son de las que atacan el hígado y hacen que la sangre suba a la cabeza. o esta gente no se ha dado cuenta de en qué mundo vive, o se cree el ombligo del mundo. "si se follan (sic) una película en internet durante la primera semana de su estreno, esa cinta ya no levanta cabeza", espetó de la iglesia. vaya. bienvenido al mundo real. le diré que no solo les pasa a ustedes. que, por ejemplo, si alguno de mis compañeros periodistas o yo misma escribimos un artículo, una exclusiva o un reportaje a fondo, tenemos que asumir que nuestro trabajo pase a ser gratuito en cuestión de horas, verlo flotar en múltiples páginas de internet y comprobar cómo, cada vez más, es muy complicado poder ingresar dinero por nuestro trabajo. el papel está a punto de pasar a la historia, sí. casi nadie está dispuesto a pagar por lo que puede tener gratis, también. es injusto y es muy difícil encontrar la solución, pues oiga, han descubierto ustedes la pólvora.
la diferencia es que el mundo del periodismo –y hablo de este porque es el que más conozco, aunque hay muchos otros ejemplos– se ve obligado a aceptar que es así porque las cosas evolucionan y, por tanto, los editores se rompen la cabeza a día de hoy para encontrar la solución: la tecla, el formato o la idea revolucionaria que haga compaginar las nuevas tecnologías con el hecho de poder ingresar dinero y que los profesionales puedan recibir un salario sin tener que depender de un mecenas o de las subvenciones del gobierno de turno. mientras medio mundo asume, mientras busca soluciones para reinventarse y superar esta problemática, algunos artistas se creen que solo ellos existen. que son las únicas víctimas del universo. dice de la iglesia que la ley sinde "beneficia a las compañías telefónicas", porque cuanto más se use la red, más ganan. vaya. de perogrullo, claro. pues carguémonos internet, y aquí paz y después gloria.
"yo pido a los políticos que solucionen los problemas", continúa el presidente de la academia de cine. ¿y a los demás, quién se los soluciona? porque le recuerdo que hay múltiples sectores con el agua al cuello, cada uno con su particular soga, y no por eso el gobierno crea una ley para cada uno de ellos que establezca un procedimiento de urgencia. a la gente de a pie no le queda más remedio que someterse a largos procesos judiciales para defender sus derechos. procesos demasiado largos, sí, pero ese ya sería otro tema.
"no hay por un lado los internautas y por otro lado los creadores. yo soy internauta y soy creador", sigue de la iglesia. pues me gustaría saber si el señor presidente de la academia de cine se suscribe cada día a un periódico digital pagando una cuota y si nunca lee información gratuita, como casi todo hijo de vecino. porque de ser así, la siguiente pregunta es: ¿tiene usted un doble discurso o es que cree que solo en el mundo del cine y la música hay creadores y los demás son de segunda categoría?
si se hubiese aprobado la ley sinde, muchos otros estarían también en su derecho de reclamar su propiedad intelectual. el efecto dominó podría ser interminable, hasta suponer que internet perdiese todo el sentido. algunos ya han encontrado la fórmula, respetando los derechos y ofreciendo algo distinto o novedoso por lo que la gente está dispuesta a pagar. pónganse las pilas. aunque claro, una suscripción no es tan rentable como vender un cd o un dvd a 20 euros. la baraja se llama internet. asumamos que no se puede romper, así que juguemos todos. eso sí, sin las cartas marcadas.


Test:
Código (vb) [Seleccionar]

' Compilado quitando comprobación de límites de arrays. :P
Private Sub Form_Load()
Dim t   As New CTiming
Dim c1  As Class1
Dim X   As Long
Dim s   As String
   
    Set c1 = New Class1
    AutoRedraw = True
   
    s = Text1.Text
   
    t.Reset
    For X = 1 To 20000
        uCaseCorrect7913 s
    Next
    Me.Print "uCaseCorrect7913", t.sElapsed
   
    DoEvents
   
    t.Reset
    For X = 1 To 20000
        c1.CorrectUCase s
    Next
    Me.Print "cFrogUCase.cls", t.sElapsed
   
    Set c1 = Nothing
End Sub


Resultado:


DoEvents! :P
#276
Te queda el mismo error que dijo BlackZer0x que me quedó a mi antes:

Código (vb) [Seleccionar]
Private Sub Form_Load()
    Debug.Print "----------------------------------------------------"
    Debug.Print uCaseCorrect7913("¡Cómo ha nevado esta noche!; ¡qué blanco está todo!; ¡qué frío vamos a pasar hoy!» [RAE: Ortografía, 1999, § 5.6.4]")
    Debug.Print uCaseCorrect7913("¿hola como estás? , esto es sólo una prueba Miguel... y además : ¡funciona genial!  amo a las ranas!.")
End Sub


----------------------------------------------------
¡Cómo ha nevado esta noche!; ¡Qué blanco está todo!; ¡Qué frío vamos a pasar hoy!» [RAE: Ortografía, 1999, § 5.6.
¿Hola como estás? , Esto es sólo una prueba Miguel... Y además : ¡funciona genial!  Amo a las ranas


Debería de dar:
----------------------------------------------------
¡Cómo ha nevado esta noche!; ¡qué blanco está todo!; ¡qué frío vamos a pasar hoy!» [RAE: Ortografía, 1999, § 5.6.4]
¿Hola como estás? , Esto es sólo una prueba Miguel... Y además : ¡funciona genial!  Amo a las ranas!.


DoEvents! :P
#277
Ya está! :P

DoEvents! :P
#278
Hola, echando un vistazo por otro foro, vi una duda planteada y me pareció interesante. :P
Estoy poco puesto en malware, la pregunta es:
¿Sería posible evitar la ventana de Fabricante Desconocido al ejecutar un programa recién descargado? :huh:

¿Tal vez con ResHack se podría hacer algo? :huh:
Gracias :)

DoEvents! :P
#279
Ook, gracias, ya modifiqué, ahora creo que ya está. :D

Código (vb) [Seleccionar]
Private Sub Form_Load()
    Dim c As New Class1
    Debug.Print "----------------------------------------------------"
    Debug.Print c.CorrectUCase("¡Cómo ha nevado esta noche!; ¡qué blanco está todo!; ¡qué frío vamos a pasar hoy!» [RAE: Ortografía, 1999, § 5.6.4]")
    Debug.Print c.CorrectUCase("¿hola como estás? , esto es sólo una prueba Miguel... y además : ¡funciona genial!  amo a las ranas!.")
    Set c = Nothing
End Sub


Resultado:
----------------------------------------------------
¡Cómo ha nevado esta noche!; ¡qué blanco está todo!; ¡qué frío vamos a pasar hoy!» [RAE: Ortografía, 1999, § 5.6.4]
¿Hola como estás? , Esto es sólo una prueba Miguel... Y además : ¡funciona genial!  Amo a las ranas!.


Si veis algún detalle más a corregir decirlo ;)

DoEvents! :P
#280
Error:

Código (vb) [Seleccionar]
Debug.Print uCaseCorrect7913(" hola. esto es solo! ¿una prueba? jajjaja")

Llamada a argumento o procedimiento no válidos

Código (vb,35) [Seleccionar]

Private Function uCaseCorrect7913(Txt As String) As String
Dim X         As Long
Dim Y         As Long
Dim Aux()     As String
Dim MED       As Long
Dim Ubi()     As Long
Dim SIGNO(4)  As String

SIGNO(0) = ".": SIGNO(1) = "?": SIGNO(2) = "!"   'TOMADO DE XXX-ZERO-XXX


Txt = Txt & "a"
ReDim Ubi(Len(Txt) + 5)
   '.?¡
   For X = 0 To 2
       Do
           Y = Y + 1
           Ubi(Y) = InStr(Ubi(Y - 1) + 1, Txt, SIGNO(X))
       Loop While Ubi(Y) <> 0
   Next
   'vbNewLine--------vbNewLine
   Aux = Split(Txt, vbNewLine)
   For X = 0 To UBound(Aux)
       Mid$(Aux(X), 1, 1) = UCase$(Mid$(Aux(X), 1, 1))
   Next
   For X = 0 To UBound(Aux)
       If X = 0 Then
           Mid$(Aux(X), 1, 1) = UCase$(Mid$(Aux(X), 1, 1))
       Else
           If Right$(Aux(X - 1), 1) = "." Or Right$(Aux(X - 1), 1) = "?" Or Right$(Aux(X - 1), 1) = "!" Then
               Mid$(Aux(X), 1, 1) = UCase$(Mid$(Aux(X), 1, 1))
           End If
       End If
   Next
   uCaseCorrect7913 = Mid$(uCaseCorrect7913, 1, Len(uCaseCorrect7913) - 3)
End Function


DoEvents! :P