Member 12905429 Ответов: 1

У меня есть три combobox в C#, и я хочу, чтобы данные из этого combobox сохранялись в блокноте каждый в новой строке


частная hrs_combobx_SelectedIndexChanged недействительным(объект отправителя, EventArgs в электронной)
{
если (файл.Существует(@"C:\Users\admin\Documents\combobox1.txt"))
{
используя (модулю записи StreamWriter ео = новая модулю записи StreamWriter(@"C:\Users\admin\Documents\combobox1.txt"))
{
ув.Метода WriteLine(hrs_combobx.Элемент);
ув.Рядом();
}
используя (что streamreader СР = новый поток streamreader(@"C:\Users\admin\Documents\combobox1.txt"))
{
строка line1 = sr. ReadLine();
если (строка 1 != null)
{
hrs_combobx.Текст = строка 1;
строка1 = СР.С readline();
СР.Рядом();
}
}
}
}

частная min_combobx_SelectedIndexChanged недействительным(объект отправителя, EventArgs в электронной)
{
если (файл.Существует(@"C:\Users\admin\Documents\combobox1.txt"))
{
используя (модулю записи StreamWriter ео = новая модулю записи StreamWriter(@"C:\Users\admin\Documents\combobox1.txt"))
{
ув.Метода WriteLine(min_combobx.Элемент);
ув.Рядом();
}
используя (что streamreader СР = новый поток streamreader(@"C:\Users\admin\Documents\combobox1.txt"))
{
строка line2 = sr. ReadLine();
если (строка 2 != null)
{
sec_combobx.Текст = строка 2;
строка2 = СР.С readline();
СР.Рядом();
}
}

}
}

частная sec_combobx_SelectedIndexChanged недействительным(объект отправителя, EventArgs в электронной)
{
если (файл.Существует(@"C:\Users\admin\Documents\combobox1.txt"))
{
используя (модулю записи StreamWriter ео = новая модулю записи StreamWriter(@"C:\Users\admin\Documents\combobox1.txt"))
{
ув.Метода WriteLine(sec_combobx.Элемент);
ув.Рядом();
}
используя (что streamreader СР = новый поток streamreader(@"C:\Users\admin\Documents\combobox1.txt"))
{
строка line3 = sr. ReadLine();
если (строка 3 != null)
{
sec_combobx.Текст = строка 3;
строка3 = СР.С readline();
СР.Рядом();
}
}
}
}>

Что я уже пробовал:

я пробовал stream reader и writer только одно значение, то есть последнее значение combobox отображается в блокноте

Mohamed Rafiq K

Я думаю, что вы перезаписываете файлы, вот почему вы видите эти последние записанные данные.

Richard MacCutchan

Если вы не покажете нам свой код, мы не сможем догадаться, что вы делаете неправильно. Пожалуйста, опубликуйте правильную информацию о вашей проблеме.

hari19113

Вам нужно проверить свой файловый режим в FileStream. Он находится в режиме добавления? Если да, и у вас все еще есть проблемы, пожалуйста, опубликуйте фрагмент кода.

Ramza360

Ваша проблема заключается в том, что вы перезаписываете свой файл, так как вы просто создаете StreamWriter и пишете строку, а затем закрываете файл. Вам нужно указать StreamWriter с файловым режимом, как указано в hari19113. Проверьте мой пример ниже.

1 Ответов

Рейтинг:
1

Ramza360

Где бы вы ни делали материал StreamWriter, измените его на следующий.

Кроме того, поскольку вы используете блок using (), нет необходимости закрывать файл, блок using streamwriter закроет его за вас.

private void hrs_combobx_SelectedIndexChanged(object sender, EventArgs e)
{
    if (File.Exists(@"C:\Users\admin\Documents\combobox1.txt"))
    {
          using (StreamWriter sw = new StreamWriter(new FileStream(@"C:\Users\admin\Documents\combobox1.txt", FileMode.Append)))
         {
             sw.WriteLine(hrs_combobx.SelectedItem);
         }
    }
}