void SaveData()
        {
            if (_config == null)
            {
                ShowNotification(new GUIContent("配置文件为空!!!"));
                return;
            }

            string strFilePath = Application.dataPath + "/Resources/GameConfig/" + _config.name + ".csv";

            FileStream    fileStream = File.OpenWrite(strFilePath);
            CsvFileWriter write      = new CsvFileWriter(fileStream, System.Text.Encoding.Default);

            // 先把前三行的内容搞定
            SaveData_Line(rowType, write);
            SaveData_Line(rowParamName, write);
            SaveData_Line(rowParamCHName, write);
            // 具体数据
            foreach (var item in _dictData)
            {
                SaveData_Line(item.Value, write);
            }

            write.Close();
            Debug.Log("保存完成!!!!!!!!!!!");
        }
示例#2
0
        public void SaveTotalData(string filename)
        {
            if (gameObject.GetComponent <GameUpdater>().StageCount != 0)
            {
                // Write sample data to CSV file
                CsvFileWriter writer = new CsvFileWriter(getPath(filename));

                CsvRow row = new CsvRow();
                row.Add(string.Format("Stage"));
                row.Add(string.Format("SignName"));
                row.Add(string.Format("Stage Total"));
                row.Add(string.Format("Correct Total"));
                row.Add(string.Format("Missing Total"));
                writer.WriteRow(row);

                for (int i = 0; i < ExperimentList.Count; ++i)
                {
                    CsvRow nRow = new CsvRow();
                    nRow.Add(string.Format(gameObject.GetComponent <GameUpdater>().StageCount.ToString()));
                    nRow.Add(string.Format(ExperimentList[i].signName));
                    nRow.Add(string.Format(ExperimentList[i].sign_total.ToString()));
                    nRow.Add(string.Format(ExperimentList[i].sign_correct_total.ToString()));
                    nRow.Add(string.Format(ExperimentList[i].sign_missing_total.ToString()));
                    writer.WriteRow(nRow);
                }
                writer.Close();
            }
        }
        public void Generate()
        {
            foreach (IAdj adj in _adjs)
            {
                SortedList<DateTime, AdjRateDatum> adjRateData = CreateAdjRateData(adj);

                //String dir = Directory.GetCurrentDirectory();
                //String path = dir + "\\" + _excelAdjResultFileName;

                CsvFileWriter writer = new CsvFileWriter(String.Format("{0}_result.csv", adj.ToString()));
                WriteHeader(writer);

                foreach (KeyValuePair<DateTime, AdjRateDatum> datum in adjRateData)
                {
                    CsvRow row = new CsvRow();
                    row.Add(datum.Key.ToString("yyyy-MM-dd"));
                    row.Add(datum.Value.KospiRate.ToString("n5"));
                    row.Add(datum.Value.KtbRate.ToString("n5"));
                    row.Add(datum.Value.DollarRate.ToString("n5"));

                    writer.WriteRow(row);
                }

                writer.Close();
            }
        }
示例#4
0
        private async Task ExportToFile(IEnumerable <NytCountyDay> CountyDayInfo)
        {
            StorageFile csvFile = await ExportFolder?.CreateFileAsync(CountyDayInfo.FirstOrDefault().DateString + "-county-info.csv", Windows.Storage.CreationCollisionOption.ReplaceExisting);

            using (CsvFileWriter dataWriter = new CsvFileWriter(await csvFile.OpenStreamForWriteAsync()))
            {
                CsvRow headerRow = new CsvRow();
                headerRow.Add("fips");
                headerRow.Add("cases");
                headerRow.Add("deaths");
                headerRow.Add("cases7dayavg");
                headerRow.Add("deaths7dayavg");
                headerRow.Add("casesper100K");
                headerRow.Add("deathsper100K");
                dataWriter.WriteRow(headerRow);

                foreach (var county in CountyDayInfo)
                {
                    CsvRow nextRow = new CsvRow();
                    nextRow.Add(county.Fips);
                    nextRow.Add(county.Cases.ToString());
                    nextRow.Add(county.Deaths.ToString());
                    nextRow.Add(county.Cases7Avg.ToString());
                    nextRow.Add(county.Deaths7Avg.ToString());
                    nextRow.Add(county.Cases7AvgPer100K.ToString());
                    nextRow.Add(county.Deaths7AvgPer100K.ToString());
                    dataWriter.WriteRow(nextRow);
                }
                dataWriter.Close();
            }
        }
示例#5
0
        public static void WriteToCsvFile(this DataTable dataTable, string filePath)
        {
            CsvFileWriter writer = new CsvFileWriter(filePath);
            StringBuilder fileContent = new StringBuilder();

            CsvRow row = new CsvRow();
            foreach (var col in dataTable.Columns)
                row.Add(col.ToString());
            writer.WriteRow(row);

            foreach (DataRow dr in dataTable.Rows)
            {
                row = new CsvRow();

                foreach (var column in dr.ItemArray)
                {
                    row.Add(column.ToString());
                }

                writer.WriteRow(row);
            }
            writer.Close();
            dataTable = null;
            System.Console.WriteLine(string.Format("Done writing to {0}.", filePath));
        }
