這兩天開了博客,覺得有必要寫點什麼東西充實一下,一來很多資料都不在電腦,二來也是爲以後工作方便寫一下記錄。
這是之前兼職寫的一個液壓機控制軟件中的文件保存操作,採用json語言保存數據,特別方便,包括單個類型變量、數組等的保存和讀取。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WpfApplication1
{
class Syscfg
{
public int IsSaved = 1;
public double intpama = 1.2;
public double doublepama = 2.3;
public double[] buf = { 1, 2, 3 };
//public double[] doublebuf = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
private Syscfg()
{
}
public static Syscfg config = new Syscfg();
}
}
下面是對文件操作的一些方式,包括數據文件讀取:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Globalization;
using System.Collections.ObjectModel;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace WpfApplication1
{
/// <summary>
/// MainWindow.xaml 的交互邏輯
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
try
{
StreamReader sr1 = new StreamReader("syscfg.ini", Encoding.Default);
string jsons1 = sr1.ReadToEnd();
Syscfg tmp_cfg1 = JsonConvert.DeserializeObject<Syscfg>(jsons1);
sr1.Close();
tmp_cfg1.IsSaved = Syscfg.config.IsSaved;
}
catch
{
using (StreamWriter sw = new StreamWriter("syscfg.ini", false))
{
string json_out = JsonConvert.SerializeObject(Syscfg.config);
sw.Write(json_out);
sw.Close();
}
}
StreamReader sr = new StreamReader("syscfg.ini", Encoding.Default);
string jsons = sr.ReadToEnd();
Syscfg tmp_cfg = JsonConvert.DeserializeObject<Syscfg>(jsons);
sr.Close();
tmp_cfg.intpama = 222;
tmp_cfg.doublepama = 333;
tmp_cfg.buf[0] = 1.1;
tmp_cfg.buf[1] = 2.2;
tmp_cfg.buf[2] = 3.3;
using (StreamWriter sw = new StreamWriter("syscfg.ini", false))
{
string json_out = JsonConvert.SerializeObject(tmp_cfg);
sw.Write(json_out);
sw.Close();
}
}
}
}