vb.net - 保存多个文本框和可能的组合框的内容
问题描述
我正在开发一个基本应用程序,可让您跟踪最多 3 项技能所获得的经验。技能的名称在组合框中(不确定是否最好),开始和结束值在文本框中。
我想添加一个保存按钮来保存结束值和选定的技能,当按下加载按钮时,它将用保存的技能填充组合框并将旧的结束值输入到新的开始值中。
我整天都在研究这个问题,搜索了很长时间,我想出了类似的解决方案,但似乎没有任何效果。我仍然是一个初学者,所以有些解决方案我不明白。此外,这必须适用于 VBNet。
我遇到的最接近的解决方案是:
File.WriteAllText("C:\Data.txt", String.Join("|", new String({TextBox1.Text, TextBox2.Text, TextBox3.Text}))
我希望该文件保留在主目录中的项目中。这也适用于组合框,以及如何重新加载这些值?
我还是VB的新手,希望这个问题有意义。
解决方案
如果我的想法正确,请在下面找到一些功能,如果它们可以提供帮助:
可以读(或写)文本:
这可以将所需的字符串填充到 3 个文本框
txtSkill1
,,txtSkill2
txtSkill3
Sub ReadTextFile() Dim lineCount As Integer = 0 Dim rndInstance As New Random Dim idx As Integer = 0 Dim selectedLine As String = "" Dim txt As String = "Skills.txt" If Not File.Exists(txt) Then File.Create(txt).Dispose() Dim objWriter As New System.IO.StreamWriter(txt, True) ' 2 sample text lines: objWriter.WriteLine("Negotiating - Interpersonal - Working independently") objWriter.WriteLine("Goal oriented - Leadership - Teamwork") objWriter.Close() End If lineCount = File.ReadAllLines(txt).Length idx = rndInstance.Next(1, lineCount + 1) ' the index can be random if you want, or run from (1 to lineCount) selectedLine = ReadLineWithNumberFrom(txt, idx) Dim pattern As String = "-" ' split on hyphens Dim subStrings() As String = Regex.Split(selectedLine, pattern) txtSkill1.Text = subStrings(0) txtSkill2.Text = subStrings(1) txtSkill3.Text = subStrings(2) End Sub
可以从特定的行号读取字符串:
Function ReadLineWithNumberFrom(filePath As String, ByVal lineNumber As Integer) As String Using file As New StreamReader(filePath) ' Skip all preceding lines: For i As Integer = 1 To lineNumber - 1 If file.ReadLine() Is Nothing Then Throw New ArgumentOutOfRangeException("lineNumber") End If Next ' Attempt to read the line you're interested in: Dim line As String = file.ReadLine() If line Is Nothing Then Throw New ArgumentOutOfRangeException("lineNumber") End If ' Succeeded! Return line End Using End Function
现在有了这些功能,您可以写入任何文本文件,从任何文本文件中读取,从任何行号,使用特定的分隔符(这里是连字符 -- char),您可以Save
和Load
您需要的任何字符串。
推荐阅读
- android-studio - AndroidStudio (Kotlin) 的导航问题
- wpf - 在 XAML 中使用 VB 代码绑定 Varialbes
- c++ - 概念可以与模板模板参数一起使用吗?
- java - 替换字符串中某些字符的所有实例
- vue.js - vue js-多选:全选/取消全选
- javascript - 如何从事件侦听器的内部函数将此元素传递给另一个函数?
- python - 将图例移到绘图外并删除双图例
- regex - 用于从多个游戏 PGN 文件(国际象棋)中仅提取第一个游戏的正则表达式
- r - 用与Boxplots相同的颜色填充异常值 在ggplot R中填充颜色?
- ansible - Ansible:“msg”:“无法创建临时目录。在某些情况下......致命:[localhost]:无法访问!=>