2011-08-30 23 views
6

Estoy tratando de incluir comillas en mi cadena para agregarlas a un cuadro de texto, estoy usando este código.Incluir comillas dentro de una cadena?

t.AppendText("Dim Choice" & count + " As String = " + "Your New Name is: & pt1 + "" & pt2 +" + vbNewLine) 

pero no funciona, yo quiero que la salida de este modo:

Dim Choice As String = "Your New Name is: NAME_HERE" 

Respuesta

13

tienes que escapar de las comillas. En VB.NET, utiliza comillas dobles - "":

t.AppendText("Dim Choice" + count.ToString() + " As String = ""Your New Name is: " + pt1 + " " + pt2 + """" + vbNewLine) 

Esto imprimiría como:

Dim Choice1 As String = "Your New Name is: NAME HERE" 

Suponiendo count = 1 (entero), pt1 = "nombre" y pt2 = "AQUÍ ".

Si count no es un Entero, puede soltar la llamada ToString().

En C#, a escapar de la "mediante el uso de un \, así:

t.AppendText("string Choice" + count.ToString() + " = \"Your New Name is: " + pt1 + " " + pt2 + "\"\n"); 

Qué imprimiría como:

string Choice1 = "Your new Name is: NAME HERE"; 
+0

En el último bit del código "" "+ vbNewLine) tiene y error:" constante de cadena debe terminar con comillas dobles " –

+0

Actualicé el final del código para usar 4" - es decir, "" "". Puse tres por accidente inicialmente. Perdón por la confusion. – Tim

0

Tienes que escapar de ellos, sin embargo no se puede generar dinámicamente variables nombres como usted está tratando aquí:

"Dim Choice" & count + " As String = " 

esto sólo será una cadena

.
+0

No creo que OP esté tratando de generar dinámicamente nombres de variables, ya que dice que está tratando de poner la cadena en un TextBox. – Tim

+0

Ah, bastante bien –

0

Puede utilizar el Chr Function con el quotes ASCII Code: 34 para tener un resultado como este:

t.Append(Dim Choice As String = " & Chr(34) & "Your New Name is: NAME_HERE" & Chr(34)) 
+2

No use 'Chr' aquí, simplemente lo hace menos legible. Nadie usaría '(char) 34' en C#, usaría' \ "'. Lo mismo es cierto en VB. –

8

Como dijo Tim, sólo tiene que sustituir cada ocurrencia de " dentro de la cadena con "".

Además, el uso String.Format para hacer el código más legible:

t.AppendText(_ 
    String.Format(_ 
     "Dim Choice{0} As String = ""Your New Name is: {1} {2}""{3}", _ 
     count, pt1, pt2, vbNewLine) 

Dependiendo del tipo de su t, incluso podría ser un método que soporta las cadenas de formato directamente, es decir, tal vez incluso se puede simplificar el anterior a la siguiente:

t.AppendText(_ 
    "Dim Choice{0} As String = ""Your New Name is: {1} {2}""{3}", _ 
    count, pt1, pt2, vbNewLine) 
+1

+1 para String.Format. Soy un gran admirador de la legibilidad del código (aunque sigo olvidando cosas simples como String.Format ... tal vez lo bajaré cuando crezca :)). – Tim

0

Aunque escapar de la cadena es la forma correcta de hacer las cosas que no siempre es el más fácil de leer. Considere tratando de crear la siguiente cadena:

Blank "" Full "Full" and another Blank "" 

para escapar de este que tiene que hacer lo siguiente:

"Blank """" Full ""Full"" and another Blank """"" 

Pero si el uso de String.Format con Chr(34) se puede hacer lo siguiente:

String.Format("Blank {0}{0} Full {0}Full{0} and another Blank {0}{0}", Chr(34)) 

Esta es una opción si lo encuentra más fácil de leer.

0

En VB .Net usted puede hacer esto:

Suponiendo count = 1 (Integer), pt1 = "NAME" and pt2 = "HERE".

t.AppendText("Dim Choice" & count.Tostring() + " As String ="+ CHR(34) + "Your New Name is: " & pt1 + "_" & pt2 +CHR(34) + vbNewLine) 

La salida será Dim elección como secuencia = "Su nuevo nombre es: NAME_HERE"

Cuestiones relacionadas