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

问题描述 投票:0回答:2

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

  • 版本控制
  • 计划编号
  • Acct Number
  • 国家
  • 发票日期
  • 发票编号

这是我设置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)。非常感谢任何帮助或线索。我被困了几个小时,不知道从哪里开始。

c# text-files streamreader streamwriter
2个回答
0
投票

首先,没有诸如带有列的文本文件之类的东西。文本文件仅包含字符,不包含结构信息。

因此,在您的文件中,可能有一些字符用作分隔符,最常用的是分号;

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

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

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

0
投票

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

以下工具应完成大部分工作

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

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.