【问题标题】:How to split data in a text file in C#如何在 C# 中拆分文本文件中的数据
【发布时间】:2010-04-22 11:10:46
【问题描述】:

。这是我的数据的外观:name:abcsurname:abctel:1234,我希望它看起来像:name:abc 和 surname:abc 应该放在下一行。

        public void SeparateData()
        {
            //read file
            StreamReader sr = new StreamReader("myTextFile.txt");
            //string to hold line
            string myline;
            myline = sr.ReadLine();
            while ((myline = sr.ReadLine()) != null)
            {
                string[] lines = Regex.Split(myline, " ");
                foreach (string s in lines)
                {
                    using (StreamWriter sw = new StreamWriter("myTextFile.txt"))
                        sw.WriteLine(lines);
                }

            }
        }

【问题讨论】:

  • 每个“人”是否在文件中各自的行中,每个人是否都存储了相同的信息(姓名、姓氏和电话)?
  • 您能否粘贴一个更全面的示例,说明您的数据是什么样的以及您希望实现什么?
  • 澄清一下,你是说每个字段值直接流到下一个字段名上,没有任何分隔符?
  • 您可能想要使用 File.ReadAllLines() 方法,因为它将返回文本文件中所有行的 string[] 数组。

标签: c#-3.0


【解决方案1】:

好吧,你不需要正则表达式在空格上进行字符串拆分,但我不认为这会让你想要你想要的任何一种方式。我假设“abc”代表不同长度的实际值?

我认为你只需要拿出你的正则表达式书并拆分字符串并重写它。

例如'(name: )(\w*?)(surname: )(\w*?)(tel: )(\d*)' 然后使用捕获组重新组装和重写该行。

我认为你所拥有的会给你:

姓名:
姓名:
abctel:
第1234章

【讨论】:

  • 我的数据看起来像这样 Name: abcdSurname: abcdTel: 123456Name: defgSurname:defgTel:45678 我希望它看起来像这样, Name: abcd Surname:abcd Tel:12345 (这里跳过一行,然后)姓名:defgs 姓:gdheydh 电话:8890
  • 谢谢你们...我的问题已经解决了!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-16
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多