1

应用的页面带有TextBlock和Button,还涉及到带有文本的.txt文件(提案,每个提案在同一行,只有100行左右)。当您单击一个 Button 语句(文档的第一个文本行)时,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;
        }

    }

我如何使下次按下按钮时,出现文件的下一行?

谢谢!

4

2 回答 2

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].

于 2012-06-25T18:18:48.357 回答
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];
    }

希望对你有帮助,祝你好运...

于 2012-06-25T18:35:08.120 回答