2009-06-22 2 views
11

У меня есть некоторый код:C# Чтение текстовых файлов, содержащих данные, отделенные вкладки

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();  
    } 

Он читает в текстовый файл, который содержит данные, разделенные табуляцией и расщепляет данные на отдельные слова.

Проблема заключается в том, что после того, как данные были разделены, она по-прежнему имеет огромное количество пробелов слева и справа на случайных строках в списке (Infact большинство из них). Я не могу обрезать строку, потому что она удаляет только пустое пространство, и технически это не пустое пространство.

У кого-нибудь есть идеи о том, как обойти эту проблему !?

+1

Я смущен - вы говорите, что у него огромное количество белого пространства, но тогда вы также говорите, что обрезка не будет работать, потому что это не пробел? –

+0

Можете ли вы проверить, что это за пробелы? Я не верю, что возможно, что они на самом деле являются вкладками из кода, который вы опубликовали. – Noldorin

+0

Что именно такое количество пробелов, но не техническое пространство? – Groo

ответ

10

У меня проблема является то, что после того, как данные были разделены, она до сих пор имеет огромное количество белого пространства на левой и правой сторон на случайные строки в списке (Infact большинство из них). Я не могу обрезать строку, потому что она удаляет только пустое пространство, и технически это не пустое пространство.

Похоже, что у вас есть символы пробела без табуляции в вашей строке, а также разделитель табуляции.

Использование String.Trim должно работать нормально, чтобы удалить эти дополнительные символы. Если по какой-то причине выполнение String.Trim для каждого слова не работает, вам нужно будет переключиться, чтобы узнать, какие дополнительные «символы» состоят из этого, и используя этот overload of String.Trim.

+0

Thankyou - help очень благодарен! – Goober

2

У вас есть пробел/табуляции, подобные этому? "        Hello  "?

Обрезка удалить пробелы и вкладки слишком

Смежные вопросы