Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Psyke1 en 1 Julio 2010, 14:23 pm



Título: [SRC] Text_Beetwen_Chars [by *PsYkE1*]
Publicado por: Psyke1 en 1 Julio 2010, 14:23 pm
Hola, se que debo de ser un pesado ya con tanta cadena, pero bueno... :laugh:
Aqui os dejo esta funcion que acabo de hacer, que igual a alguien le es util...

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. Public Function Text_Beetwen_Chars(ByVal sStringToAnalyze, ByVal sCharStart, ByVal sCharEnd, _
  11. Optional ByVal bRemoveString As Boolean = True)
  12.    Dim sActualChar          As String * 1
  13.    Dim sPreviousChar        As String * 1
  14.    Dim bFlag                As Boolean
  15.    Dim lToTalLen            As Long
  16.    Dim lToTalChar           As Long
  17.    Dim x                    As Long
  18.    Dim y                    As Long
  19.  
  20.    lToTalChar = Len(sStringToAnalyze)
  21.    If (lToTalChar > 0) And (sCharStart <> sCharEnd) Then
  22.        For x = 1 To lToTalChar
  23.            If x > 1 Then sPreviousChar = Mid$(sStringToAnalyze, x - 1, 1)
  24.            sActualChar = Mid$(sStringToAnalyze, x, 1)
  25.            lToTalLen = Len(Text_Beetwen_Chars)
  26.            Select Case sActualChar
  27.                Case sCharStart
  28.                    If bFlag = False Then bFlag = True Else y = y + 1
  29.                    If sPreviousChar = Chr$(32) And y = 0 And lToTalLen > 0 Then
  30.                        Text_Beetwen_Chars = Left$(Text_Beetwen_Chars, (lToTalLen - 1))
  31.                    End If
  32.                    If bRemoveString = True Then sActualChar = Chr$(32)
  33.                Case sCharEnd
  34.                    If y = 0 Then bFlag = False Else y = y - 1
  35.                    If bRemoveString = True Then sActualChar = Chr$(32)
  36.            End Select
  37.            If bFlag = bRemoveString And (sActualChar <> sCharStart And sActualChar <> sCharEnd) Then
  38.                Text_Beetwen_Chars = Text_Beetwen_Chars & sActualChar
  39.            End If
  40.        Next x
  41.    End If
  42. End Function

Un ejemplos:

Tengo un texto y quiero omitir todo lo que este entre parentesis...
Código
  1. Private Sub Form_Load()
  2.    Debug.Print Text_Beetwen_Chars("Hola amigos (esto solo es una prueba(jejejeje) ), de este modo veis que funciona...", "(", ")", False)
  3. End Sub

Me devuelve:
Citar
Hola amigos, de este modo veis que funciona...

Y ahora el caso contrario, supongamos que necesito SOLO el texto que se encuentra entre parentesis:
Código
  1. Private Sub Form_Load()
  2.    Debug.Print Text_Beetwen_Chars("Hola amigos (esto solo es una prueba(jejejeje) ), de este modo veis que funciona...", "(", ")") ' Por defecto bRemoveString es True =)
  3. End Sub

Este es el resultado:
Citar
esto solo es una prueba jejejeje

Si me animo un dia de estos la mejorare... :P
Espero que a alguien le sirva!! ;D

Salu2! ;)


Título: Re: [SRC] Text_Beetwen_Chars [by *PsYkE1*]
Publicado por: ssccaann43 © en 1 Julio 2010, 17:33 pm
Vaya...! Excelente...! Estoy adjuntando todas esas funciones a mi librería...! Asi me evito el estar creandolas yo...! :silbar: :silbar:


Título: Re: [SRC] Text_Beetwen_Chars [by *PsYkE1*]
Publicado por: Psyke1 en 1 Julio 2010, 18:57 pm
Me alegro de que te sirva amigo! ;)
Asi me evito el estar creandolas yo...! :silbar: :silbar:
jojojojo :laugh:
No sabia que eras tan vago... :silbar: (es broma :xD)

Salu2 y Gracias! :P


Título: Re: [SRC] Text_Beetwen_Chars [by *PsYkE1*]
Publicado por: ssccaann43 © en 2 Julio 2010, 17:48 pm
Jajajajaja es cierto...! Prefiero las cosas ya creadas, asi no pierdo tiempo... :silbar:


Título: Re: [SRC] Text_Beetwen_Chars [by *PsYkE1*]
Publicado por: raul338 en 2 Julio 2010, 18:31 pm
Jajajajaja es cierto...! Prefiero las cosas ya creadas, asi no pierdo tiempo... :silbar:

Y con calidad, sino...tiempo perdido x2 :xD


Título: Re: [SRC] Text_Beetwen_Chars [by *PsYkE1*]
Publicado por: Psyke1 en 25 Julio 2010, 21:11 pm
MI Expresion regular para resumir todo esto seria asi:

Código:
((\s)?\(.*?\))

PD: Raul tenias razon, es un vicio!! :laugh:

DoEvents¡! :P


Título: Re: [SRC] Text_Beetwen_Chars [by *PsYkE1*]
Publicado por: Sanlegas en 25 Julio 2010, 23:58 pm
no seria mas facil con replace y split? :rolleyes:


Título: Re: [SRC] Text_Beetwen_Chars [by *PsYkE1*]
Publicado por: raul338 en 26 Julio 2010, 00:11 am
MI Expresion regular para resumir todo esto seria asi:

Código:
((\s)?\(.*?\))

PD: Raul tenias razon, es un vicio!! :laugh:

DoEvents¡! :P

Jo! ..... creo q se puede seguir optimizando :P

no seria mas facil con replace y split? :rolleyes:
Hay varias formas, solo que algunas son mas rapidas y otras no :)


Título: Re: [SRC] Text_Beetwen_Chars [by *PsYkE1*]
Publicado por: Psyke1 en 26 Julio 2010, 23:46 pm
no seria mas facil con replace y split? :rolleyes:
Tienes razon ya lo pense asi, pero crei que seria mas rapido de esta manera, no esta comprobado aun, seria cuestion de testear... :P

@Raul
Si, la mejorare  :)

DoEvents¡! :P