Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: SNSN en 25 Octubre 2016, 23:41 PM

Título: Reempazar solo una palabra a la vez de un texto vb.net
Publicado por: SNSN en 25 Octubre 2016, 23:41 PM
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?
Título: Re: Reempazar solo una palabra a la vez de un texto vb.net
Publicado por: P4nd3m0n1um en 26 Octubre 2016, 01:11 AM
Para buscar una palabra:

Código (vbnet) [Seleccionar]
If InStr(text1.text, "cadena de texto a buscar") then
   MsgBox("Palabra encontrada")
End if
Título: Re: Reempazar solo una palabra a la vez de un texto vb.net
Publicado por: P4nd3m0n1um en 26 Octubre 2016, 02:20 AM
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
Título: Re: Reempazar solo una palabra a la vez de un texto vb.net
Publicado por: P4nd3m0n1um en 26 Octubre 2016, 03:19 AM
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
Título: Re: Reempazar solo una palabra a la vez de un texto vb.net
Publicado por: P4nd3m0n1um en 26 Octubre 2016, 03:25 AM
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