示例#6
0
        public void CloseCleansUp()
        {
            var csvWriterMock = new Mock <ICsvWriter>();

            csvWriterMock.Setup(x => x.Dispose());

            var sut = new CsvFileWriter(csvWriterMock.Object);

            sut.Close();

            csvWriterMock.Verify(x => x.Dispose(), Times.Once);
        }
 public void WriteToFile(String path)
 {
     CsvFileWriter writer = new CsvFileWriter(path);
     try
     {
         WriteHeader(writer);
         WriteBody(writer);
     }
     catch (System.Exception ex)
     {
         logger.Error(ex.ToString());
     }
     writer.Close();
 }
示例#8
0
        static int Main(string[] args)
        {
            var options = new Options();

            if (!CommandLine.Parser.Default.ParseArguments(args, options))
            {
                return(4);
            }

            if (options.Args.Count != 3)
            {
                Console.Write(options.GetUsage());
                return(5);
            }

            String sinterconf  = options.Args[0];
            String infilename  = options.Args[1];
            String outfilename = options.Args[2];

            String workingDir      = Path.GetDirectoryName(sinterconf);
            String filenameBase    = Path.GetFileNameWithoutExtension(sinterconf);
            String performanceFile = Path.Combine(workingDir, filenameBase + "._time.txt");

            JArray inputsArray  = parseCSVInputs(infilename);
            JArray outputsArray = new JArray();

            List <sinter_AppError> runStatuses    = null;
            List <List <object> >  ts_byRunNumber = null;

            SinterProcess sp = new SinterProcess();

            sp.runSeries(sinterconf, null, inputsArray, options.Relaunch, options.Timelimit, ref outputsArray, ref runStatuses, ref ts_byRunNumber);

            writeOutCsv(outfilename, outputsArray);

            CsvFileWriter csvWriter    = new CsvFileWriter(performanceFile);
            string        headerString = "Open Time, Sinter Sent Time, Send Time, Run Time, Receive Time, Sinter Recieve Time";

            csvWriter.WriteLine(headerString);

            for (int ii = 0; ii < inputsArray.Count; ++ii)
            {
                csvWriter.WriteRow((List <object>)ts_byRunNumber[ii]);
            }
            csvWriter.Close();

            Console.WriteLine("FINISHED. PRESS ENTER KEY TO EXIT PROGRAM.");
            Console.ReadLine();
            return(0);
        }
        public void WriteTo(String fileOutPath, PeriodicMarketDataCollection spot, 
            PeriodicMarketDataCollection future, TradingDirection spotDirection)
        {
            EventPointsFinder target = new EventPointsFinder();
            List<EventPoint> eventPoints = target.GetEventPoints(spot, future, spotDirection);
            CsvFileWriter writer = new CsvFileWriter(fileOutPath);

            WriteHeader(writer);
            WriteBody(writer, eventPoints);

            logger.Info("Write {0} complete...", fileOutPath);

            writer.Close();
        }
示例#10
0
        private async void SaveCsvBasingOnInputCsv(StorageFile csvFile, InputCsvData inputCsvData)
        {
            using (CsvFileWriter csvWriter = new CsvFileWriter(await csvFile.OpenStreamForWriteAsync()))
            {
                List <CsvRow> copiedRows = inputCsvData.GetCopiedDataRows();
                SetCoordinate(copiedRows);

                foreach (var row in copiedRows)
                {
                    csvWriter.WriteRow(row);
                }

                csvWriter.Close();
            }
        }
示例#11
0
        public void ToCsv()
        {
            const String kHeader = "CreditPolicyWithMA";
            String fileName = String.Format("{0}_{1}.csv", kHeader, DateTime.Now.ToString("yyyy_MM_dd HHmmssfff"));

            CsvFileWriter writer = new CsvFileWriter(fileName);
            WriteHeader(writer);
            foreach (LogRow log in _logs)
            {
                CsvRow row = new CsvRow();
                row.Add(log.CurDate.ToString("yyyy-MM-dd"));
                row.Add(log.KospiWeight.ToString());
                writer.WriteRow(row);
            }
            writer.Close();
        }
示例#12
0
        private async void SaveCsv(StorageFile csvFile)
        {
            // For overwrite file
            await FileIO.WriteBytesAsync(csvFile, new byte[0]);

            using (CsvFileWriter csvWriter = new CsvFileWriter(await csvFile.OpenStreamForWriteAsync()))
            {
                CsvRow firstRow = new CsvRow
                {
                    "Model"
                };
                csvWriter.WriteRow(firstRow);

                CsvRow secondRow = new CsvRow
                {
                    "Parameters",
                    "exist",
                    "LeftTop_x",
                    "LeftTop_y",
                    "RightBottom_x",
                    "RightBottom_y",
                    "PNG",
                    "Z_index"
                };
                csvWriter.WriteRow(secondRow);

                for (int i = 0; i < gIndexingFrameModels.Count; i++)
                {
                    CsvRow row = new CsvRow
                    {
                        "LED " + i.ToString(),
                        1.ToString(),     // exist
                        gIndexingFrameModels[i].Left.ToString(),
                        gIndexingFrameModels[i].Top.ToString(),
                        (gIndexingFrameModels[i].Right + 1).ToString(),
                        (gIndexingFrameModels[i].Bottom + 1).ToString(),
                        "",           // PNG
                        1.ToString(), // Z index
                    };
                    csvWriter.WriteRow(row);
                }

                csvWriter.Close();
            }
        }
