2016-11-15 5 views
0

データをテキストファイルに保存し、後で使用するために再度取得するプログラムを作成しています。プログラムに必要な機能の1つは、日付と時刻を保存する必要があることです。C#のテキストファイルに日付を読み書きする方法

これまでのところ、私はこれらの日付と時刻を読み書きするには、次のコードを使用しています:

//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(); 

と:今すぐ

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

を、これをやってから、私は日付が保存されることを確認することができます。テキストファイルに書き込むが、プログラムはそれをラベルに読み込まない。それは私が日付を表示することができるようにラベルの中にそれを読んでいたのですが、とにかくこの周りにはありますか?

+1

File.WriteAllText()とFile.ReadAllText()を使ってみましたか?この場合は、はるかに簡単です。 – axlj

+0

私はテキストファイルを使って複数の行のデータを保存していましたが、必要のないものはすべて取り除くことができます。 – walkman118

+1

使用している表示技術(Winforms、WPF、ASP)を知らないと。 NET、etc ...)その難しいが、WinFormsでは '.Text'プロパティを設定することでLabelの内容を変更することができます。 –

答えて

0

通常、このようにデータを書き込むのではなく、オブジェクトグラフを保存する方が良いです。

フォーマットにコントロールがある場合は、JSONまたはXML形式を推奨します。

これはVBであるが、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")) 

同様の技術がSystem.Xml.XmlSerializerクラスを使用してXMLのために使用することができます。

関連する問題