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

时间:2013-12-27 12:37:24

标签: vb.net configuration settings

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

提前致谢!

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

我尝试了以下内容:

.NET设置 - 总是保存到一些奇怪的文件夹

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

我找到一些函数读取txt文件(setting = value)我一到电脑就会收到链接 - 只读

2 个答案:

答案 0 :(得分:0)

我认为这可以解决您的情况:

为您的选项创建一个结构(或一个类):

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

您的初始settings.cfg文件将如下所示:

{
  "option1": 0,
  "option2": 0,
  "option3": null
}

更改选项值后:

options.option1 = 5
options.option3 = "test"

您可以将其保存为以下文件:

jsonString = JsonConvert.SerializeObject(options, Formatting.Indented)
File.WriteAllText(path, jsonString)

新文件将如下所示:

{
  "option1": 5,
  "option2": 0,
  "option3": "test"
}

答案 1 :(得分:-1)

您可以通过将选项添加到程序设置来保存选项: 1 - 打开项目后,转到“项目”菜单 2点击最后一个:.......设置 3 - 您可以添加新项目ex:type:String如果要保存它在文本框中的选项。