示例#13
0
        /// <summary>
        /// Muudame kasutaja saldot. Vähendamisel anname summa miinusega.
        /// Kui pole piisavalt raha kontol saame tulemuseks -1.
        /// </summary>
        /// <param name="kasutaja"></param>
        /// <param name="SaldoMuutus"></param>
        /// <returns></returns>
        public float KasutajaSaldo(string kasutaja, float SaldoMuutus)
        {
            float j22k = KasutajaSaldo(kasutaja);


            if (SaldoMuutus < 0 && Math.Abs(SaldoMuutus) > j22k)
            {
                return(-1);
            }
            j22k += SaldoMuutus;

            // Kõigepealt loeme CSV faili sisse ja muudame soovitud rea.
            using (CsvFileReader lugeja = new CsvFileReader(failiNimi))
            {
                CsvRow rida = new CsvRow();
                int    i    = 0;
                while (lugeja.ReadRow(rida))
                {
                    if (rida[0] == kasutaja)
                    {
                        rida[3] = j22k.ToString().Replace(',', '.');
                    }
                    using (CsvFileWriter writer = new CsvFileWriter(failiNimi + ".txt", i != 0))
                    {
                        writer.WriteRow(rida);
                        writer.Close();
                    }
                    i++;
                }
                lugeja.Close();
            }

            // Nimetame loodud uue faili ümber vanaks failiks.
            if (File.Exists(failiNimi))
            {
                File.Delete(failiNimi);
            }
            File.Move(failiNimi + ".txt", failiNimi);


            return(j22k);
        }
示例#14
0
        //For test speed
        private int runAlgorithms()
        {
            controller.mAlgorithm = Algorithm.MidPoint_Line;
            CsvFileReader reader = new CsvFileReader("Testcase_Line.csv");
            CsvFileWriter writer = new CsvFileWriter("Midpoint_Line_Runtime.csv");
            CsvRow        row    = new CsvRow();
            Random        rnd    = new Random();
            int           count  = 0;

            while (reader.ReadRow(row))
            {
                if (row.Count == 4)
                {
                    int x1 = Int32.Parse(row[0]);
                    int y1 = Int32.Parse(row[1]);
                    int x2 = Int32.Parse(row[2]);
                    int y2 = Int32.Parse(row[3]);
                    controller.mShape = new Line(new Point(x1, y1), new Point(x2, y2));
                    Color color = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
                    try
                    {
                        Int64 runtime = this.DrawShape();
                        row.Add(String.Format(runtime.ToString()));
                        writer.WriteRow(row);
                        count++;
                    }
                    catch (Exception e)
                    {
                        Debug.WriteLine("failed at " + count.ToString());
                    }
                }
                else
                {
                    break;
                }
            }
            reader.Close();
            writer.Close();
            return(count);
        }
示例#15
0
        static void writeOutCsv(string outfilename, JArray outputsArray)
        {
            CsvFileReader inStream = new CsvFileReader(outfilename);
            List <object> headers  = new List <object>();

            inStream.ReadRow(headers);
            inStream.Close();

            CsvFileWriter outStream = new CsvFileWriter(outfilename);

            outStream.WriteRow(headers);
            foreach (JObject run in outputsArray)
            {
                JObject       thisOutputs = (JObject)run["outputs"];
                List <object> csvOutputs  = new List <object>();
                for (int ii = 0; ii < headers.Count; ++ii)
                {
                    csvOutputs.Add(thisOutputs[headers[ii]]["value"]);
                }
                outStream.WriteRow(csvOutputs);
            }
            outStream.Close();
        }
示例#16
0
        /// <summary>
        /// Loome uue kasutaja.
        /// Kontrllime, kas sellise nimega kasutajat juba olemas ei ole.
        /// Kui on anname vastseks FALSE. Kui õnnestus luua, on vastuseks TRUE.
        /// </summary>
        /// <param name="Kasutaja">Kasutaja nimi</param>
        /// <param name="Pin">Kasutaja PIN kood</param>
        /// <returns></returns>
        public bool UusKasutaja(string Kasutaja, string Pin)
        {
            string kontoNr = LeiaVabaKontoNr();

            if (!KasutajaOlemas(Kasutaja))
            {
                // lisame uue kasutaja, kui seda ei eksisteeri
                using (CsvFileWriter writer = new CsvFileWriter(failiNimi, true))
                {
                    CsvRow row = new CsvRow(); // loome uue rea
                    row.Add(Kasutaja);         // esimesena lisame ritta kasutaja nime
                    row.Add(Pin);              // teiseks pin koodi
                    row.Add(kontoNr);          // kolmandaks leiame kasutajale konto numbri
                    row.Add("0");              // Anname kasutajale 0 saldo

                    writer.WriteRow(row);      // kirjutame rea andmefaili
                    writer.Close();
                }

                return(true);
            }
            return(false);
        }
