Come salvare i dati da C # in un file di testo?
-
21-12-2019 - |
Domanda
Sono nuovo di programmare e affrontare alcune difficoltà.Spero di salvare i dati che sto generando (un wpf DataGrid
) in un file di testo.
Questo è ciò che attualmente ho:
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();
}
}
}
.
Sfortunatamente, questo non funziona.PersonInfosDetails
è di tipo ObservationCollections<T>
e SelectCheckBox
è la casella di controllo selezionata dall'utente e indica quali file che l'utente vuole salvare.
Qualsiasi idea o suggerimento?Apprezzerei il tuo aiuto così tanto e grazie mille per il tuo tempo!
Soluzione
Non è chiaro qual è la proprietà SelecKcheckBox.Tuttavia, è necessario spostare la parte di scrittura del tuo programma al di fuori del loop.All'interno del loop aggiungi solo tutte le informazioni sulla persona all'istanza di 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())
}
. Altri suggerimenti
hai provato a Come: scrivere su un file di testo (Guida alla programmazione C #?
Inoltre, il codice che hai fornito non funziona a meno che SelectCheckBox
sia una proprietà statica della classe PersonInfos
.Probabilmente dovrai cambiare la Dichiarazione if
per
if (personInfos.SelectCheckBox == true)
{
// ...
}
.