2012-01-19 4 views
-1

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

private void btnLoad_Click(object sender, EventArgs e) 
{ 
    try 
    { 

     OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
     openFileDialog1.Filter = "Data File (*.dat)|*.dat"; 
     if (openFileDialog1.ShowDialog() == DialogResult.OK) 
     { 

      TextReader f = new StreamReader(openFileDialog1.FileName); 

      String line; 

      this.letterData.Clear(); 
      this.letters.Items.Clear(); 

      while ((line = f.ReadLine()) != null) 
      { 
       int sampleSize = Form1.DOWNSAMPLE_HEIGHT * Form1.DOWNSAMPLE_WIDTH; 
       char ch = char.ToUpper(line[0]); 
       bool[] sample = new bool[sampleSize]; 

       int idx = 2; 
       for (int i = 0; i < sampleSize; i++) 
       { 
        if (line[idx++] == '1') 
         sample[i] = true; 
        else 
         sample[i] = false; 
       } 

       this.letterData.Add(ch, sample); 
       this.letters.Items.Add("" + ch); 
      } 

      f.Close(); 
     } 
     MessageBox.Show(this, "File Loaded"); 

    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("Error: " + ex.Message); 
    } 
} 

ответ

1

Удалить следующие строки?

this.letterData.Clear(); 
this.letters.Items.Clear(); 

EDIT:

или изменения т.е следующие для того, чтобы иметь уникальные ключи в словаре

this.letterData.Add(string.Format("{0}_{1}", openFileDialog1.FileName, ch), sample); 
this.letters.Items.Add(ch.toString()); 
+0

Да, дело в том, эта программа используется словарную функцию, один ключ может только удерживайте одно значение, если функция clear не применяется, новые данные не могут быть загружены, она покажет ошибку «элемент с тем же ключом уже добавлен» – hafizhans

+0

Хорошо, но, очистив словарь, вы явно удалите все данные вы говорите, что вам нужно поддерживать. Вам нужно либо определить лучший критерий для создания уникальных ключей (например, включая имя файла?) или использование другой структуры для хранения ваших данных. – Strillo

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