带有TextBlock和Button的应用程序的页面,也包含.txt文档和文本(Proposals,每个提案在同一行,只有大约100行)。当您单击按钮语句(文档的第一个文本行)时,将显示在TextBlock中:
public string GetQ()
{
string pathFile = "Q.txt";
Uri uri = new Uri(pathFile, UriKind.Relative);
StreamResourceInfo sri = Application.GetResourceStream(uri);
using (StreamReader sr = new StreamReader(sri.Stream))
{
string wordline = sr.ReadLine();
return wordline;
}
}
如何在下次按下按钮时,出现在文档的下一行?
谢谢!
答案 0 :(得分:2)
这是未经测试的,但您可以将文件存储在字符串数组中,然后在不重新打开文件的情况下访问所需的内容以读取每一行。
var qFile = new List<string>();
public string GetQ()
{
string pathFile = "Q.txt";
Uri uri = new Uri(pathFile, UriKind.Relative);
StreamResourceInfo sri = Application.GetResourceStream(uri);
using (StreamReader sr = new StreamReader(sri.Stream))
{
string line = "";
while ((line != null)
{
line = sr.ReadLine());
if (line != null)
qFile.Add(line); // Add to list
}
}
现在您只需将qFile[0]
加载到qFile[qFile.Count - 1]
。
答案 1 :(得分:2)
你可以通过File.ReadLines轻松完成所需的工作,如我的快速几行代码所示(没有进行单元测试)
private static int LineNumber = 0;
private List<string> textLines = new List<string>();
public string GetTextLine()
{
const string pathFile = @"C:\test\Q.txt";
if (textLines.Count == 0)
{
textLines = File.ReadLines(pathFile).ToList();
}
if (LineNumber < (textLines.Count - 1))
{
return textLines[LineNumber++];
}
return textLines[LineNumber];
}
希望它能帮助你好运......