Foro de elhacker.net

Programación => .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
  1. Imports System.Text
  2. Imports System.Text.RegularExpressions
  3.  
  4. Dim regex As New RegularExpressions.Regex(":estado:" + vads + ":", RegexOptions.IgnoreCase)
  5. 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
  1. If InStr(text1.text, "cadena de texto a buscar") then
  2.   MsgBox("Palabra encontrada")
  3. 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
  1.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.        ' Le indicas la posicion del texto de inicio en la selección.
  3.        TextBox1.SelectionStart = 0
  4.        ' Le indicas la longitud de caracteres a seleccionar
  5.        TextBox1.SelectionLength = TextBox1.TextLength
  6.        ' le mandas el cursor al textbox, si no le mandas el cursor al textbox no se ve que este seleccionado.
  7.        TextBox1.Focus()
  8.  
  9.    End Sub
  10.  
  11.    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  12.        'vb6
  13.        'Dim palabras As String
  14.        'palabras = Split(TextBox1.Text, "*")
  15.        'TextBox2.Text = palabras(0)
  16.  
  17.        'O si solo quieres saber el texto que tienes seleccionado sin mandarle el cursor sería algo asi
  18.        TextBox1.SelectionStart = 0
  19.        TextBox1.SelectionLength = 3
  20.        MsgBox(TextBox1.SelectedText)
  21.        'Muestra un mensaje con los 3 primeros caracteres del texto.
  22.    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
  1.    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  2.        Dim palabra As String = ":estado:activo:"
  3.        TextBox1.SelectionStart = InStr(TextBox1.Text, palabra) - 1
  4.        TextBox1.SelectionLength = Len(palabra)
  5.        TextBox1.Focus()
  6.    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
  1.    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  2.        Dim palabra As String = ":estado:activo:"
  3.        TextBox1.SelectionStart = InStr(TextBox1.Text, palabra) - 1
  4.        TextBox1.SelectionLength = Len(palabra)
  5.        TextBox1.Focus()
  6.        'Reemplaza:
  7.        TextBox1.Paste(":remplazo:funciona:")
  8.    End Sub