예제 #1
0
        public static async void Run(int delay, bool dispalyP2P)
        {
            var paths = new[]
            {
                @".\Homework\Class 3\Test Data\1-240-12.csv",
                @".\Homework\Class 3\Test Data\233-12.csv",
                @".\Homework\Class 3\Test Data\239-12.csv"
            };

            foreach (var path in paths)
            {
                try
                {
                    Console.Clear();
                    Console.WriteLine($"# File: {Path.GetFileName(path)}");

                    var csv = CommaSeparatedValues <PressureNode> .Load(
                        csvFilePath : path,
                        converter : x => new PressureNode(TimeSpan.FromSeconds(double.Parse(x[0])), double.Parse(x[1])));

                    var analyzer = new PressureAnalyzer(new QuickSort <PressureNode>(x => (decimal)x.TimeStamp.TotalMilliseconds));

                    var result = analyzer.Analyze(csv);

                    Console.WriteLine(result.PrettyPrint(dispalyP2P));
                    await Task.Delay(delay);
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e);
                }
            }
        }
예제 #2
0
        public override IEnumerator ReceivePayload(VisualPayload payload)
        {
            foreach (var entry in CommaSeparatedValues.GetEntries(payload.Data))
            {
                string csvString = CommaSeparatedValues.GetValue(entry);

                if (string.IsNullOrEmpty(csvString))
                {
                    yield break;
                }

                var values = csvString.Split(',');

                NumberOfElementsTarget.SetValue(values.Length, entry);

                foreach (var value in values)
                {
                    SingleEntryTarget.SetValue(value, entry);

                    var iterator = PerEntryState.Transmit(payload);
                    while (iterator.MoveNext())
                    {
                        yield return(null);
                    }
                }
            }
        }
        /// <summary>
        /// Query
        /// </summary>
        public static IEnumerable <string[]> Query(string dataset, string apiKey, int version)
        {
            if (null == dataset)
            {
                throw new ArgumentNullException(nameof(dataset));
            }
            else if (version <= 0)
            {
                version = 3;
            }

            string address = $"https://www.quandl.com/api/v{version}/datasets/{dataset}.csv";

            if (string.IsNullOrEmpty(apiKey))
            {
                apiKey = ApiKey;
            }

            if (!string.IsNullOrEmpty(apiKey))
            {
                address += $"?api_key={apiKey}";
            }

            HttpClient httpClient = Dependencies.GetServiceRequired <HttpClient>();

            using var response  = httpClient.GetAsync(address).Result;
            using Stream stream = response.Content.ReadAsStreamAsync().Result;

            foreach (var record in CommaSeparatedValues.ParseCsv(stream, ',', '"', Encoding.UTF8))
            {
                yield return(record);
            }
        }
        /// <summary>
        /// Query
        /// </summary>
        public static async Task <string[][]> QueryAsync(string dataset, string apiKey, int version)
        {
            if (null == dataset)
            {
                throw new ArgumentNullException(nameof(dataset));
            }
            else if (version <= 0)
            {
                version = 3;
            }

            string address = $"https://www.quandl.com/api/v{version}/datasets/{dataset}.csv";

            if (string.IsNullOrEmpty(apiKey))
            {
                apiKey = ApiKey;
            }

            if (!string.IsNullOrEmpty(apiKey))
            {
                address += $"?api_key={apiKey}";
            }

            HttpClient httpClient = Dependencies.GetServiceRequired <HttpClient>();

            using var response = await httpClient.GetAsync(address).ConfigureAwait(false);

            using Stream stream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false);

            return(await Task <string[][]> .Run(() => CommaSeparatedValues
                                                .ParseCsv(stream, ',', '"', Encoding.UTF8)
                                                .ToArray()).ConfigureAwait(false));

            //return CommaSeparatedValues.ParseCsv(stream, ',', '"', Encoding.UTF8).ToArray();
        }
예제 #5
0
        /// <summary>
        /// Read Csv
        /// </summary>
        public static async IAsyncEnumerable <string[]> ReadCsvAsync(string address,
                                                                     Encoding encoding = null,
                                                                     char delimiter    = ',',
                                                                     char quotation    = '"',
                                                                     [EnumeratorCancellation] CancellationToken token = default)
        {
            if (address is null)
            {
                throw new ArgumentNullException(nameof(address));
            }

            encoding ??= Encoding.Default;

            using Stream stream = await Client.GetStreamAsync(address, token).ConfigureAwait(false);

            using StreamReader reader = new(stream, encoding, true, -1, true);

            IEnumerable <string> Lines()
            {
                for (string line = reader.ReadLine(); line is not null; line = reader.ReadLine())
                {
                    token.ThrowIfCancellationRequested();

                    yield return(line);
                }
            }

            foreach (string[] record in CommaSeparatedValues.ParseCsv(Lines(), delimiter, quotation))
            {
                token.ThrowIfCancellationRequested();

                yield return(record);
            }
        }
