文本.txt文档的输出文本行到TextBlock

时间:2012-06-25 18:06:25

标签: c# string windows-phone-7

带有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;
        }

    }

如何在下次按下按钮时,出现在文档的下一行?

谢谢!

2 个答案:

答案 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];
    }

希望它能帮助你好运......