كيفية حفظ البيانات من C# في ملف txt؟
-
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)
{
// ...
}