2010-04-19 33 views
5

Si tengo una variable que contiene información de texto (tomada de un área de texto), ¿cómo puedo leer el contenido de texto en una cadena de caracteres línea por línea?Cómo analizar la entrada del usuario desde una línea de texto línea

El texto ingresado en el área de texto tendrá \ n (tecla enter) para separar la línea.

+0

una buena pregunta aquí es ¿cuál es la longitud máxima predeterminada en un área de texto? ¿Cuál es el alcance con el que estamos trabajando? – Glennular

+0

pocas mil líneas, menos de 10K. – Blankman

Respuesta

11

Se puede utilizar un StringReader:

var reader = new StringReader(textbox.Text); 
string line; 
while (null != (line = reader.ReadLine())) { 
    //... 
} 
6

intenta utilizar

string[] strings = yourString.Split(new string[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries) 
+1

Esto es ineficaz para cadenas grandes. – SLaks

+1

@SLaks - No se dijo nada sobre el tamaño. Entonces supongo que el tamaño es razonable. – Hun1Ahpu

+2

Tendría graves problemas de descarga y/o inyección mucho antes de que esto sea menos eficiente que un StringReader. –

0
string[] splitInput = System.Text.RegularExpressions.Regex.Split(
         InputString, "\r\n"); 
+0

No hay ningún punto en el uso de expresiones regulares aquí. – SLaks

0

Ésta es una cuestión de edad, pero esto podría ayudar! Personalmente utilizo este código para manejar todos los sistemas operativos:

myString.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries) 
Cuestiones relacionadas