如何将文本框's文本设置为包含在字符串中的文件中的一行
本文关键字:文本 文件 字符串 一行 设置 包含 | 更新日期: 2023-09-27 18:02:47
代码:
public Form1()
{
string[] reader = File.ReadAllLines(@"F:'Bioshock2SP.ini");
foreach (string lines in reader)
{
if (lines.Contains("VoVolume="))
{
lines.Substring(lines.Length -2);
TextBox.Text = lines; //Exception
}
}
InitializeComponent();
}
我试图在文件中找到一行,并仅在文本框中显示文件的实际设置部分。例如,我想找到包含"volvolume =55"的行,但我只想在文本框中显示"55",甚至只是"1.534"。
当我启动程序时,我总是得到一个异常。什么好主意吗?
异常细节:
NullReferenceException未处理。
类型为"System"的未处理异常。得到NullReferenceException"发生在EditingTextFromFile.exe
附加信息:对象引用未设置为类的实例对象。
好的。首先,如果textBox没有初始化,就不能使用它。您需要确保首先运行InitializeComponent。这就是导致异常的原因。其次,该Substring没有做任何事情,因为您没有使用输出值。
这里是你的代码稍微修改,以纠正这两个问题:
public Form1()
{
InitializeComponent();
string[] reader = File.ReadAllLines(@"F:'Bioshock2SP.ini");
foreach (string lines in reader)
{
if (lines.Contains("VoVolume="))
{
lines = lines.Substring(lines.Length - 2);
TextBox.Text = lines.Split(new string[] { "=" }, StringSplitOptions.None).Last();
}
}
}
TextBox对于TextBox实例来说是个糟糕的名字。
编辑:我使用了Mike的答案中的代码。
TextBox是一个类,不是一个实例。
如果你拖放一个文本框到表单,你可以找到Name属性,如:textBox1
那么你可以试试下面的代码:
textBox1.Text = lines.Split(new string[] { "=" }, StringSplitOptions.None).Last();
- 参见链接示例:读取/写入INI文件
-
我认为我的代码运行正常
var MyIni = new initfile (@"F:'Bioshock2SP.ini");
文本框。