¿Cómo sería esto?:
Private Sub Botón_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Botón.Click
If TextBox1.Text = "Tu nombre es:" & Texto1 & "Tu apellido es:" & Texto2 Then
TextBox2.Text = "Dijistes que tu nombre era:" & Texto1 & "Dijistes que tu apellido era:" & Texto2
End If
End Sub
Texto1 es el texto que escribe la persona que utiliza en ese momento el programa.
Texto2 es el texto que escribe la persona que utiliza en ese momento el programa.
De donde sacaste ese codigo? Nunca especificas que es Texto1 ni Texto2
Busca algun manual de programación, te recomiendo el de elGuille
Ya lo especifiqué, un saludo.
Creo que a lo que raul338 se refería es que muestres la parte del código de las variables para especificar el tipo de variable que es, aparte del contenido y de las modificaciones que le hagas...
Ya queda menos, Ahora sólo falta que especifiques lo que intentas hacer...
Saludos!
Lo que intento hacer es lo siguiente:
Hay 2 TextBox y 1 Botón, en el primer TextBox tienes que escribir obligatoriamente 1 texto específico, seguidamente un texto que tú quieras y finalmente otro texto en concreto.
El TextBox es el cuadro dónde puedes escribir.
Ejemplo:
Escribo en el primer TextBox lo siguiente:
Tu nombre es:AnonTu apellido es:Anonymous
Se escribe todo junto sin espacios.
Entonces al apretar el Botón en el segundo TextBox te debería aparecer lo siguiente:
Dijistes que tu nombre era:AnonDijistes que tu apellido era:Anonymous
Espero que con este ejemplo hayais logrado comprender lo que quiero obtener.
En VB 2008 especificas que:
Tienes que escribir un texto en concreto + un texto que tú eligas escribir + otro texto en concreto, diferente al primero + otro texto que la persona que utilice el programa desee poner.
Texto obligado + Anon + Otro texto obligado + Anonymous
Anon y Anonymous son ejemplos, la persona que escriba puede poner la palabra o conjunto de palabras que quiera, incluso si envez de escribir Anon, quiere escribir Kevin David, pues puede hacerlo, aunque sean 2 palabras separadas por 1 espacio, quiero que cuente como 1 solo texto que ha elegido la persona escribir.
Ejemplo:
Texto obligado + Kevin David + Otro texto obligado diferente + Mitnick
Si no he entendido mal, quieres comprobar si el usuario ha escrito 1 texto obligatorio + una o varias palabras + 1 texto obligatorio + una o varias palabras, y luego quieres mostrar los textos obligatorios de otra forma.
(http://img35.imageshack.us/img35/3540/prtscrcaptureem.jpg)
(http://img6.imageshack.us/img6/1781/prtscrcapture2g.jpg)
Eso puedes hacerlo con expresiones regulares o de la siguiente manera,
Copia este form y ejecútalo (No es necesario que añadas los controles), la única parte que te interesa es la que hay antes del comentario "FINAL DEL EJEMPLO":
PD: Si quieres almacenar el nombre y apellido en una variable, usa RegEX o el método Split.
Public Class Form1
Dim Obligado1 As String = "Tu nombre es:", Obligado2 As String = "Tu apellido es:"
Dim Obligado1_B = "Dijiste que tu nombre era:", Obligado2_B = "Dijiste que tu apellido era:"
Dim Nombres As String = Nothing
Private Sub TBox1_TextChanged(sender As Object, e As EventArgs)
Nombres = sender.text
End Sub
Private Sub Button_Click(sender As Object, e As EventArgs)
If Nombres Is Nothing Then
MsgBox("No introduciste nada")
ElseIf Not Nombres.Contains(Obligado1.ToLower) Or Not Nombres.Contains(Obligado2.ToLower) Then
MsgBox("No introduciste el texto obligado")
ElseIf Nombres.Contains(Obligado1.ToLower) And Nombres.Contains(Obligado2.ToLower) Then
TextBox2.Text = Nombres.Replace(Obligado1.ToLower, Obligado1_B).Replace(Obligado2.ToLower, Obligado2_B)
End If
End Sub
'// Final del ejemplo
'////////////////////
'// Final del ejemplo
' Controles
Dim Button As New Button
Dim TextBox1 As New TextBox
Dim TextBox2 As New TextBox
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Button.Text = "Comprobar"
Button.Location = New Point(10, 10)
TextBox1.Size = New Size(370, 20)
TextBox2.Size = New Size(370, 20)
TextBox1.Location = New Point(10, 40)
TextBox2.Location = New Point(10, 65)
AddHandler TextBox1.TextChanged, AddressOf TBox1_TextChanged
AddHandler Button.Click, AddressOf Button_Click
Me.Controls.Add(Button) : Me.Controls.Add(TextBox1) : Me.Controls.Add(TextBox2)
Me.Size = New Point(410, 130)
End Sub
End Class
Gracias electro hacker, conseguí avanzar 1 paso más gracias a ti, sin embargo me gustaría que me ayudases a corregir unos pequeños problemas que trae esto:
ElseIf Nombres.Contains(Obligado1.ToLower) And Nombres.Contains(Obligado2.ToLower) Then
Ahí dice que tiene que contener tanto el texto obligado 1 como el 2 pero a mi me gustaría estructurarlo con 1 orden ya que con ese código perfectamente puedo escribir Obligado2 antes que Obligado1 y me gustaría que no fuese así.
El órden que quiero es el siguiente:
Primero el primer texto obligado + Texto de la persona que escribe + Segundo texto obligado + Otro texto de la persona que escribe
Necesito que esté en ese orden y que si siguiese otro orden saliese alguna ventanita de adverténcia como varias que vi que pusistes.
Si tiene que ser esos strings exactos, puedes usar IndexOf y llamandolo con obligatorio1, obligatorio2, y despues si quieres con un par de cuentas sacas el texto1 y texto2
ej:
' Debe dar 0... o un numero si hay algo antes
pos1 = texto.IndexOf(obligatorio1)
' Debe dar ... 50 por ejemplo, ya que obligatorio tiene un largo de ... 30 (supongamos, ni si quiera lo cuento x'D) y son 20 caracteres que pone el usuario
pos2 = texto.IndexOf(obligatorio2)
' Para saber que esta en orden se verifica
If pos1 < pos2 Then
'Bien..
Else
'Incorrecto
End if
Para saber cuales son texto1 haces texto.SubString(pos1 + obligatorio1.length, pos2 - pos1) y vas jugando para sacar texto2 jeje
Porque no pones textboxes exclusivos para poner esos valores en lugar de estar jugando con strings? :P