예제 #1
0
        static void ConfigFirstApproachReadAsTypedRecords()
        {
            ChoFixedLengthRecordConfiguration config = new ChoFixedLengthRecordConfiguration();

            config.FixedLengthRecordFieldConfigurations.Add(new ChoFixedLengthRecordFieldConfiguration("Id", 0, 8)
            {
                FieldType = typeof(int)
            });
            config.FixedLengthRecordFieldConfigurations.Add(new ChoFixedLengthRecordFieldConfiguration("Name", 8, 10)
            {
                FieldType = typeof(string)
            });

            EmployeeRecSimple row = null;

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoFixedLengthReader <EmployeeRecSimple>(reader, config).WithFirstLineHeader())
                        {
                            writer.WriteLine("Id      Name      ");
                            writer.WriteLine("1       Carl      ");
                            writer.WriteLine("2       Mark      ");
                            writer.Flush();
                            stream.Position = 0;

                            while ((row = parser.Read()) != null)
                            {
                                Console.WriteLine(row.ToStringEx());
                            }
                        }
        }
예제 #2
0
        static void CodeFirstWithDeclarativeApproach()
        {
            object row = null;

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoFixedLengthReader <CreditBalanceRecord>(reader))
                        {
                            writer.WriteLine("Account LastName        FirstName       Balance     CreditLimit   AccountCreated  Rating ");
                            writer.WriteLine("101     Reeves          Keanu           9315.45     10000.00      1/17/1998       A      ");
                            writer.Flush();
                            stream.Position = 0;

                            while ((row = parser.Read()) != null)
                            {
                                Console.WriteLine(row.ToStringEx());
                            }
                        }

            //using (var stream = new MemoryStream())
            //using (var reader = new StreamReader(stream))
            //using (var writer = new StreamWriter(stream))
            //{
            //    writer.WriteLine("Account LastName        FirstName       Balance     CreditLimit   AccountCreated  Rating ");
            //    writer.WriteLine("101     Reeves          Keanu           9315.45     10000.00      1/17/1998       A      ");
            //    writer.Flush();
            //    stream.Position = 0;

            //    foreach (var item in new ChoFixedLengthReader<CreditBalanceRecord>(reader))
            //    {
            //        Console.WriteLine(item.ToStringEx());
            //    }
            //}
        }
예제 #3
0
        static void DynamicApproach()
        {
            object row = null;

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoFixedLengthReader(reader)
                                            .WithFirstLineHeader()
                                            .WithField("Account", 0, 8, fieldType: typeof(int))
                                            .WithField("LastName", 8, 16)
                                            .WithField("FirstName", 24, 16)
                                            .WithField("Balance", 40, 12, fieldType: typeof(double))
                                            .WithField("CreditLimit", 52, 14, fieldType: typeof(double))
                                            .WithField("AccountCreated", 66, 16, fieldType: typeof(DateTime))
                                            .WithField("Rating", 82, 7))
                        {
                            writer.WriteLine("Account LastName        FirstName       Balance     CreditLimit   AccountCreated  Rating ");
                            writer.WriteLine("101     Reeves          Keanu           9315.45     10000.00      1/17/1998       A      ");
                            writer.WriteLine("102     Tom             Mark            9315.45     15000.00      12/17/2000      A      ");
                            writer.Flush();
                            stream.Position = 0;

                            while ((row = parser.Read()) != null)
                            {
                                Console.WriteLine(row.ToStringEx());
                            }
                        }
        }
예제 #4
0
        static void MultiLineTest()
        {
            object row = null;

            using (var parser = new ChoFixedLengthReader("Emp.csv").WithFirstLineHeader().WithField("Id", 0, 8).WithField("Name", 8, 10, true))
            {
                while ((row = parser.Read()) != null)
                {
                    Console.WriteLine(row.ToStringEx());
                }
            }
        }
