Как сохранить данные из C# в текстовый файл?
-
21-12-2019 - |
Вопрос
Я новичок в программировании и столкнулся с некоторыми трудностями.Я надеюсь сохранить данные, которые я генерирую (файл WPF DataGrid
) в текстовый файл.
Это то, что у меня есть на данный момент:
MainWindow.xaml.cs:
private void SaveButton_Click(object sender, RoutedEventArgs e)
{
string fileName = @"D:\projects\PersonInfos\Files\PersonInfos_Copy.txt";
PersonInfosTable.ConvertToTXTFile(fileName);
}
PersonInfosTable.cs:
public void ConvertToTXTFile(string fileName)
{
StringBuilder sb = new StringBuilder();
System.Text.Encoding Output = null;
Output = System.Text.Encoding.Default;
foreach (PersonInfos personinfos in PersonInfoDetails)
{
if (PersonInfos.SelectCheckBox == true)
{
string line = String.Format("L§" + personinfos.FirstName + "§" + personinfos.LastName + "§");
sb.AppendLine(line);
StreamWriter file = new StreamWriter(fileName);
file.WriteLine(sb);
file.Close();
}
}
}
К сожалению, это не работает. PersonInfosDetails
имеет тип ObservationCollections<T>
и SelectCheckBox
— флажок, установленный пользователем и указывающий, какие файлы пользователь хочет сохранить.
Есть идеи или предложения?Я был бы очень признателен за вашу помощь и большое спасибо за ваше время!
Решение
Непонятно, что такое свойство SelectCheckBox.Однако вам необходимо вынести часть программы, занимающуюся записью, за пределы цикла.Внутри цикла просто добавьте информацию о каждом человеке в свой экземпляр StringBuilder.
public void ConvertToTXTFile(string fileName)
{
StringBuilder sb = new StringBuilder();
System.Text.Encoding Output = System.Text.Encoding.Default;
foreach (PersonInfos personinfos in PersonInfoDetails)
{
// Collect every personinfos selected in the stringbuilder
if (personinfos.SelectCheckBox == true)
{
string line = String.Format("L§" + personinfos.FirstName + "§" + personinfos.LastName + "§");
sb.AppendLine(line);
}
}
// Now write the content of the StringBuilder all together to the output file
File.WriteAllText(filename, sb.ToString())
}
Другие советы
Попытался ли ты Как:Запись в текстовый файл (Руководство по программированию на C#)?
Кроме того, предоставленный вами код не будет работать, если SelectCheckBox
является статическим свойством PersonInfos
сорт.Вероятно, вам придется изменить if
заявление для
if (personInfos.SelectCheckBox == true)
{
// ...
}