Wir haben einen Desktop-Timer erstellt, mit dem unsere Benutzer ihre täglichen Aufgaben und Projekte verfolgen. Es gibt Daten in eine CSV-Datei aus, wenn sie die Anwendung schließen. Gelegentlich müssen sie die CSV-Datei manuell aktualisieren, um entweder Zeit zu nehmen oder Zeit hinzuzufügen. Wenn sie dies im aktuellen Zustand tun, nachdem sie gespeichert haben, werden alle Spalten in Spalte A zusammengefasst. Ich weiß nicht, was das verursacht, und habe versucht, die Codierung zu recherchieren, konnte aber nichts finden, was ich mit diesem Szenario in Verbindung bringen könnte.Spalten, die kombinieren, wenn C# an csv anfügt
Voll form1.cs: full form1.cs code
Code csv bezogen werden:
//event handler for the closing event -- the output dump is here so the timer can be used all day and captures even on an accidetnal close
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//if the file exists we don't need to write the headers so we can skip the additional line write and just append the data created
if (File.Exists(dskPath + "\\" + agentName + ".csv"))
{
using (var file = new StreamWriter(dskPath+"\\" + agentName + ".csv", true, Encoding.UTF8))
{
foreach (var data in TimerData)
{
file.WriteLine(string.Join(",", data.agentID, data.agentStatus, data.statusTime, data.startTime, data.currentDate, data.hydraTask, data.clientname, data.publishdate, data.notes));
}
file.Close();
notifyIcon1.Icon = null;
MessageBox.Show("The file for " + agentName + " has been written to G:\\Communicator Ops\\Population Health\\Pop Process\\Time Tracking\\User Data.", "Application Closed");
}
}
//if the file hasn't been created before we can drop the headers in for the columns
else
{
using (var file = new StreamWriter(dskPath +"\\"+ agentName + ".csv", true, Encoding.UTF8))
{
file.WriteLine(string.Join(",", "Agent ID", "Agent Status", "Status Time", "Start Time", "Current Date", "hydra task number", "Client Name", "Publish Date", "Notes"));
foreach (var data in TimerData)
{
file.WriteLine(string.Join(",", data.agentID, data.agentStatus, data.statusTime, data.startTime, data.currentDate, data.hydraTask, data.clientname, data.publishdate, data.notes));
}
file.Close();
notifyIcon1.Icon = null;
MessageBox.Show("The file for " + agentName + " has been written to your desktop.","Application Closed");
}
}
}
Danke für Ihre Theorie. Sie haben jedoch keine dieser Eingabeaufforderungen erhalten, und heute können wir nicht mehr replizieren, um weitere Details hinzuzufügen. Wenn das Problem erneut auftritt, füge ich weitere Details hinzu, und wenn dies nicht innerhalb einer Woche geschieht, schließe/schließe ich die Frage, je nachdem, welcher der beste Workflow ist. – mustachematt