0

私のテキストファイルは次のようになります(10 x 10):

ここに画像の説明を入力

だから私がやろうとしているのは、100 個のテキスト ボックスを表示したいということです。カンマで区切られた文字列を使用して、作成するテキスト ボックスの数を検出し、100 個と仮定します。しかし、私がそれをやろうとすると、110個のテキストボックスが表示され、通常より10個多くテキストボックスが表示されます. ここで何がうまくいかなかったのですか?

私のコードは次のとおりです。

            using (StreamReader reader = File.OpenText(Server.MapPath(@daoWordPuzzle.GetfileURL())))
        {
            string line = reader.ReadLine();
            while ((line = reader.ReadLine()) != null)
            {
                //  Response.Write(line + " <br />"); // Read every line in text file.
                string[] lol = line.Split(new string[] { "," }, StringSplitOptions.None);

                foreach (var value in lol)
                {
                    int i = 0;

                    TextBox tb = new TextBox();
                    tb.MaxLength = (1);
                    tb.Width = Unit.Pixel(40);
                    tb.Height = Unit.Pixel(40);
                    tb.ID = i.ToString();

                    // Response.Write(value);
                    if (string.IsNullOrEmpty(value))
                    {
                        tb.Text = "";
                     //   tb.Style["visibility"] = "hidden";
                    }
                    if (!string.IsNullOrEmpty(value))
                    {
                        tb.Text = "";
                    }


                       Panel1.Controls.Add(tb);

                    i++;
                }

            }
        }
4

2 に答える 2

2

It's creating 10 more because you have 10 lines that ends with a comma. Say you have a string like:

var s = "A,B,C,"

Splitting this would result in 4 string, the last one being empty. Now reproduce this for 10 lines and you will get the same behaviour as you are having. If that's unwanted behaviour, you need to change your logic to take into account a line that is ending with a comma.

于 2013-06-26T03:55:29.710 に答える
0

If you don't want to miss the first line or your text file, your code should be:

string line;
while ((line = reader.ReadLine()) != null)
{
[...]
}

Also if you want 10 boxes per row your text file should have 9 commas per row, but yours has 10.

于 2013-06-26T03:57:06.793 に答える