基本上我有一个文本文件,其中有标题和说明。我想在特定文本框中提取标题,在其他文本框中提取所有描述。 我试过这段代码:
protected void FillForm(object sender, EventArgs e)
{
string inputString;
textBoxContents.Text = "";
using (StreamReader streamReader = File.OpenText(@"E:\file.txt"))
{
inputString = streamReader.ReadLine();
while (inputString != null)
{
textBoxContents.Text += inputString + "<br />";
inputString = streamReader.ReadLine();
}
}
}
我得到的是文件的所有内容,但我希望从该文件的文本框中显示一大块文本。
答案 0 :(得分:2)
我有一个文本文件,其中有标题和说明....
似乎对我的文件格式描述;)
我假设你的代码中标题是文本文件的第一行。如果是这种情况,您似乎错过了两个步骤:
您需要将第一次阅读的值分配到您想要标题的文本框中。
然后,您需要将 inputString 的值设置为空字符串,或使用另一个变量来保存正文文本的读取。这可确保您不会复制正文中的标题文本。
protected void FillForm(object sender, EventArgs e)
{
string inputString;
textBoxContents.Text = "";
using (StreamReader streamReader = File.OpenText(@"E:\file.txt"))
{
inputString = streamReader.ReadLine();
//assign inputString value to title text box
//set inputString value to ""
while (inputString != null)
{
textBoxContents.Text += inputString + "<br />";
inputString = streamReader.ReadLine();
}
}
}
希望它有所帮助。
答案 1 :(得分:0)
您可以尝试找到第一行并将其拆分:
string text = File.ReadAllText(@"E:\file.txt");
int positionOfFirstLineEnd = text.IndexOf('\n');
string title = text.Substring(0, positionOfFirstLineEnd);
string description = text.Substring(positionOfFirstLineEnd + 1);
答案 2 :(得分:0)
如何从文本文件中提取特定文本
什么是特定的?这是最重要的事情。知道什么使文本具体是什么,这使你能够编写一份代码和平的东西来做正确的工作。
通常,有:
知道您的代码几乎是正确的:
protected void FillForm(object sender, EventArgs e)
{
textBoxContents.Text = "";
using (var streamReader = File.OpenText(@"E:\file.txt"))
{
string inputString = null;
int lineNumber;
do
{
inputString = streamReader.ReadLine();
lineNumber++;
// this
// get line number 7
if(lineNumber == 7)
{
textBoxContents.Text += inputString + "<br />";
break;
}
// or perhaps this
// get next line after line containing "Description"
if(inputString.Contains("Description"))
{
inputString = streamReader.ReadLine();
textBoxContents.Text += inputString + "<br />";
break;
}
} while (inputString != null)
}
}
P.S。:提示,不要让事件处理程序成为方法。这意味着
void ButtonClick(object sender, EventArgs e)
{
FillForm();
}