2013-05-10 1 views
1

Я пытаюсь импортировать содержимое файла .txt в свой список, текстовый файл уже сохранен как несколько строк в этой структуре: «ID строки»^«String» Я использую этот код для импортировать данные:Функция импорта текста в ListView ничего не делает

openFileDialog1.Filter = "Text Files (*.txt)|*.txt"; 
     openFileDialog1.Title = "Open Text file"; 
     DialogResult result = openFileDialog1.ShowDialog(); 
     if (result == DialogResult.Cancel) 
      return; 
     StreamReader sr = new StreamReader(openFileDialog1.FileName, Encoding.UTF8); 
     while (sr.Peek() >= 0) 
     { 
      string[] a2 = sr.ReadLine().Split('^'); 
      if (a2.Length == 3) 
      { 
       int aa = int.Parse(a2[0].ToString()); 

       textView.Items[aa].SubItems[1].Text = a2[1]; 
      } 
     } 
     sr.Close(); 

он загружает OFD, выберите текстовый файл, то ничего, он не дает никаких исключений/ошибок вообще, он просто ничего не делает, что-то случилось с моим кодом?

+0

Положите точку останова и убедитесь, что она попадает в цикл while. – rivarolle

+0

Я думаю, что у вас есть опечатка в вашем коде. Вы используете a2 до его объявления; Я ожидаю, что это должно быть a1.Length == 3. – Whyaduck

+0

Вы используете string [] a1 как массив, но позже вы ссылаетесь на a2, который не был объявлен/инициирован. Похож на ошибку. –

ответ

1

Вы распределяете линию, а затем проверить, если результирующий массив состоит из 3 элементов, в строке

if (a2.Length == 3) 

Если каждая строка действительно имеет только две части - LineId и строку, то вы должны испытывать для 2 элемента массива:

if (a2.Length == 2) 

Код, кажется, ничего не делает, потому что If оценивает значение false на основе ваших данных.

Кроме того, линия:

textView.Items[aa].SubItems[1].Text = a2[1]; 

Опирается на деталь с индексом аа уже создаются. вы должны создать элементы и сначала добавить их в список.

+0

Импорт на самом деле является заменой, он заменяет уже существующие данные, и он также дает мне исключение вне диапазона на этой строке «textView.Items [aa] .Subitems [1] .Text = a2 [1]) – Omarrrio

+0

try SubItems [0] –

+0

попробовал тот же результат, я думаю, что вне диапазона для элементов [aa], я исправил его, я просто ahd, чтобы поставить aa - 1 – Omarrrio