示例#17
0
        public void SaveStageData(string read_file, string new_fileName)
        {
            if (gameObject.GetComponent <GameUpdater>().StageCount != 0)
            {
                //Write sample data to CSV file
                CsvFileWriter writer = new CsvFileWriter(getPath(new_fileName));
                if (File.Exists(getPath(read_file)) == true)
                {
                    ReadData(ref writer, getPath(read_file));
                    File.Delete(getPath(read_file));
                }
                else
                {
                    CsvRow row = new CsvRow();

                    row.Add(string.Format("Stage"));
                    row.Add(string.Format("SignName"));
                    row.Add(string.Format("Stage Total"));
                    row.Add(string.Format("Stage Correct Total"));
                    row.Add(string.Format("Stage Missing Total"));
                    writer.WriteRow(row);
                }


                for (int i = 0; i < ExperimentList.Count; ++i)
                {
                    CsvRow nRow = new CsvRow();
                    nRow.Add(string.Format(gameObject.GetComponent <GameUpdater>().StageCount.ToString()));
                    nRow.Add(string.Format(ExperimentList[i].signName));
                    nRow.Add(string.Format(ExperimentList[i].key.ToString()));
                    nRow.Add(string.Format(ExperimentList[i].correct_count.ToString()));
                    nRow.Add(string.Format(ExperimentList[i].missing_count.ToString()));
                    writer.WriteRow(nRow);
                }
                writer.Close();
            }
        }
示例#18
0
    public void WriteHighScore()
    {
        CsvFileWriter writer = new CsvFileWriter("000001.csv");
        CsvRow        row    = new CsvRow();

        /*
         *
         *      Method for writing the high score from the game to a single value
         *      in a csv file that is empty so that no other high scores are overwritten.
         *      Enables keeping a temp file, a building file, and one to send to server
         *      (if gets to point of multi-threading and sending requests with multiple clients)
         *
         * Add the players name who belongs to this instantiation of PlayerObject
         * To the first row, and the points score in the second row, Then write the Row
         * to the CsvFileWriter IO and dispose and close the writer to prevent leaks.
         */
        row.Add(playerName);
        row.Add(string.Format("{0}", points));
        Console.Write(string.Format("You scored :{0}", points));
        writer.WriteRow(row);

        writer.Dispose();
        writer.Close();
    }
示例#19
0
 void RemainLongFileOut()
 {
     CsvFileWriter writer = new CsvFileWriter(_todayLongRemainFileName_Output);
     WriteRemainLongFileOutHeader(writer);
     foreach (KtbSpotPosition longPos in this.RemainLongs)
     {
         WriteRemainLongBody(longPos, writer);
     }
     writer.Flush();
     writer.Close();
 }
示例#20
0
 void LongFileOut()
 {
     CsvFileWriter writer = new CsvFileWriter(_curLongFileName_Output);
     foreach (KtbSpotPosition longPos in this.Longs)
     {
         WriteLongBody(longPos, writer);
     }
     writer.Flush();
     writer.Close();
 }
示例#21
0
        void DoneFileOut()
        {
            {
                CsvFileWriter writer = new CsvFileWriter(_todayDoneFileName_Output);
                WriteDoneFileOutHeader(writer);
                foreach (KtbSpotDonePosition done in this.Dones)
                {
                    WriteDoneBody(done, writer);
                }

                writer.Flush();
                writer.Close();
            }
            {
                CsvFileWriter writer = new CsvFileWriter(_curDoneFileName_Output);
                foreach (KtbSpotDonePosition done in this.Dones)
                {
                    WriteDoneBody(done, writer);
                }

                writer.Flush();
                writer.Close();
            }
        }
示例#22
0
        private void SaveCoordinates(string filename)
        {
            if (!Directory.Exists(Path.GetDirectoryName(filename)))
                Directory.CreateDirectory(Path.GetDirectoryName(filename));
            //filename = string.Format(filename + Path.DirectorySeparatorChar +
            //                 string.Format("sample{0}.csv", DateTime.Now.ToBinary()));
            CsvFileWriter writer = new CsvFileWriter(filename);
            for (int i = 0; i < winners.Count; i++)
            {
                CsvRow row = new CsvRow();
                SOM.Neuron n = winners[i];
                row.Add(n.X);
                row.Add(n.Y);

                if (labels[i].Contains("A"))
                {
                    row.Add(1);
                }
                else if (labels[i].Contains("B"))
                {
                    row.Add(2);
                }
                else if (labels[i].Contains("C"))
                {
                    row.Add(3);
                }
                else if (labels[i].Contains("Neutral"))
                {
                    row.Add(4);
                }
                writer.WriteRow(row);
                writer.Flush();
            }
            writer.Close();
        }
