2013-05-12 3 views
1

Я пытаюсь экспортировать данные из нескольких файлов в один файл данных. Я смог добавить данные в набор данных, но он не предоставляет необходимые мне данные. Я думаю, это должна быть ошибка в моем цикле, и я пытался по-разному, но не смог получить правильный результат. Ниже вывод, который я получаю:Добавить данные в столбцы DataTable в нескольких текстовых файлах

enter image description here

И это выход мне нужно:

enter image description here

Пожалуйста, обратитесь к кодированию, которые я использую, и пожалуйста, помогите мне найти, где я иду неправильно. Заранее спасибо

OpenFileDialog thisDialog = new OpenFileDialog(); 
     thisDialog.Multiselect = true; 
     DataTable dt = new DataTable(); 

     if (thisDialog.ShowDialog() == DialogResult.OK) 
     { 
      foreach (string files in thisDialog.FileNames) 
      { 
       //each file generates two columns 
       DataColumn column1 = new DataColumn(); 
       dt.Columns.Add(column1); 
       DataColumn column2 = new DataColumn(); 
       dt.Columns.Add(column2); 
       using (System.IO.StreamReader file = new System.IO.StreamReader(files)) 
       { 
        string line; 
        while ((line = file.ReadLine()) != null) 
        { 
         if (line.Contains("DISKXFER")) 
         { 
          string dataLine = line.ToString(); 
          string[] split = dataLine.Split(','); 
          int result = split.Length; 
          DataRow row = dt.NewRow(); 
          dt.Rows.Add(split[2], split[3]); 
         } 
        } 
       } 
      } 
      dataGridView1.DataSource = dt; 
     } 
+0

какой файл вы пытаетесь прочитать? Этот текстовый файл? Пожалуйста, введите образец ввода, потому что, насколько я понимаю ваше решение, вы читаете текстовые файлы и раскалываете их с помощью. – jomsk1e

+0

@JRC Да, я пытаюсь прочитать текстовый файл. Я читаю строки, содержащие слово «DISKXFER» один за другим в каждом текстовом файле. строка выглядит примерно так: «DISKXFER, T0001,0.5,0.0». Я разделяю строку и берю «0,5» и «0.0» в два столбца и добавляю новые строки для каждой строки. Спасибо –

+0

что содержит ваш 'split'? – WiiMaxx

ответ

0

Вы добавляете новую строку для каждой строки DISKXFER в каждом файле, только первые две колонки заселенных - dt.rows.add это делает.

Вы должны заполнить больше столбцов в dr, а затем добавить dr в таблицу.

+0

Я сгенерировал два столбца первым и добавил drs к таблице. то я получаю столбцы и строки, как я ожидал. Но значения в строках неверны. Они одинаковые значения относятся к последней строке. Пожалуйста помоги мне с этим. благодаря –