Vb.net 在vb中保存选项的最佳方法
我正在用vb制作一个应用程序,我想读写一些文件选项。 所有需要的文件都存储在外部(可配置)文件夹中,因此内置设置不是一个选项。 对于将变量(主要是字符串)保存到可以在任何位置并且可以在应用程序运行时读取/写入的文件,您有什么建议 提前谢谢 编辑: 让我再解释一下: 我想制作一个菜单,用户可以从中更改程序的一些设置。当然,我想将设置保存起来,以便用户下次运行程序时使用 我尝试了以下方法: NET设置-总是保存到某个奇怪的文件夹中 Nini(.ini库)-我需要该程序是可移植的,并且可以在没有libs的任何PC上工作Vb.net 在vb中保存选项的最佳方法,vb.net,configuration,settings,Vb.net,Configuration,Settings,我正在用vb制作一个应用程序,我想读写一些文件选项。 所有需要的文件都存储在外部(可配置)文件夹中,因此内置设置不是一个选项。 对于将变量(主要是字符串)保存到可以在任何位置并且可以在应用程序运行时读取/写入的文件,您有什么建议 提前谢谢 编辑: 让我再解释一下: 我想制作一个菜单,用户可以从中更改程序的一些设置。当然,我想将设置保存起来,以便用户下次运行程序时使用 我尝试了以下方法: NET设置-总是保存到某个奇怪的文件夹中 Nini(.ini库)-我需要该程序是可移植的,并且可以在没有lib
我发现的某个函数可以读取txt文件(设置=值)。我一到我的电脑就会得到该链接-只读您可以通过将其添加到程序设置来保存选项: 1-打开项目后,进入“项目”菜单 2在最后一个设置之前单击
3-如果您想将选项保存在文本框中,您可以添加新项目,例如:type:String。我认为这适用于您的情况: 为选项创建结构(或类):
Public Structure MyOptions
Dim option1 As Integer
Dim option2 As Integer
Dim option3 As String
End Structure
然后像这样做:
Dim options As New MyOptions
Dim path As String = "settings.cfg"
Dim jsonString As String = JsonConvert.SerializeObject(options, Formatting.Indented)
If File.Exists(path) = False Then
File.WriteAllText(path, jsonString) 'if dile doesn't exist save initial jsonString
Else
jsonString = File.ReadAllText(path) 'read options from file
End If
'load structure with values from file
options = JsonConvert.DeserializeObject(Of MyOptions)(jsonString)
Dim x as integer = options.option1
Dim s as string = options.option3
{
"option1": 0,
"option2": 0,
"option3": null
}
jsonString = JsonConvert.SerializeObject(options, Formatting.Indented)
File.WriteAllText(path, jsonString)
{
"option1": 5,
"option2": 0,
"option3": "test"
}
然后你可以这样使用它:
Dim options As New MyOptions
Dim path As String = "settings.cfg"
Dim jsonString As String = JsonConvert.SerializeObject(options, Formatting.Indented)
If File.Exists(path) = False Then
File.WriteAllText(path, jsonString) 'if dile doesn't exist save initial jsonString
Else
jsonString = File.ReadAllText(path) 'read options from file
End If
'load structure with values from file
options = JsonConvert.DeserializeObject(Of MyOptions)(jsonString)
Dim x as integer = options.option1
Dim s as string = options.option3
{
"option1": 0,
"option2": 0,
"option3": null
}
jsonString = JsonConvert.SerializeObject(options, Formatting.Indented)
File.WriteAllText(path, jsonString)
{
"option1": 5,
"option2": 0,
"option3": "test"
}
您的初始settings.cfg文件如下所示:
Dim options As New MyOptions
Dim path As String = "settings.cfg"
Dim jsonString As String = JsonConvert.SerializeObject(options, Formatting.Indented)
If File.Exists(path) = False Then
File.WriteAllText(path, jsonString) 'if dile doesn't exist save initial jsonString
Else
jsonString = File.ReadAllText(path) 'read options from file
End If
'load structure with values from file
options = JsonConvert.DeserializeObject(Of MyOptions)(jsonString)
Dim x as integer = options.option1
Dim s as string = options.option3
{
"option1": 0,
"option2": 0,
"option3": null
}
jsonString = JsonConvert.SerializeObject(options, Formatting.Indented)
File.WriteAllText(path, jsonString)
{
"option1": 5,
"option2": 0,
"option3": "test"
}
更改选项值后:
options.option1 = 5
options.option3 = "test"
您可以按如下方式将其保存到文件:
Dim options As New MyOptions
Dim path As String = "settings.cfg"
Dim jsonString As String = JsonConvert.SerializeObject(options, Formatting.Indented)
If File.Exists(path) = False Then
File.WriteAllText(path, jsonString) 'if dile doesn't exist save initial jsonString
Else
jsonString = File.ReadAllText(path) 'read options from file
End If
'load structure with values from file
options = JsonConvert.DeserializeObject(Of MyOptions)(jsonString)
Dim x as integer = options.option1
Dim s as string = options.option3
{
"option1": 0,
"option2": 0,
"option3": null
}
jsonString = JsonConvert.SerializeObject(options, Formatting.Indented)
File.WriteAllText(path, jsonString)
{
"option1": 5,
"option2": 0,
"option3": "test"
}
新文件将如下所示:
Dim options As New MyOptions
Dim path As String = "settings.cfg"
Dim jsonString As String = JsonConvert.SerializeObject(options, Formatting.Indented)
If File.Exists(path) = False Then
File.WriteAllText(path, jsonString) 'if dile doesn't exist save initial jsonString
Else
jsonString = File.ReadAllText(path) 'read options from file
End If
'load structure with values from file
options = JsonConvert.DeserializeObject(Of MyOptions)(jsonString)
Dim x as integer = options.option1
Dim s as string = options.option3
{
"option1": 0,
"option2": 0,
"option3": null
}
jsonString = JsonConvert.SerializeObject(options, Formatting.Indented)
File.WriteAllText(path, jsonString)
{
"option1": 5,
"option2": 0,
"option3": "test"
}
您可以将它们保存在xml文件或应用程序路径中包含json的txt文件中。或者,您可以考虑数据库的选项。没有绝对更好的选择;根据具体情况,最好依靠某种方法。还请记住,最低限度的理解(或一些预先研究)是在此提问的先决条件之一。请更好地解释你想要什么,并向我们展示你迄今为止所做的尝试。