예제 #6
0
        static void Main(string[] args)
        {
            List <Process> list   = Process.GetProcesses().ToList();
            DataTable      dt     = CollectionHelper.ConvertToDataTable(list);
            string         result = CommaSeparatedValues.ConvertDataTableToCsv(dt, ';', true);

            DataSet ds = Database.ExecuteQuery("System.Data.OleDb",
                                               @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\ima\Desktop\Ressourcenplanung\Ressourcenplanung.mdb",
                                               "SELECT * FROM tPlan WHERE Ausfuhrender = 'IMA' ORDER BY Status");
        }
예제 #7
0
        static void Main(string[] args)
        {
            //validate input parameters
            if (!ValidateParamsLength(args))
            {
                return;
            }

            //read input parameters
            string path = args[0];
            int    filterColumnIndex = 0;
            string filterColumnValue = null;

            if (args.Length == 3)
            {
                if (!Int32.TryParse(args[1], out filterColumnIndex) || filterColumnIndex < 1)
                {
                    ReportError($"Param {filterColumnIndexParamName} must be an integer, starting from 1.");
                    return;
                }

                filterColumnValue = args[2];
            }

            try
            {
                //read file
                CSVFileParser        parser  = new CSVFileParser(path);
                CommaSeparatedValues csvData = parser.Read();

                //output to console depending on input parameters
                if (filterColumnValue == null)
                {
                    Console.Write(csvData.ToString());
                }
                else
                {
                    //validate filterColumnIndex
                    if (filterColumnIndex < 1 || filterColumnIndex > csvData.ColumnsCount)
                    {
                        throw new IndexOutOfRangeException(string.Format("{0} is out of range.", nameof(filterColumnIndex)));
                    }
                    int filterColumnIndex0Based = filterColumnIndex - 1;
                    Console.Write(csvData.ToString(filterColumnIndex0Based, filterColumnValue));
                }

                Console.WriteLine("Press any key to exit.");
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                Console.WriteLine(string.Format("Error during processing. Exception message: {0} ", ex.Message));
            }
        }
    static void Main(string[] args)
    {
        string commaSeparatedSample = "a,b,c,d,efg";
        CommaSeparatedValues commaSeparatedValues = new CommaSeparatedValues(commaSeparatedSample);

        Console.WriteLine(commaSeparatedValues);

        List <string> list = new List <string>();

        list.Add("Fred");
    }
예제 #9
0
        public void ConvertDataTableToCsvTest()
        {
            // Arrange
            List <Process> list = Process.GetProcesses().ToList();
            DataTable      dt   = CollectionHelper.ConvertToDataTable(list);

            // Act
            string result = CommaSeparatedValues.ConvertDataTableToCsv(dt, ';', true);

            // Assert
        }
예제 #10
0
        public void TestRead(string inputFilePath, string[][] expectedCSVFields, Encoding encoding)
        {
            CSVFileParser        parser = new CSVFileParser(Path.Combine(Helper.GetAssemblyPath(), inputFilePath), encoding);
            CommaSeparatedValues csv    = parser.Read();

            Assert.AreEqual(expectedCSVFields.Length > 0 ? expectedCSVFields[0].Length : 0, csv.ColumnsCount);
            Assert.AreEqual(expectedCSVFields.Length, csv.RowsCount);

            for (int i = 0; i < expectedCSVFields.Length; i++)
            {
                for (int j = 0; j < expectedCSVFields[i].Length; j++)
                {
                    Assert.AreEqual(expectedCSVFields[i][j], csv.GetField(i, j));
                }
            }
        }
예제 #11
0
        protected override void OnProcessOutputSchema(MutableObject newSchema)
        {
            var csv      = CommaSeparatedValues.GetFirstValue(newSchema);
            int csvFirst = 0;

            if (!int.TryParse(csv, out csvFirst))
            {
                csvFirst = csv.Contains(',')
                ? int.Parse(csv.Split(',').First())
                : int.Parse(csv.Split('.').First());
            }

            SingleEntryTarget.SetValue(csvFirst, newSchema);
            NumberOfElementsTarget.SetValue(1, newSchema);

            Router.TransmitAllSchema(newSchema);
        }
예제 #12
0
        public void TestGetRow(string[][] inputValues, int columnIndex, string fieldValue, string[] expectedResult)
        {
            //init CSV
            CommaSeparatedValues csv = new CommaSeparatedValues();

            for (int i = 0; i < inputValues.Length; i++)
            {
                csv.AddRow(inputValues[i].ToList <string>());
            }

            List <string> actualResult = csv.GetRow(columnIndex, fieldValue);

            Assert.AreEqual(expectedResult.Length, actualResult.Count);
            for (int i = 0; i < expectedResult.Length; i++)
            {
                Assert.AreEqual(expectedResult[i], actualResult[i]);
            }
        }
예제 #13
0
 public CommaSeparatedValuesDebuggerProxy(CommaSeparatedValues commaSeparatedValues)
 {
     m_commaSeparatedValues = commaSeparatedValues;
 }
예제 #14
0
 public CommaSeparatedValuesBinderAdapter(CommaSeparatedValues <string> model)
 {
     this.model = model;
 }