繁体   English   中英

从已经存在的文件创建一个新的 txt 文件

[英]Creating a new txt file from an already existing one

我正在尝试从已经存在的文本文件中创建一个新的文本文件。 现在,我可以显示整个文本文件(test.txt)。 该文件显示了大量信息,但我担心显示以下内容,这恰好是 txt 文件的前 6 列。 他们来了:

  • 版本控制
  • 计划编号
  • 帐号
  • 国家
  • 发票日期
  • 发票号码

这就是我设置 Program.cs 文件的方式:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;


namespace TextFileDataAccessDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePath = @"C:\MyData\test.txt";

            List<string> lines = File.ReadAllLines(filePath).ToList();

            //This loops over every line in the list of strings. 
            foreach (string line in lines)
            {
                Console.WriteLine(line);
            }



            File.WriteAllLines(filePath, lines);



            Console.ReadLine();
        }
    }
}

如何使用 streamreader 和 streamwriter 解析整个文件,并创建一个新文件来“吐出”我想要的数据,这就是我上面列出的内容。 我希望新数据文件以发票编号开头,该编号从 40 个字符开始,长度为 15 个字符 (40,15)。 非常感谢任何帮助或线索。 我被困了几个小时,不知道从哪里开始。

首先,没有像带有列的文本文件这样的东西。 文本文件只包含字符,不包含结构信息。

所以在你的文件中,可能有一些字符用作分隔符,最常用的是分号;

您完成了简单的部分:打开文件,读取所有行,然后写入新文件。

剩下的将在您的foreach循环内(假设您的文件使用列分隔符):

  • 使用此分隔符将字符串拆分为数组
  • 将要保留的数组部分放入另一个字符串
  • 将此行写入新文件

您可以逐行处理文件,并且不需要流。

它可能很简单

var newLines = lines.Select( l => l.Substring(40));

如果您需要处理输入文件(更改订单等),那么以下工具应该可以完成大部分工作:

  • string.Split
  • string.Substring - 第二个参数是长度,所以line.Substring(40,15)是发票号。

祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM