Reempazar solo una palabra a la vez de un texto vb.net

Iniciado por SNSN, 25 Octubre 2016, 23:41 PM

0 Miembros y 2 Visitantes están viendo este tema.

SNSN

Tengo actualmente un texto que me llega información desde una API en una sola linea con varias informaciones de los usuarios, el problema esta en que logro tomar dicha información y pasarla a un listview, porque hay un valor que es ":estado:activo:" y el mismo se me copia en todos por igual ya que al hacer el bucle para tomar la informacion, el valor ":estado:activo:" se reemplaza en la primer pasada y en todos los usuarios, ya que mientras tomo un valor al final lo borro. Code:

TB4 = TextBox que recibe la información en una linea.
vads = el texto que esta entre ":estado:" y ":"

Código (vbnet) [Seleccionar]
Imports System.Text
Imports System.Text.RegularExpressions

Dim regex As New RegularExpressions.Regex(":estado:" + vads + ":", RegexOptions.IgnoreCase)
TB8.Text = regex.Replace(TB8.Text, String.Empty)


Lo que estoy buscando es que el código anterior se ejecute solo una vez y borre solo el valor que estoy tomando, por ejemplo que busque la primer aparición de izq a der y la elimine y las demás las deje para seguir con el bucle.

Alguna idea?

P4nd3m0n1um

Para buscar una palabra:

Código (vbnet) [Seleccionar]
If InStr(text1.text, "cadena de texto a buscar") then
   MsgBox("Palabra encontrada")
End if

P4nd3m0n1um

Supongo que tengas que usar algo como esto para seleccionar el texto:

Código (vbnet) [Seleccionar]
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' Le indicas la posicion del texto de inicio en la selección.
        TextBox1.SelectionStart = 0
        ' Le indicas la longitud de caracteres a seleccionar
        TextBox1.SelectionLength = TextBox1.TextLength
        ' le mandas el cursor al textbox, si no le mandas el cursor al textbox no se ve que este seleccionado.
        TextBox1.Focus()

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        'vb6
        'Dim palabras As String
        'palabras = Split(TextBox1.Text, "*")
        'TextBox2.Text = palabras(0)

        'O si solo quieres saber el texto que tienes seleccionado sin mandarle el cursor sería algo asi
        TextBox1.SelectionStart = 0
        TextBox1.SelectionLength = 3
        MsgBox(TextBox1.SelectedText)
        'Muestra un mensaje con los 3 primeros caracteres del texto.
    End Sub

P4nd3m0n1um

Código (vbnet) [Seleccionar]
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim palabra As String = ":estado:activo:"
        TextBox1.SelectionStart = InStr(TextBox1.Text, palabra) - 1
        TextBox1.SelectionLength = Len(palabra)
        TextBox1.Focus()
    End Sub


con eso lo seleccionas

P4nd3m0n1um

Este lo seleciona y lo reemplaza con un paste..

Código (vbnet) [Seleccionar]
   Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
       Dim palabra As String = ":estado:activo:"
       TextBox1.SelectionStart = InStr(TextBox1.Text, palabra) - 1
       TextBox1.SelectionLength = Len(palabra)
       TextBox1.Focus()
       'Reemplaza:
       TextBox1.Paste(":remplazo:funciona:")
   End Sub