【问题标题】:transfer data from textbox to streamreader将数据从文本框传输到流式阅读器
【发布时间】:2011-04-06 17:10:06
【问题描述】:

我是 C# 新手 在此之前,我尝试使用流式阅读器读取以结束文本框中的数据。 现在...我正在尝试将数据从文本框逐行移动到另一个流阅读器 我试试这个代码

字符串文件名 = ContentBox.Text;

        if (File.Exists(filename))
        {
            using (StreamReader fileReader = new StreamReader(filename))
            {

                String fileRow = "";

                while ((fileRow = fileReader.ReadLine()) != null)
                {

                    String[] fileDataField = fileRow.Split(new string[] { "\r\n\t", " " }, StringSplitOptions.RemoveEmptyEntries);
                    String ListSplitLineByLine = "";

                    //line = line.Replace("\r\n", " ");
                    //String[] SplitItemLineByLine1 = (line).Split(' ');


                    foreach (string lineByLine in fileDataField)
                    {
                        ListSplitLineByLine += "\r\n" + lineByLine;
                    }

                    txtCaseInputs.Text = ListSplitLineByLine.Trim();

                    GenCombItems();

                }
            //Close the StreamReader
            fileReader.Close();
            }

       }    

这没有错误,但是当我运行时,什么都没有... 是我的编码错误吗?

【问题讨论】:

    标签: c# streamreader


    【解决方案1】:

    在每次迭代中,将该迭代的结果分配给txtCaseInputs.Text,并“覆盖”上一次迭代的结果。

    如果您希望文本框包含文件中所有字段的串联,则应在每次迭代时追加而不是分配:

    txtCaseInputs.Text += ListSplitLineByLine.Trim();
    

    并且不要忘记在开始整个过程​​之前清除文本框的内容。

    【讨论】:

      【解决方案2】:

      在其中添加一些调试语句,直到它正常工作。

      您以后可以随时删除它们。

      public string ZTest(string contentBoxText) {
        string retValue = null;
        string filename = contentBoxText;
        if (File.Exists(filename)) {
          using (StreamReader fileReader = new StreamReader(filename)) {
            string fileRow;
            while ((fileRow = fileReader.ReadLine()) != null) {
              string[] fileDataField = fileRow.Split(new string[] { "\r\n\t", " " }, StringSplitOptions.RemoveEmptyEntries);
              string ListSplitLineByLine = "";
              foreach (string lineByLine in fileDataField) {
                ListSplitLineByLine += "\r\n" + lineByLine;
              }
              if (!String.IsNullOrEmpty(ListSplitLineByLine)) {
                retValue = ListSplitLineByLine.Trim();
                GenCombItems();
              } else {
                MessageBox.Show("No data");
              }
            }
            // Line below is not necessary. Handled by the "using" clause.
            // fileReader.Close();
          }
        } else {
          MessageBox.Show("File Not Found");
        }
        return retValue;
      }
      

      【讨论】:

      • ContentBox 是一个包含加载后数据的文本框。我也试试这个,但还是一样..
      • 我上面写的存根对你来说很容易测试:string value = ZTest(ContentBox.Text); 然后在下一行Console.WriteLine(value); 一定要在ZTest 方法中设置一个断点,这样你就可以逐步通过整个过程(在 Visual Studio 中使用 F-10)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多