Resumen Ayuda sobre cadenas en visual

Esto es de la autoría de Jorge Serrano (mvisual@programando.com), no lo
he probado pero espero te sirva.

-----------------------
Filtro de cadenas de texto

Diciembre 1998.
Visual Basic 32 bits.

En no menos de una ocasión, nos habremos encontrado con la posibilidad de encontrarnos con una larga cadena de texto, la cual deseamos separar en trozos.
Para separar en trozos una cadena o más cadenas de texto, podemos hacerlo metiendo cada uno de los trozos en un Array, pero el uso de controles de comunicaciones, obliga a utilizar cadenas de texto ya que los Arrays no los acepta, por lo que nos vemos en la obligación de enviar todo en un único string, separando cada trozo con un identificador que puede ser un carácter "," ó un carácter "{Tab}" o cualquier otro.

Hasta aquí todo correcto, pero al llegar a nuestro lugar de destino, debemos reconvertir la cadena recibida a la original.

El siguiente ejemplo, recibe un cadena con un determinado carácter separador, como por ejemplo ",", y lo elimina. Este ejemplo reconstruye la cadena única en una única, es decir:

Si enviamos la cadena: "Esto es, un pequeño ejemplo", el programa no nos devolverá "Esto es" "un pequeño ejemplo", sino "Esto es un pequeño ejemplo".

Podemos personalizar esta rutina como deseemos.


Otra característica de est rutina es la posiblidad de sensibilidad o no, es decir, si le pasamos en el argumento Compare de la rutina un 0, el programa encuentra el separador, pero si ponemos un 1, el programa encuentra cualquier separador, como por ejemplo, la "n" y la "N".


Añada un control CommandButton y el siguiente código:


Ejemplo:


Private Const CASE_SENSITIVE = 0
Private Const CASE_INSENSITIVE = 1

Function After(ByVal Source As Variant, ByVal Target As String, ByVal
Compare As Integer) As Variant
    Source = CStr(Source)
    If InStr(1, Source, Target, Compare) = 0 Then
       After = Source
    Else
       After = Mid(Source, InStr(1, Source, Target, Compare) + Len(Target))
    End If
End Function

Function Before(ByVal Source As Variant, ByVal Target As String, ByVal Compare As Integer) As Variant
    Source = CStr(Source)
    If InStr(1, Source, Target, Compare) = 0 Then
       Before = Source
    Else
       Before = Left(Source, InStr(1, Source, Target, Compare) - 1)
    End If
End Function

Function Parse(Source As Variant, Separator As String, Compare As Integer) As String
    Parse = ""
    Source = CStr(Source)
    Do While InStr(1, Source, Separator, Compare) <> 0
       Parse = Parse & Before(Source, Separator, Compare)
       Source = After(Source, Separator, Compare)
    Loop
    If Parse = "" Then
        Parse = Source
    Else
        Parse = Parse & Source
    End If
    Source = ""
End Function

Private Sub Command1_Click()
    Dim Cadena As String
    Cadena = Parse("Este, es un ejemplo de uso, de esta breve rutina.", ",", 0)
    MsgBox Cadena
End Sub
-----------------------
¡SALUDOS!
Lic. Daniel Quintero Rojas
Soluciones y Especialistas en la Informacion
Of. 5687-8384, Casa 5637-8167
Ciudad de Mexico



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com