Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在vb中保存选项的最佳方法_Vb.net_Configuration_Settings - Fatal编程技术网

Vb.net 在vb中保存选项的最佳方法

Vb.net 在vb中保存选项的最佳方法,vb.net,configuration,settings,Vb.net,Configuration,Settings,我正在用vb制作一个应用程序,我想读写一些文件选项。 所有需要的文件都存储在外部(可配置)文件夹中,因此内置设置不是一个选项。 对于将变量(主要是字符串)保存到可以在任何位置并且可以在应用程序运行时读取/写入的文件,您有什么建议 提前谢谢 编辑: 让我再解释一下: 我想制作一个菜单,用户可以从中更改程序的一些设置。当然,我想将设置保存起来,以便用户下次运行程序时使用 我尝试了以下方法: NET设置-总是保存到某个奇怪的文件夹中 Nini(.ini库)-我需要该程序是可移植的,并且可以在没有lib

我正在用vb制作一个应用程序,我想读写一些文件选项。 所有需要的文件都存储在外部(可配置)文件夹中,因此内置设置不是一个选项。 对于将变量(主要是字符串)保存到可以在任何位置并且可以在应用程序运行时读取/写入的文件,您有什么建议

提前谢谢

编辑: 让我再解释一下: 我想制作一个菜单,用户可以从中更改程序的一些设置。当然,我想将设置保存起来,以便用户下次运行程序时使用

我尝试了以下方法:

NET设置-总是保存到某个奇怪的文件夹中

Nini(.ini库)-我需要该程序是可移植的,并且可以在没有libs的任何PC上工作


我发现的某个函数可以读取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文件中。或者,您可以考虑数据库的选项。没有绝对更好的选择;根据具体情况,最好依靠某种方法。还请记住,最低限度的理解(或一些预先研究)是在此提问的先决条件之一。请更好地解释你想要什么,并向我们展示你迄今为止所做的尝试。