我想问你们,你们中是否有人知道我如何在progresm中保存更改,以便在重新启动时,更改仍然存在?
例如,我有一个布尔变量,他的defalt值是"false"。我希望在初始启动后,将值更改为"true",这样当我关闭并启动程序时,布尔变量值将为true。
这就是我们拥有数据库的目的。。。
或配置文件
或文件系统
你需要保留数据,这些数据不能在内存中,必须在磁盘上
阅读各种数据持久化策略,尝试一下,如果您被卡住了,请告诉我们
选择要用于持久化数据的格式。在应用程序启动时,读取文件并将其反序列化为您的模型。关闭时,将其序列化并保存到文件中。看看下一个问题:在Windows窗体应用程序中保存应用程序设置的最佳实践
下一个样本取自上述链接:
using System;
using System.IO;
using System.Web.Script.Serialization;
namespace MiscConsole
{
class Program
{
static void Main(string[] args)
{
MySettings settings = MySettings.Load();
Console.WriteLine("Current value of 'myInteger': " + settings.myInteger);
Console.WriteLine("Incrementing 'myInteger'...");
settings.myInteger++;
Console.WriteLine("Saving settings...");
settings.Save();
Console.WriteLine("Done.");
Console.ReadKey();
}
class MySettings : AppSettings<MySettings>
{
public string myString = "Hello World";
public int myInteger = 1;
}
}
public class AppSettings<T> where T : new()
{
private const string DEFAULT_FILENAME = "settings.jsn";
public void Save(string fileName = DEFAULT_FILENAME)
{
File.WriteAllText(fileName, (new JavaScriptSerializer()).Serialize(this));
}
public static void Save(T pSettings, string fileName = DEFAULT_FILENAME)
{
File.WriteAllText(fileName, (new JavaScriptSerializer()).Serialize(pSettings));
}
public static T Load(string fileName = DEFAULT_FILENAME)
{
T t = new T();
if(File.Exists(fileName))
t = (new JavaScriptSerializer()).Deserialize<T>(File.ReadAllText(fileName));
return t;
}
}
}