2016-11-15 1 views
0

Ich baue ein Programm, das Daten in eine Textdatei speichert und für die spätere Verwendung wieder abruft. Eine der Funktionen, die das Programm haben muss, ist, dass es Datum und Uhrzeit speichern muss.Wie lese und schreibe ich ein Datum in eine Textdatei in C#

Bisher habe ich den folgenden Code verwende diese Daten und Zeiten lesen und schreiben:

//Write dates to text file: 
String path = string.Concat(Environment.CurrentDirectory, @"\database\bob.txt"); 
StreamWriter save = new StreamWriter(path); 
DateTime time = DateTime.Now; 
save.WriteLine(time); 
save.Dispose(); 

und:

//Read data from text file: 
StreamReader reader = new StreamReader(path); 
label.Content = reader.ReadLine(); 
reader.Dispose(); 

nun aus Dadurch kann ich bestätigen, dass das Datum gespeichert wird in die Textdatei, aber das Programm liest es nicht in das Etikett. Gibt es da überhaupt was, dass es in das Etikett hineingelesen wird, damit ich das Datum anzeigen kann?

+1

Haben Sie versucht, File.WriteAllText() und File.ReadAllText() zu verwenden? Sie sind in diesem Fall viel einfacher. – axlj

+0

Ich benutzte die Textdateien, um mehr als eine Zeile von Daten zu speichern .... aber zu sagen, dass ich immer alles wegschneiden könnte, was ich nicht brauche – walkman118

+1

Ohne zu wissen, welche Display-Technologie Sie verwenden (Winforms, WPF, ASP. NET, etc ...) ist schwer zu sagen, aber in Winforms ändern Sie den Inhalt eines Labels, indem Sie die '.Text' -Eigenschaft setzen. –

Antwort

0

Es ist normalerweise besser, ein Objektdiagramm zu speichern, als die Daten Stück für Stück so zu schreiben.

Wenn Sie die Kontrolle über das Format (was Sie tun, scheint), dann würde ich vorschlagen, ein JSON oder XML-Format.

Dies ist VB, aber leicht übersetzbar zu C#:

''' JSON, Use NuGet to Install NewtonSoft.Json 
Imports Newtonsoft.Json 
Imports System.IO 

Public Class SomethingIWantToSave 

    Public Shared Function Load(byval path As String) As SomethingIWantToSave 

     Dim result As SomethingIWantToSave = Nothing 
     Dim content As String = String.Empty 

     If File.Exists(path) Then 
      content = File.ReadAllText(path) 
      result = JsonConvert.DeserializeObject(Of SomethingIWantToSave)(content) 
     End If 

     return result 

    End Function 



    Public Sub Save(byval path As String) 

     Dim content As String = JsonConvert.Serialize(Me) 

     File.WriteAllText(path, content) 

    End Sub 

End Class 


Use the class like so: 
    ' load existing data 
    Dim data As SomethingIWantToSave = SomethingIWantToSave.Load(Path.Combine("c:\yadda", "yadda", "content.json")) 

    ' make changes if you like. 
    ... 

    ' save data back to disk 
    data.Save(Path.Combine("c:\yadda", "yadda", "content.json")) 

Eine ähnliche Technik kann für XML die System.Xml.XmlSerializer-Klasse verwendet werden.

Verwandte Themen