转换文本文件

时间:2016-02-06 06:44:58

标签: c# text-files

我有一个包含这些内容的文本文件。我将以创建的形式加载它。

5JB01141570J4450901            1000    1051    2000    01161501B10G610M0350M200  0000006

产生这个。

106262,5,JB,2015-01-14,70J4450901            ,1000    ,1051    ,2000    ,2015-01-16,0,1,B10G610M0350M200  ,6,, ,0,1/14/2015 3:06:16 PM

怎么能转换成它?

第一列是行计数,最后一列表示生成时的日期时间。

1 个答案:

答案 0 :(得分:0)

这可能是粗暴的方式,但请尝试调整以适应您的需要。你明白了。

using System;

namespace ConsoleApplication1
{
    internal class Program
    {
        private static string data1;
        private static int[] idx = new int[12] { 0, 1, 3, 9, 31, 39, 47, 55, 61, 62, 63, 81 };

        private static void Main(string[] args)
        {
            string dataInput = "5JB01141570J4450901            1000    1051    2000    01161501B10G610M0350M200  0000006";

            Console.WriteLine("RESULT :");

            for (int i = 0; i < idx.Length - 1; i++)
            {
                int len = idx[i + 1] - idx[i];

                //format date
                if (i == 2 | i == 7)
                {
                    DateTime dt = Convert.ToDateTime(dataInput.Substring(idx[i], len).Substring(0, 2) +
                        "/" + dataInput.Substring(idx[i], len).Substring(2, 2) +
                        "/" + dataInput.Substring(idx[i], len).Substring(4, 2));
                    data1 = data1 + dt.ToShortDateString() + ",";
                }
                else {
                    data1 = data1 + dataInput.Substring(idx[i], len) + ",";
                }
            }

            Console.WriteLine(data1 + DateTime.Now);

            Console.ReadKey();
        }
    }
}