示例#23
0
    public void FillHighScores()
    {
        //Row to read values from Other files(dataset, new high score in 000001.csv)
        CsvRow readerRow;
        //Row to insert values into CsvFileWriter below for HighScoreFile good copy
        CsvRow row = new CsvRow();
        //Reader Object for New High Score (or old if run early)
        CsvFileReader reader = new CsvFileReader("HighScoreFile.csv");
        //Array of Player Objects to fill with readerRow's values read
        List <PlayerObject> pastPlayers = new List <PlayerObject> ();

        //Loop through the reader till the end
        while (!reader.EndOfStream)
        {
            //if (reader.BaseStream.ReadByte() == -1)
            //	break;
            //Build a new player Object to fill
            PlayerObject obj = new PlayerObject();
            //Instatiate the CsvRow
            readerRow = new CsvRow();
            //Build a string array to hold the CsvRow values
            string[] list = new string[2];
            //Read the rows and Copy the data to the array
            reader.ReadRow(readerRow);
            readerRow.CopyTo(list);
            //Check for "Player" as the first column and skip it
            if (list [0].ToString().Contains("Player"))
            {
                continue;
            }

            //Set player names by formatting the string, and parsing to a float
            obj.setPlayerName(string.Format("{0}", list[0].ToString()));
            obj.setPoints(float.Parse(list [1]));
            //Add the player Object to the array
            pastPlayers.Add(obj);
            readerRow.Clear();
        }        //End of while loop

        reader.Dispose();
        reader.Close();

        //Reader to loop through Dataset for run just taken. Keeps the values safe.
        reader = new CsvFileReader("000001.csv");

        while (!reader.EndOfStream)
        {
            PlayerObject obj = new PlayerObject();
            readerRow = new CsvRow();
            string[] list = new string[2];
            //Read the rows and Copy the data to the array
            reader.ReadRow(readerRow);
            readerRow.CopyTo(list);
            //Set player names by formatting the string, and parsing to a float
            obj.setPlayerName(string.Format("{0}", list [0].ToString()));
            obj.setPoints(float.Parse(list [1]));
            //Add the player Object to the array
            pastPlayers.Add(obj);
            readerRow.Clear();
        }

        reader.Dispose();
        reader.Close();
        //Reader to loop through Dataset given for assignment, which pulls the values
        //of the name of the commodity in the list, and the value of the commodity.
        //It has taken a shortened version, at the behest of Professor Stanley Pieda
        //when asked if I needed to keep the 100K+ file or revise it slightly.

        /*reader = new CsvFileReader ("000000.csv");
         *
         * while(!reader.EndOfStream){
         *
         *      PlayerObject obj = new PlayerObject();
         *      readerRow = new CsvRow();
         *      string[] list = new string[6];
         *
         *      reader.ReadRow (readerRow);
         *      readerRow.CopyTo(list);
         *      obj.setPlayerName(string.Format("{0}", list [2].ToString ()));
         *      obj.setPoints (float.Parse(list[5]));
         *
         *      pastPlayers.Add(obj);
         *      readerRow.Clear ();
         * }
         *
         * reader.Dispose ();
         * reader.Close ();
         */
        //CsvFileWriter Object to write the high score objects to the csv file
        CsvFileWriter writer = new CsvFileWriter("HighScoreFile.csv");

        //Adding the headers for Player and Score in the table
        row.Add(string.Format("Player"));
        row.Add(string.Format("Score"));
        //Writing it to the file, and clearing the row which was written
        writer.WriteRow(row);
        row.Clear();

        pastPlayers.Sort((x, y) => y.points.CompareTo(x.points));
        //Looping through the number of playerObjects in the List. Printing each one
        //To it's own row and clearing that row after it's written.
        for (int i = 0; i < pastPlayers.Count; i++)
        {
            row.Add(string.Format("{0}", pastPlayers[i].getPlayerName()));
            row.Add(string.Format("{0}", pastPlayers[i].getPoints()));
            writer.WriteRow(row);
            row.Clear();
        }
        //Clean up the writers
        writer.Dispose();
        writer.Close();

        //pastPlayers.Sort (0,pastPlayers.Count,pastPlayers [0].points);
    }
示例#24
0
        void PbTLog_FileOut()
        {
            const string kSubFolder = @"pb_tlog\";
            string fileName = String.Format("{0}_pb_tlog.csv", _today.ToString("yyyy_MM_dd"));
            string path = String.Format("{0}{1}{2}", kFolder, kSubFolder, fileName);

            CsvFileWriter writer = new CsvFileWriter(path);

            //TODO

            writer.Flush();
            writer.Close();
        }
