1

TextBlockとButtonを含むアプリケーションのページには、テキストを含む.txtドキュメントも含まれています(プロポーザル、同じ行の各プロポーザル、約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;
        }

    }

次にボタンを押したときに、ドキュメントの次の行が表示されるようにするにはどうすればよいですか?

ありがとう!

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 に答える