|
271
|
Programación / Programación Visual Basic / Re: Separar partes de un un html code
|
en: 22 Febrero 2011, 09:07 am
|
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: '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: 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. DoEvents!
|
|
|
272
|
Programación / Programación Visual Basic / Re: [RETO] uCaseCorrect. Corrector de Mayusculas!
|
en: 18 Febrero 2011, 14:24 pm
|
Ya está corregido el mío también...
Prueba: 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: uCaseCorrect7913 = Mid$(uCaseCorrect7913, 2, Len(uCaseCorrect7913) - 4)
Test: '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!
|
|
|
275
|
Programación / Programación Visual Basic / Re: [RETO] uCaseCorrect. Corrector de Mayusculas!
|
en: 17 Febrero 2011, 15:10 pm
|
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: ' 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!
|
|
|
276
|
Programación / Programación Visual Basic / Re: [RETO] uCaseCorrect. Corrector de Mayusculas!
|
en: 17 Febrero 2011, 13:05 pm
|
Te queda el mismo error que dijo BlackZer0x que me quedó a mi antes: 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!
|
|
|
278
|
Seguridad Informática / Análisis y Diseño de Malware / [Duda] Fabricante desconocido
|
en: 17 Febrero 2011, 09:46 am
|
Hola, echando un vistazo por otro foro, vi una duda planteada y me pareció interesante. Estoy poco puesto en malware, la pregunta es: ¿Sería posible evitar la ventana de Fabricante Desconocido al ejecutar un programa recién descargado? ¿Tal vez con ResHack se podría hacer algo? Gracias DoEvents!
|
|
|
279
|
Programación / Programación Visual Basic / Re: [RETO] uCaseCorrect. Corrector de Mayusculas!
|
en: 17 Febrero 2011, 09:23 am
|
Ook, gracias, ya modifiqué, ahora creo que ya está. 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!
|
|
|
280
|
Programación / Programación Visual Basic / Re: [RETO] uCaseCorrect. Corrector de Mayusculas!
|
en: 17 Febrero 2011, 02:19 am
|
Error:Debug.Print uCaseCorrect7913(" hola. esto es solo! ¿una prueba? jajjaja")
Llamada a argumento o procedimiento no válidos 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!
|
|
|
|
|
|
|