示例#25
0
        /// <summary>
        /// Main
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        static int Main(string[] args)
        {
            var options = new Options();

            if (!CommandLine.Parser.Default.ParseArguments(args, options))
            {
                return(4);
            }

            if (options.Args.Count != 3)
            {
                Console.Write(options.GetUsage());
                return(5);
            }

            String sinterconf  = options.Args[0];
            String infilename  = options.Args[1];
            String outfilename = options.Args[2];

            String workingDir      = Path.GetDirectoryName(sinterconf);
            String filenameBase    = Path.GetFileNameWithoutExtension(sinterconf);
            String performanceFile = Path.Combine(workingDir, filenameBase + "._time.txt");

            StreamReader inStream = new StreamReader(infilename);

            //So, at the end of this we should have 1 or more input sets in the JArray inputsArray
            //The console version reads in json, the actual version just pulls the dictionary from the database
            string injson       = "";
            JToken inputJToken  = null;
            JArray inputsArray  = null; //Will be set if the input file is a set of runs
            JArray outputsArray = new JArray();

            try
            {
                injson      = inStream.ReadToEnd();
                inputJToken = JToken.Parse(injson);
                if (inputJToken is JArray)
                {
                    inputsArray = (JArray)inputJToken;
                }
                else if (inputJToken is JObject)
                {   //Console Sinter is expecting a JArray in the same format as the Gateway takes.  [ { Input = {...} }, { { Inputs = {...} } ]
                    inputsArray = new JArray();
                    JObject singleInputDict = (JObject)inputJToken;
                    JObject outterDict      = new JObject();
                    outterDict.Add("inputs", singleInputDict);
                    inputsArray.Add(outterDict);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception while running simulation: " + ex.Message);
            }
            finally
            {
                inStream.Close();
            }


            List <sinter_AppError> runStatuses    = null;
            List <List <object> >  ts_byRunNumber = null;

            //
            // NOTE: Implementation Detail WORKING DIRECTORY MUST CONTAIN SinterConfig File
            //
            SinterProcess sp = new SinterProcess();

            sp.runSeries(sinterconf, null, inputsArray,
                         options.Relaunch, options.Timelimit, ref outputsArray, ref runStatuses, ref ts_byRunNumber);

            JsonSerializerSettings jss = new JsonSerializerSettings();

            jss.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            string       jsonOutput = JsonConvert.SerializeObject(outputsArray, Formatting.Indented, jss);
            StreamWriter outStream  = new StreamWriter(outfilename);

            outStream.WriteLine(jsonOutput);
            outStream.Close();

            CsvFileWriter csvWriter    = new CsvFileWriter(performanceFile);
            string        headerString = "Open Time, Sinter Sent Time, Send Time, Run Time, Receive Time, Sinter Recieve Time";

            csvWriter.WriteLine(headerString);

            for (int ii = 0; ii < inputsArray.Count; ++ii)
            {
                csvWriter.WriteRow((List <object>)ts_byRunNumber[ii]);
            }
            csvWriter.Close();

            Console.WriteLine("FINISHED. PRESS ENTER KEY TO EXIT PROGRAM.");
            Console.ReadLine();
            return(0);
        }
示例#26
0
        public void ToCsv(String header)
        {
            String fileName = String.Format("Output\\{0}_{1}.csv", header, DateTime.Now.ToString("yyyy_MM_dd HHmmssfff"));

            logger.Info("ToCsv start. {0}", fileName);

            CsvFileWriter writer = new CsvFileWriter(fileName);
            WriteHeader(writer);

            DateTime curDate = InputData.StartDate;

            MarketData kospiFuture = this.MarketData.GetData(MarketDataSetKey.KospiFuture);
            MarketData ktbFuture = this.MarketData.GetData(MarketDataSetKey.KtbFuture);
            MarketData dollarFuture = this.MarketData.GetData(MarketDataSetKey.DollarFuture);

            while (curDate <= InputData.EndDate)
            {
                if (PnL.IsExistDate(curDate) && AssetLog.IsExistDate(curDate))
                {
                    CsvRow row = new CsvRow();
                    row.Add(curDate.ToString("yyyy-MM-dd"));
                    AssetRateDatum datum = this.AssetLog.GetData(curDate);
                    row.Add(String.Format("{0:n4}", datum.KospiRate));
                    row.Add(String.Format("{0:n4}", datum.KtbRate));
                    row.Add(String.Format("{0:n4}", datum.DollarRate));

                    row.Add(String.Format("{0:n2}", kospiFuture.GetData(curDate).OHLC.Close));
                    row.Add(String.Format("{0:n2}", ktbFuture.GetData(curDate).OHLC.Close));
                    row.Add(String.Format("{0:n2}", dollarFuture.GetData(curDate).OHLC.Close));

                    row.Add(String.Format("{0:n0}", PnL.GetDailyPnL(curDate).Item2));
                    row.Add(String.Format("{0:n0}", PnL.GetDailyPnL(curDate).Item3));
                    row.Add(String.Format("{0:n0}", PnL.GetDailyPnL(curDate).Item4));
                    row.Add(String.Format("{0:n0}", PnL.GetDailyPnL(curDate).Item1));
                    row.Add(String.Format("{0:n0}", PnL.GetCumPnL(curDate)));

                    row.Add(String.Format("{0:n2}", kospiFuture.GetData(curDate).OHLC.Open));
                    row.Add(String.Format("{0:n2}", ktbFuture.GetData(curDate).OHLC.Open));
                    row.Add(String.Format("{0:n2}", dollarFuture.GetData(curDate).OHLC.Open));

                    AddAdjBody(row, curDate);

                    writer.WriteRow(row);
                }
                curDate = curDate.AddDays(1);
            }
            writer.Close();

            logger.Info("ToCsv complete. {0}", fileName);
        }
示例#27
0
 public void ToCsv(String path)
 {
     CsvFileWriter writer = new CsvFileWriter(path);
     List<String> headers = WriteHeader(writer);
     WriteBody(headers, writer);
     writer.Flush();
     writer.Close();
 }
示例#28
0
        public static void _ExecuteSelect(int timeout, IDbConnection conn, string cmdText, string tableName)
        {
            DateTime started = DateTime.Now;
            IDataReader reader = null;
            IDbCommand cmd = null;
            bool bConnOpenedHere = HelperFunctions.EnsureConnectionOpen(conn);
            IDbTransaction transaction = conn.BeginTransaction();
            // DataSet retv = new DataSet();
            try
            {
                cmd = conn.CreateCommand();
                cmd.CommandTimeout = timeout;
                cmd.Transaction = transaction;
                cmd.CommandText = cmdText;

                /*
                DbType[] reqLenTypes = new DbType[] { DbType.AnsiString, DbType.AnsiStringFixedLength, DbType.String, DbType.StringFixedLength, DbType.Binary, DbType.Object, DbType.Xml };
                for (int i = 0; i < paramList.Length; i++)
                {
                    IDbDataParameter idb = cmd.CreateParameter();
                    cmd.Parameters.Add(HelperFunctions.BuildParameter(idb, paramList[i]));
                    if (reqLenTypes.Contains(idb.DbType))
                    {
                        if (idb is OdbcParameter)
                        {
                            (idb as OdbcParameter).Size = paramList[i].Size;
                        }
                    }
                }

                */

                DataTable dt;
                reader = cmd.ExecuteReader();
                string retStr = string.Empty;

                if (reader.FieldCount > 0)
                {
                    dt = new DataTable(tableName);
                    // retv.Tables.Add(dt = new DataTable(tableName));
                    // retv.Tables.Add(reader.GetSchemaTable());
                    DataTable schemaTable = reader.GetSchemaTable();
                    Helpers.DataTableExtensions.WriteToCsvFile(schemaTable, string.Format("{0}{1}.{2}",cBaseSqlDir, tableName + "_schema", cFileExt));
                    CsvFileWriter csvFileWriter = new CsvFileWriter(string.Format("{0}{1}.{2}", cBaseSqlDir, tableName + "_data", cFileExt));
                    bool columnsBuilt = false;
                    while (reader.Read())
                    {
                        if (columnsBuilt == false)
                        {
                            HelperFunctions.BuildColumnData(dt, reader);
                            columnsBuilt = true;
                        }
                        // Old Function but Memory Exhausted
                        // HelperFunctions.AddDataRow(dt, reader);

                        // New Function write every row
                        CsvRow row = new CsvRow();
                        HelperFunctions.AddDataRowCSVWriter(row, reader);
                        csvFileWriter.WriteRow(row);

                    }
                    retStr += string.Format("Count:{0}=Columns:{1},Rows:{2}", tableName, reader.FieldCount, csvFileWriter.Length());
                    // Old Function
                    // Helpers.DataTableExtensions.WriteToCsvFile(dt, string.Format("{0}{1}.{2}", cBaseSqlDir, tableName + "_data", cFileExt));
                    // MessageBox.Show(retStr);

                    // New Function
                    csvFileWriter.Close();
                    Console.WriteLine(retStr);
                }
                transaction.Commit();
                /*
                for (int i = 0; i < paramList.Length; i++)
                {
                    IDbDataParameter p = (IDbDataParameter)cmd.Parameters[i];
                    if (p.Direction != ParameterDirection.Input)
                    {
                        paramList[i].OutValue = p.Value;
                    }
                }
                */
            }
            catch (Exception e)
            {
                transaction.Rollback();
                HelperFunctions.LogException(e, false);
                throw e;
            }
            finally
            {
                if (reader != null)
                {
                    if (!reader.IsClosed)
                        reader.Close();
                    reader.Dispose();
                }
                if (cmd != null)
                {
                    cmd.Dispose();
                }
                if (bConnOpenedHere)
                {
                    conn.Close();
                }
            }

            // return retv;
        }
示例#29
0
        public void ToCsv()
        {
            const String kHeader = "DeltaVolAdj";
            String fileName = String.Format("{0}_{1}.csv", kHeader, DateTime.Now.ToString("yyyy_MM_dd HHmmssfff"));

            CsvFileWriter writer = new CsvFileWriter(fileName);
            WriteHeader(writer);

            string prevKtbValue = "1";
            string prevdollarValue = "1";
            foreach (KeyValuePair<DateTime, double> pair in _kospiFutureWeight)
            {
                CsvRow row = new CsvRow();
                row.Add(pair.Key.ToString("yyyy-MM-dd"));
                row.Add(pair.Value.ToString());
                if (_ktbFutureWeight.ContainsKey(pair.Key))
                {
                    row.Add(_ktbFutureWeight[pair.Key].ToString());
                    prevKtbValue = _ktbFutureWeight[pair.Key].ToString();
                }
                else
                {
                    row.Add(prevKtbValue);
                }

                if (_dollarFutreWeight != null)
                {
                    if (_dollarFutreWeight.ContainsKey(pair.Key))
                    {
                        row.Add(_dollarFutreWeight[pair.Key].ToString());
                        prevdollarValue = _dollarFutreWeight[pair.Key].ToString();
                    }
                    else
                    {
                        row.Add(prevdollarValue);
                    }
                }
                writer.WriteRow(row);
            }
            writer.Close();
        }
示例#30
0
        void Done_FileOut()
        {
            const string kSubFolder = @"dones\";
            string fileName = String.Format("{0}_dones.csv", _today.ToString("yyyy_MM_dd"));
            string path = String.Format("{0}{1}{2}", kFolder, kSubFolder, fileName);

            CsvFileWriter writer = new CsvFileWriter(path);
            WriteDoneFileOutHeader(writer);
            foreach (KtbSpotDonePosition done in this.Dones)
            {
                WriteDoneBody(done, writer);
            }

            writer.Flush();
            writer.Close();
        }
        void ReportStatistic()
        {
            List<PropReport> reports = GetReports();
            // header : key, cum_pnl, avgInvestment, pnl_rate

            CsvFileWriter writer = new CsvFileWriter(String.Format("C:\\report\\statistic_{0}.csv", this.Key));
            WriteHeader(writer);
            WriteBody(writer, reports);
            writer.Flush();
            writer.Close();
        }
示例#32
0
        void RemainLong_FileOut()
        {
            const string kSubFolder = @"remains\";
            string fileName = String.Format("{0}_remains.csv", _today.ToString("yyyy_MM_dd"));
            string remains_path = String.Format("{0}{1}{2}", kFolder, kSubFolder, fileName);

            CsvFileWriter writer = new CsvFileWriter(remains_path);
            WriteRemainLongFileOutHeader(writer);
            foreach (KtbSpotPosition longPos in this.RemainLongs)
            {
                WriteRemainLongBody(longPos, writer);
            }
            writer.Flush();
            writer.Close();
        }
示例#33
0
        public static void _ExecuteSelect(int timeout, IDbConnection conn, string cmdText, string tableName)
        {
            DateTime       started         = DateTime.Now;
            IDataReader    reader          = null;
            IDbCommand     cmd             = null;
            bool           bConnOpenedHere = HelperFunctions.EnsureConnectionOpen(conn);
            IDbTransaction transaction     = conn.BeginTransaction();

            // DataSet retv = new DataSet();
            try
            {
                cmd = conn.CreateCommand();
                cmd.CommandTimeout = timeout;
                cmd.Transaction    = transaction;
                cmd.CommandText    = cmdText;

                /*
                 * DbType[] reqLenTypes = new DbType[] { DbType.AnsiString, DbType.AnsiStringFixedLength, DbType.String, DbType.StringFixedLength, DbType.Binary, DbType.Object, DbType.Xml };
                 * for (int i = 0; i < paramList.Length; i++)
                 * {
                 *  IDbDataParameter idb = cmd.CreateParameter();
                 *  cmd.Parameters.Add(HelperFunctions.BuildParameter(idb, paramList[i]));
                 *  if (reqLenTypes.Contains(idb.DbType))
                 *  {
                 *      if (idb is OdbcParameter)
                 *      {
                 *          (idb as OdbcParameter).Size = paramList[i].Size;
                 *      }
                 *  }
                 * }
                 *
                 */

                DataTable dt;
                reader = cmd.ExecuteReader();
                string retStr = string.Empty;

                if (reader.FieldCount > 0)
                {
                    dt = new DataTable(tableName);
                    // retv.Tables.Add(dt = new DataTable(tableName));
                    // retv.Tables.Add(reader.GetSchemaTable());
                    DataTable schemaTable = reader.GetSchemaTable();
                    Helpers.DataTableExtensions.WriteToCsvFile(schemaTable, string.Format("{0}{1}.{2}", cBaseSqlDir, tableName + "_schema", cFileExt));
                    CsvFileWriter csvFileWriter = new CsvFileWriter(string.Format("{0}{1}.{2}", cBaseSqlDir, tableName + "_data", cFileExt));
                    bool          columnsBuilt  = false;
                    while (reader.Read())
                    {
                        if (columnsBuilt == false)
                        {
                            HelperFunctions.BuildColumnData(dt, reader);
                            columnsBuilt = true;
                        }
                        // Old Function but Memory Exhausted
                        // HelperFunctions.AddDataRow(dt, reader);

                        // New Function write every row
                        CsvRow row = new CsvRow();
                        HelperFunctions.AddDataRowCSVWriter(row, reader);
                        csvFileWriter.WriteRow(row);
                    }
                    retStr += string.Format("Count:{0}=Columns:{1},Rows:{2}", tableName, reader.FieldCount, csvFileWriter.Length());
                    // Old Function
                    // Helpers.DataTableExtensions.WriteToCsvFile(dt, string.Format("{0}{1}.{2}", cBaseSqlDir, tableName + "_data", cFileExt));
                    // MessageBox.Show(retStr);

                    // New Function
                    csvFileWriter.Close();
                    Console.WriteLine(retStr);
                }
                transaction.Commit();

                /*
                 * for (int i = 0; i < paramList.Length; i++)
                 * {
                 *  IDbDataParameter p = (IDbDataParameter)cmd.Parameters[i];
                 *  if (p.Direction != ParameterDirection.Input)
                 *  {
                 *      paramList[i].OutValue = p.Value;
                 *  }
                 * }
                 */
            }
            catch (Exception e)
            {
                transaction.Rollback();
                HelperFunctions.LogException(e, false);
                throw e;
            }
            finally
            {
                if (reader != null)
                {
                    if (!reader.IsClosed)
                    {
                        reader.Close();
                    }
                    reader.Dispose();
                }
                if (cmd != null)
                {
                    cmd.Dispose();
                }
                if (bConnOpenedHere)
                {
                    conn.Close();
                }
            }

            // return retv;
        }