예제 #5
0
        static void MultiLineTest()
        {
            object row = null;

            using (var parser = new ChoFixedLengthReader("Emp.txt").WithFirstLineHeader().WithField("Id", 0, 8).WithField("Name", 8, 10))
            {
                parser.Configuration.MayContainEOLInData = true;
                while ((row = parser.Read()) != null)
                {
                    Console.WriteLine(row.ToStringEx());
                }
            }
        }
예제 #6
0
        static void DefaultValueUsedViaConfigFirstApproach()
        {
            ChoFixedLengthRecordConfiguration config = new ChoFixedLengthRecordConfiguration();

            config.FixedLengthRecordFieldConfigurations.Add(new ChoFixedLengthRecordFieldConfiguration("Id", 0, 3)
            {
                FieldType = typeof(int)
            });
            config.FixedLengthRecordFieldConfigurations.Add(new ChoFixedLengthRecordFieldConfiguration("Name", 3, 5)
            {
                FieldType = typeof(string)
            });
            config.FixedLengthRecordFieldConfigurations.Add(new ChoFixedLengthRecordFieldConfiguration("JoinedDate", 8, 10)
            {
                FieldType = typeof(DateTime), DefaultValue = "10/10/2010"
            });
            config.FixedLengthRecordFieldConfigurations.Add(new ChoFixedLengthRecordFieldConfiguration("Salary", 18, 10)
            {
                FieldType = typeof(ChoCurrency)
            });
            config.FixedLengthRecordFieldConfigurations.Add(new ChoFixedLengthRecordFieldConfiguration("IsActive", 28, 1)
            {
                FieldType = typeof(bool)
            });
            config.FixedLengthRecordFieldConfigurations.Add(new ChoFixedLengthRecordFieldConfiguration("Status", 29, 1)
            {
                FieldType = typeof(char)
            });
            config.ErrorMode = ChoErrorMode.ReportAndContinue;

            ExpandoObject row = null;

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoFixedLengthReader(reader, config))
                        {
                            writer.WriteLine("001Carl 08/12/2016100,000   0F");
                            writer.WriteLine("002MarkS13/01/2010500,000   1C");
                            writer.Flush();
                            stream.Position = 0;

                            while ((row = parser.Read()) != null)
                            {
                                Console.WriteLine(row.ToStringEx());
                            }
                        }
        }
예제 #7
0
        static void DefaultValueUsedViaCodeFirstApproach()
        {
            EmployeeRecSimple row = null;

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoFixedLengthReader <EmployeeRecSimple>(reader))
                        {
                            writer.WriteLine("001Carl 08/12/2016$100,000                      0F");
                            writer.WriteLine("002MarkS01/01/2010$500,000                      1C");
                            writer.Flush();
                            stream.Position = 0;

                            while ((row = parser.Read()) != null)
                            {
                                Console.WriteLine(row.ToStringEx());
                            }
                        }
        }
예제 #8
0
        static void QuickTest()
        {
            object row = null;

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoFixedLengthReader <EmployeeRecWithCurrency>(reader).WithFirstLineHeader())
                        {
                            writer.WriteLine("Id      Name      ");
                            writer.WriteLine("1       Carl      ");
                            writer.WriteLine("2       Mark      ");
                            writer.Flush();
                            stream.Position = 0;

                            while ((row = parser.Read()) != null)
                            {
                                Console.WriteLine(row.ToStringEx());
                            }
                        }
        }
예제 #9
0
        static void CodeFirstWithDeclarativeApproachRead()
        {
            EmployeeRec row = null;

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoFixedLengthReader <EmployeeRec>(reader).WithFirstLineHeader())
                        {
                            writer.WriteLine("Id      Name      ");
                            writer.WriteLine("1       Carl      ");
                            writer.WriteLine("2       Mark      ");
                            writer.Flush();
                            stream.Position = 0;

                            while ((row = parser.Read()) != null)
                            {
                                Console.WriteLine(row.ToStringEx());
                            }
                        }
        }