2009-06-22 229 views
11

Tengo algo de código:C# Leer archivo de texto que contiene datos delimitados por tabulaciones

public static void ReadTextFile() 
    { 
     string line; 

     // Read the file and display it line by line. 
     using (StreamReader file = new StreamReader(@"C:\Documents and Settings\Administrator\Desktop\snpprivatesellerlist.txt")) 
     { 
      while ((line = file.ReadLine()) != null) 
      { 

       char[] delimiters = new char[] { '\t' }; 
       string[] parts = line.Split(delimiters, StringSplitOptions.RemoveEmptyEntries); 
       for (int i = 0; i < parts.Length; i++) 
       { 

        Console.WriteLine(parts[i]); 
        sepList.Add(parts[i]); 

       } 

      } 

      file.Close(); 
     } 
     // Suspend the screen. 
     Console.ReadLine();  
    } 

Se lee en un archivo de texto que contiene datos delimitados por tabulaciones y divide los datos en palabras separadas.

El problema que tengo es que una vez que los datos se han separado, todavía tiene grandes cantidades de espacio en blanco en los lados izquierdo y derecho en cadenas aleatorias en la lista (de hecho la mayoría de ellos lo hacen). No puedo recortar la cadena porque solo elimina el espacio en blanco, y técnicamente esto no es un espacio en blanco.

¿Alguien tiene alguna idea sobre cómo solucionar este problema?

+1

Estoy confundido - usted dice que tiene una gran cantidad de espacio en blanco, pero luego también dice que el ajuste no funcionará porque no es un espacio en blanco? –

+0

¿Puedes verificar dos veces qué son estos caracteres en blanco? No creo que sea posible que en realidad sean pestañas del código que publicaste. – Noldorin

+0

¿Cuáles son exactamente estas cantidades de espacio en blanco, pero técnicamente no es un espacio en blanco? – Groo

Respuesta

10

El problema que tengo es que una vez que los datos han sido separados, todavía tiene grandes cantidades de espacio en blanco en los lados izquierdo y derecho de cadenas aleatorias en la lista (De hecho la mayoría de ellos lo hacen). No puedo recortar la cadena porque solo elimina el espacio en blanco, y técnicamente esto no es un espacio en blanco.

Parece que tiene caracteres de espacios en blanco que no son de tabulación en la cadena, además de estar delimitados por tabulaciones.

Usar String.Trim debería funcionar bien para eliminar estos caracteres adicionales. Si, por algún motivo, hacer String.Trim en cada palabra no funciona, deberá cambiar para averiguar de qué están compuestos los "caracteres" extra, y usar este overload of String.Trim.

+0

Gracias, ¡qué gran ayuda! – Goober

2

¿Tiene espacios en blanco/pestañas como esta? "        Hola  "?

Recorte eliminar los espacios en blanco y las pestañas demasiado

Cuestiones relacionadas