-1

私はテキストファイルからプログラムを作成します(.txt)私は関数splitで世界の線を切らなければなりません。しかし、この世界が配列に関数を書き込んでこれを操作する方法がわかりません。

コードがあります:

    private void button1_Click(object sender, EventArgs e)
    {
        FileStream fs = new FileStream("text.txt", FileMode.Open);
        StreamReader sr = new StreamReader(fs);

        string line;
        while ((line = sr.ReadLine()) != null)
        {
            string[] slova = sr.ReadLine().Split(';');

        }



        sr.Close();
    }
4

2 に答える 2

1

問題は、あなたがStreamReader.ReadLine2回電話をかけていることだと思います。このメソッドは、リーダーを次の行に進めます。したがって、最初の呼び出しはline現在の行で初期化され、ここでの次の呼び出しは次の行を読み取ります。

while ((line = sr.ReadLine()) != null)        // <-- first ReadLine
{
    string[] slova = sr.ReadLine().Split(';');// <-- second ReadLine
}

したがって、代わりに変数を使用してください

while ((line = sr.ReadLine()) != null)
{
    string[] slova = line.Split(';');
    // ....
}
于 2013-03-06T10:42:43.383 に答える
-1
string filePath = "text.txt";
char wordsSeparator = ';';
IEnumerable<string> lines = File.ReadAllLines(filePath);
foreach (var line in lines)
{
   IEnumerable<string> words = line.Split(new [] {wordsSeparator});
   // TODO: process words?!
}
于 2013-03-06T10:36:39.647 に答える