将DateTime数据输出到我的结果文件

时间:2014-11-26 09:22:49

标签: c# arrays linq

我的第一个冗长的程序,从csv文件中读取电压并计算结果电流,已经映射了所有,并且似乎表现得很好,但是我自己在将它输出到results.txt文件时有点尴尬, date是一个字符串,但results.txt只想要类型整数,我该怎么办才能解决这个问题?非常欢迎任何帮助,这只是我第二周做c#所以要善良,

SB

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

class Program
{

    static void Main(string[] args)
    {

        string[,] TestLoads = new string[16, 8]    

                                                            //Enable, RQuies,   RSample, RWriteTx,   RDepass, RDischarge, DischargeDate, Discharge Time
                                                           {{  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2008-12-23",  "12:00:00" },//0 3
                                                            {  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2009-04-03",  "16:32:00" },//1 3
                                                            {  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2009-04-03",  "16:32:00" },//2 6
                                                            {  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2009-04-03",  "16:32:00" },//3 6
                                                            {  "1",  "475000",  "7560",  "100000000" , "383" ,  "1180" ,  "2009-04-03",  "16:32:00" },//4 csc93 12
                                                            {  "1",  "475000",  "7560",  "100000000" , "383" ,  "1180" ,  "2009-04-03",  "16:32:00" },//5 csc93 12
                                                            {  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2009-04-03",  "16:32:00" },//6 12
                                                            {  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2009-04-03",  "16:32:00" },//7 12
                                                            {  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2009-04-03",  "16:32:00" },//8 12
                                                            {  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2009-04-03",  "16:32:00" },//9 12 
                                                            {  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2009-04-03",  "16:32:00" },//10 continuing
                                                            {  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2009-04-03",  "16:32:00" },//11 na
                                                            {  "1",  "475000",  "7560",  "100000000" , "383" ,  "1180" ,  "2009-04-03",  "16:32:00" },//12 csc93 24
                                                            {  "1",  "475000",  "7560",  "100000000" , "383" ,  "1180" ,  "2009-04-03",  "16:32:00" },//13 csc93 24
                                                            {  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2009-04-03",  "16:32:00" },//14 24
                                                            {  "1",  "232000",  "3770",  "100000000" , "191" ,  "1180" ,  "2009-04-03",  "16:32:00" }};//15 24

        int[,] FileMap = new int[16, 5]    

                                                           //Vtop index, Results Row, Sample index, WriteTX index, Depass Index, ]
                                                           {{9 , 0, 41, 42, 73},
                                                            {10, 1, 43, 44, 74},
                                                            {11, 2, 45, 46, 75},
                                                            {12, 3, 47, 48, 76},
                                                            {13, 4, 49, 50, 77,},
                                                            {14, 5, 51, 52, 78,},
                                                            {15, 6, 53, 54, 79,},
                                                            {16, 7, 55, 56, 80,},
                                                            {25, 8, 57, 58, 81,},
                                                            {26, 9, 59, 60, 82,},
                                                            {27,10, 61, 62, 83,},
                                                            {28,11, 63, 64, 84,},
                                                            {29,12, 65, 66, 85,},
                                                            {30,13, 67, 68, 86,},
                                                            {31,14, 69, 70, 87,},
                                                            {32,15, 71, 72, 88,}};



        double Vtop;
        double IQuies;
        double RQuies;
        double ISample;
        double RSample;
        double IWriteTX;
        double RWriteTx;
        double IDepass;
        double RDepass;
        double IDischarge;
        double RDischarge;
        double WriteTXIndicator;
        double SampleIndicator;
        double DepassIndicator;
        int[] DischargeStatusFlag = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
        string DischargeDateTime;

        double[,] ResultsArray = new double[16, 9]; // Array in which all final details are to be held




        var reader = new StreamReader(File.OpenRead(@"C:\Users\SBoyle\Documents\Visual Studio 2010\Projects\1Day Test File\00 Dev1 2008-12-23 08-47-48.csv")); // Static for testing only, to be replaced by file filter code




        Console.WriteLine();
        Console.WriteLine();

        Console.WriteLine("Test started on {0}", (DateTime.Now));
        Console.WriteLine();
        Console.WriteLine();



        reader.ReadLine(); // skip headers, read and do nothing
        while (!reader.EndOfStream)
        {


            var line = reader.ReadLine();
            var values = line.Split(',');

            {



                for (int j = 0; j < 16; j++)
                {



                    SampleIndicator = Convert.ToSingle(values[FileMap[j, 2]]); // Mapping for Sample indicator
                    DepassIndicator = Convert.ToSingle(values[FileMap[j, 4]]);
                    WriteTXIndicator = Convert.ToSingle(values[FileMap[j, 3]]);

                    RQuies = Convert.ToDouble(TestLoads[j, 1]);
                    RSample = Convert.ToDouble(TestLoads[j, 2]);
                    RWriteTx = Convert.ToDouble(TestLoads[j, 3]);
                    RDepass = Convert.ToDouble(TestLoads[j, 4]);
                    RDischarge = Convert.ToDouble(TestLoads[j,5]);

                    DischargeDateTime = (values[0]);

                    Vtop = Convert.ToSingle(values[FileMap[j, 0]]);

                    if (Vtop < 5.4)

                    {

                        DischargeStatusFlag[j] = 1;
                        //ResultsArray[j, 7] = (values[j]);
                        Console.WriteLine("Cell Voltage dropped below 5.4v on {0} , Discharge status flag set", DischargeDateTime);

                    }

                    else if (Vtop >= 5.4)
                    {
                        IQuies = (Vtop / RQuies);          //Quiesecent load is in ohms, but summing V0,[09] x 32000 at this point for debugging
                        ResultsArray[j, 2] = (ResultsArray[j, 2] + IQuies);  //Add IQuiescent to ResultsArray Quiescent location containing previous IQuies value artefact





                        if (SampleIndicator == 1)
                        {



                            ISample = (Vtop / RSample);          //Sample load is in ohms
                            ResultsArray[j, 3] = (ResultsArray[j, 3] + ISample);  //Add ISample to ResultsArray Sample location containing previous ISample value artefact

                        }



                        if (DepassIndicator == 1)
                        {



                            IDepass = (Vtop / RDepass);          //Depass load is 191 ohms
                            ResultsArray[j, 5] = (ResultsArray[j, 5] + IDepass);  //Add IDepass to ResultsArray Depass location containing previous IDepass value artefact

                        }



                        if (WriteTXIndicator == 1)
                        {



                            IWriteTX = (Vtop / RWriteTx);          //WriteTX load is 0PEN ohms, suggest very high value to pass through
                            ResultsArray[j, 4] = (ResultsArray[j, 4] + IWriteTX);  //Add IWriteTX to ResultsArray WriteTX location containing previous IWriteTX value artefact


                        }
                    }
                    }

                }
            }








        using (StreamWriter outfile = new StreamWriter(@"C:\\ResultsArrayContent.txt"))
        {
            outfile.WriteLine("BatteryCell nnDevn Channel# ,nnDevn Start Date ,nnDevn Quiescent Total Coulombs ,nnDevn Sample Total Coulombs, nnDevn WriteTX Total Coulombs ,nnDevn Depass Total Coulombs ,nnDevn Discharge date start , nnDevn Discharge Date Completed (VTop<5.4volts), nnDevn Discharge Total Coulombs, nnDevn Cell/Battery delivered Total Coloumbs");
            for (int x = 0; x < 16; x++)
            {
                string content = "";
                for (int y = 0; y < 9; y++)
                {

                    content += ResultsArray[x, y] + ",";
                }

                outfile.WriteLine(content);
            }

        }

        Console.WriteLine("Test ended on {0}", (DateTime.Now));
        Console.ReadLine();


    }
}

0 个答案:

没有答案