-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);
}
}
うんを一意キーを持っているために、次しteするように変更、事はある、このプログラムは、辞書機能を使用している一つのキーのみをすることができます1つの値を保持し、クリア機能が適用されていない場合は新しいデータをロードできませんでした '同じキーを持つ項目が既に追加されています'というエラーが表示されます – hafizhans
辞書をクリアすることによって、あなたはあなたが維持する必要があると言っている..あなたはどちらかを定義する必要があります固有のキー(例:ファイル名を含む)を生成するか、データを保持するために別の構造を使用する方がよいでしょうか? – Strillo