public void RunTimeEmptyGuidProperties() { var builder = new DelimitedClassBuilder("EntityWithGuid", "\t"); builder.AddField("Name", typeof(string)); builder.AddField("Id", typeof(Guid)); builder.LastField.FieldNullValue = Guid.Empty; var engine = new FileHelperEngine(builder.CreateRecordClass()) { Options = { IgnoreFirstLines = 1 } }; const string inputValue = @"Name Id first second "; var records = engine.ReadString(inputValue); Check.That(records.Length).IsEqualTo(2); dynamic record = records[0]; Check.That(((Guid)record.Id)).IsEqualTo(Guid.Empty); Check.That(((string)record.Name)).IsEqualTo("first"); record = records[1]; Check.That(((Guid)record.Id)).IsEqualTo(Guid.Empty); Check.That(((string)record.Name)).IsEqualTo("second"); }
public static FileHelperAsyncEngine Create(InputContext context) { var identifier = Utility.Identifier(context.Entity.OutputTableName(context.Process.Name)); var delimiter = string.IsNullOrEmpty(context.Connection.Delimiter) ? "," : context.Connection.Delimiter; var builder = new DelimitedClassBuilder(identifier) { IgnoreEmptyLines = true, Delimiter = delimiter, IgnoreFirstLines = context.Connection.Start }; foreach (var field in context.InputFields) { var fieldBuilder = builder.AddField(field.FieldName(), typeof(string)); fieldBuilder.FieldQuoted = true; fieldBuilder.QuoteChar = context.Connection.TextQualifier; fieldBuilder.QuoteMode = QuoteMode.OptionalForBoth; fieldBuilder.FieldOptional = field.Optional; } FileHelpers.ErrorMode errorMode; Enum.TryParse(context.Connection.ErrorMode, true, out errorMode); var engine = new FileHelperAsyncEngine(builder.CreateRecordClass()); engine.ErrorManager.ErrorMode = errorMode; engine.ErrorManager.ErrorLimit = context.Connection.ErrorLimit; return(engine); }
public DelimitedFileReader(InputContext context, IRowFactory rowFactory, IRowCondition rowCondition) { _context = context; _rowFactory = rowFactory; _rowCondition = rowCondition; var identifier = Utility.Identifier(context.Entity.OutputTableName(context.Process.Name)); _builder = new DelimitedClassBuilder(identifier) { IgnoreEmptyLines = true, Delimiter = context.Connection.Delimiter, IgnoreFirstLines = context.Connection.Start }; _fileInfo = new FileInfo(_context.Connection.File); foreach (var field in context.InputFields) { var fieldBuilder = _builder.AddField(field.FieldName(), typeof(string)); fieldBuilder.FieldQuoted = true; fieldBuilder.QuoteChar = _context.Connection.TextQualifier; fieldBuilder.QuoteMode = QuoteMode.OptionalForRead; fieldBuilder.FieldOptional = field.Optional; } }
//public bool Export(Guid id, PriceImportLogStatus pilStatus, string path) //{ // DeleteExportFile(path); // PriceImport pi = GetById(id); // // TODO: Convert to MemoryStream. // // TODO: Move hardcoded to translation file // List<int> lst = GetIndexsForExport(id, pilStatus); // DelimitedClassBuilder cb = CreateClassBuilder(pi.SeparationChar, pi.HaveHeader); // FileHelperEngine engine = new FileHelperEngine(cb.CreateRecordClass()); // object[] items = engine.ReadFile(path + pi.ID + ".csv"); // object[] erroritems = new object[lst.Count]; // int i = 0; // foreach (int error in lst) // { // erroritems[i] = items[error]; // i++; // } // engine.WriteFile(path + Resource.Business.GetString("ExportFile"), erroritems); // return true; //} public MemoryStream Export(Guid id, PriceImportLogStatus pilStatus, string path) { PriceImport pi = GetById(id); List <int> lst = GetIndexsForExport(id, pilStatus); DelimitedClassBuilder cb = CreateClassBuilder(pi.SeparationChar, pi.HaveHeader); FileHelperEngine engine = new FileHelperEngine(cb.CreateRecordClass()); object[] items = engine.ReadFile(path + pi.ID + ".csv"); object[] erroritems = new object[lst.Count]; int i = 0; foreach (int error in lst) { erroritems[i] = items[error]; i++; } MemoryStream stream = new MemoryStream(); StreamWriter sw = new StreamWriter(stream); engine.WriteStream(sw, erroritems); return(stream); }
public override void ProcessFeed() { DelimitedClassBuilder cb = new DelimitedClassBuilder("TmpOutfitUpdater", Separator); if (HaveHeader) { cb.IgnoreFirstLines = 1; } if (HaveFooter) { cb.IgnoreLastLines = 1; } AddFields(cb); cb.IgnoreEmptyLines = true; FileHelperAsyncEngine engine = new FileHelperAsyncEngine(cb.CreateRecordClass()); engine.BeginReadFile(Path.Combine(ImportPath, this.FileName)); while (engine.ReadNext() != null) { LineRead(ConvertDataToLine(engine.LastRecord)); } }
protected virtual void PrepareType(Entity entity) { var builder = new DelimitedClassBuilder("Tfl" + entity.OutputName()) { IgnoreEmptyLines = true, Delimiter = _connection.Delimiter.ToString(CultureInfo.InvariantCulture), IgnoreFirstLines = 0 }; foreach (var f in _fileFields) { var field = new DelimitedFieldBuilder(f.Identifier, f.SystemType); if (f.SimpleType.Equals("datetime")) { field.Converter.Kind = ConverterKind.Date; field.Converter.Arg1 = _connection.DateFormat; } if (f.SimpleType.Equals("guid")) { field.Converter.TypeName = "Transformalize.Operations.Load.GuidConverter"; } if (f.SimpleType.Equals("byte[]") || f.SimpleType.Equals("rowversion")) { field.Converter.TypeName = "Transformalize.Operations.Load.ByteArrayConverter"; } if (_isCsv) { field.FieldQuoted = true; field.QuoteChar = '"'; field.QuoteMode = QuoteMode.OptionalForBoth; field.QuoteMultiline = MultilineMode.NotAllow; } builder.AddField(field); } Type = builder.CreateRecordClass(); }
public void FullClassBuilding() { var cb = new DelimitedClassBuilder("Customers", ","); cb.IgnoreFirstLines = 1; cb.IgnoreEmptyLines = true; cb.AddField("Field1", typeof(DateTime)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.QuoteMode = QuoteMode.AlwaysQuoted; cb.LastField.FieldNullValue = DateTime.Today; cb.AddField("Field2", typeof(string)); cb.LastField.FieldQuoted = true; cb.LastField.QuoteChar = '"'; cb.AddField("Field3", typeof(int)); engine = new FileHelperEngine(cb.CreateRecordClass()); DataTable dt = engine.ReadFileAsDT(TestCommon.GetPath("Good", "Test2.txt")); Assert.AreEqual(4, dt.Rows.Count); Assert.AreEqual(4, engine.TotalRecords); Assert.AreEqual(0, engine.ErrorManager.ErrorCount); Assert.AreEqual("Field1", dt.Columns[0].ColumnName); Assert.AreEqual("Field2", dt.Columns[1].ColumnName); Assert.AreEqual("Field3", dt.Columns[2].ColumnName); Assert.AreEqual("Hola", dt.Rows[0][1]); Assert.AreEqual(DateTime.Today, dt.Rows[2][0]); }
public void TestingNameAndTypes() { var cb = new DelimitedClassBuilder("Customers", ","); cb.IgnoreFirstLines = 1; cb.IgnoreEmptyLines = true; cb.AddField("Field1", typeof(DateTime)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.QuoteMode = QuoteMode.AlwaysQuoted; cb.LastField.FieldNullValue = DateTime.Today; cb.AddField("Field2", typeof(string)); cb.LastField.FieldQuoted = true; cb.LastField.QuoteChar = '"'; cb.AddField("Field3", typeof(int)); engine = new FileHelperEngine(cb.CreateRecordClass()); DataTable dt = engine.ReadFileAsDT(TestCommon.GetPath("Good", "Test2.txt")); Assert.AreEqual("Field1", dt.Columns[0].ColumnName); Assert.AreEqual(typeof(DateTime), dt.Columns[0].DataType); Assert.AreEqual("Field2", dt.Columns[1].ColumnName); Assert.AreEqual(typeof(string), dt.Columns[1].DataType); Assert.AreEqual("Field3", dt.Columns[2].ColumnName); Assert.AreEqual(typeof(int), dt.Columns[2].DataType); }
static void RunTimeRecords() { Console.WriteLine("Run Time Records now =) ..."); Console.WriteLine(); DelimitedClassBuilder cb = new DelimitedClassBuilder("Customer", ","); cb.AddField("CustId", typeof(Int32)); cb.AddField("Name", typeof(string)); cb.AddField("Balance", typeof(Decimal)); cb.AddField("AddedDate", typeof(DateTime)); cb.LastField.Converter.Kind = ConverterKind.Date; cb.LastField.Converter.Arg1 = "ddMMyyyy"; // Estas dos lineas son el uso de la librería FileHelperEngine engine = new FileHelperEngine(cb.CreateRecordClass()); DataTable dt = engine.ReadFileAsDT(@"..\Data\CustomersDelimited.txt"); // Aqui es donde ustedes agregan su código foreach (DataRow dr in dt.Rows) { Console.WriteLine("Customer: " + dr[0].ToString() + " - " + dr[1].ToString()); } }
public void SaveLoadXmlFileDelimited2() { var cb = new DelimitedClassBuilder("Customers", ","); cb.IgnoreFirstLines = 1; cb.IgnoreEmptyLines = true; cb.AddField("Field1", typeof(DateTime)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.QuoteMode = QuoteMode.AlwaysQuoted; cb.LastField.FieldNullValue = DateTime.Today; cb.AddField("FieldTwo", typeof(string)); cb.LastField.FieldQuoted = true; cb.LastField.QuoteChar = '"'; cb.AddField("Field333", typeof(int)); cb.SaveToXml(@"runtime.xml"); engine = new FileHelperEngine(ClassBuilder.ClassFromXmlFile("runtime.xml")); Assert.AreEqual("Customers", engine.RecordType.Name); Assert.AreEqual(3, engine.RecordType.GetFields().Length); Assert.AreEqual("Field1", engine.RecordType.GetFields()[0].Name); }
public DelimitedClassBuilder BuildNSECMPFile() { DelimitedClassBuilder cb = new DelimitedClassBuilder("CMPFILE", ","); cb.IgnoreFirstLines = 0; cb.AddField("Symbol", typeof(string)); cb.AddField("Series", typeof(string)); cb.AddField("Open", typeof(double)); cb.AddField("High", typeof(double)); cb.AddField("Low", typeof(double)); cb.AddField("Close", typeof(double)); cb.AddField("Last", typeof(double)); cb.AddField("PrevClose", typeof(double)); cb.AddField("Tottrdqty", typeof(int)); cb.AddField("Tottrdval", typeof(double)); cb.AddField("Timestamp", typeof(string)); cb.AddField("Totaltrades", typeof(int)); cb.AddField("Isin", typeof(string)); cb.AddField("OI", typeof(int)); cb.LastField.FieldNullValue = 0; return(cb); }
private void CreateDelimiterOptions(string[][] sampleData, List <RecordFormatInfo> res, char delimiter) { List <DelimiterInfo> delimiters = new List <DelimiterInfo>(); if (delimiter == '\0') { delimiters = GetDelimiters(sampleData); } else { delimiters.Add(GetDelimiterInfo(sampleData, delimiter)); } foreach (DelimiterInfo info in delimiters) { RecordFormatInfo format = new RecordFormatInfo(); format.mConfidence = (int)((1 - info.Deviation) * 100); AdjustConfidence(format, info); DelimitedClassBuilder builder = new DelimitedClassBuilder("AutoDetectedClass", info.Delimiter.ToString()); builder.AddFields(info.AvergeByLine + 1); format.mClassBuilder = builder; res.Add(format); } }
public void RunTimeNullableFields() { DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ","); cb.AddField("Field1", "int?"); cb.AddField("Field2", typeof(int?)); cb.AddField("Field3", "Nullable<int>"); cb.AddField("Field4", typeof(Nullable <int>)); }
// DELIMITED private void CreateDelimiterOptions(string[][] sampleData, List <RecordFormatInfo> res, char delimiter = '\0') { var delimiters = new List <DelimiterInfo>(); if (delimiter == '\0') { delimiters = GetDelimiters(sampleData); } else { delimiters.Add(GetDelimiterInfo(sampleData, delimiter)); } foreach (var info in delimiters) { var format = new RecordFormatInfo { mConfidence = (int)((1 - info.Deviation) * 100) }; AdjustConfidence(format, info); var fileHasHeaders = false; if (FileHasHeaders.HasValue) { fileHasHeaders = FileHasHeaders.Value; } else { fileHasHeaders = DetectIfContainsHeaders(info, sampleData); } var builder = new DelimitedClassBuilder("AutoDetectedClass", info.Delimiter.ToString()) { IgnoreFirstLines = fileHasHeaders ? 1 : 0 }; var firstLineSplitted = sampleData[0][0].Split(info.Delimiter); for (int i = 0; i < info.Max + 1; i++) { string name = "Field " + (i + 1).ToString().PadLeft(3, '0'); if (fileHasHeaders && i < firstLineSplitted.Length) { name = firstLineSplitted[i]; } var f = builder.AddField(StringHelper.ToValidIdentifier(name)); if (i > info.Min) { f.FieldOptional = true; } } format.mClassBuilder = builder; res.Add(format); } }
public ReadUsersFromFileDynamic() { var userRecordClassBuilder = new DelimitedClassBuilder("UserRecord", "\t"); userRecordClassBuilder.IgnoreFirstLines = 1; userRecordClassBuilder.AddField("Id", typeof(Int32)); userRecordClassBuilder.AddField("Name", typeof(String)); userRecordClassBuilder.AddField("Email", typeof(String)); _tblClass = userRecordClassBuilder.CreateRecordClass(); }
protected override void PrepareType(Entity entity) { var builder = new DelimitedClassBuilder("Tfl" + entity.OutputName()) { IgnoreEmptyLines = true, Delimiter = " ", IgnoreFirstLines = 0 }; builder.AddField(_htmlField, typeof(string)); Type = builder.CreateRecordClass(); }
public void RunTimeGenerics() { DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ","); cb.AddField("Field2", typeof(Dictionary <int, List <string> >)); cb.AddField("Field1", "List<int>"); cb.AddField("Field2", typeof(List <int>)); cb.AddField("Field3", "Nullable<int>"); cb.AddField("Field4", typeof(Nullable <int>)); }
protected void Page_Load(object sender, EventArgs e) { DelimitedClassBuilder cb = new DelimitedClassBuilder("Prices", ";"); // cb.IgnoreFirstLines = 1; cb.AddField("CodGrundfos", typeof(string)); cb.AddField("CodProv", typeof(string)); cb.AddField("Modelo", typeof(string)); cb.AddField("Descripcion", typeof(string)); cb.AddField("Proveedor", typeof(string)); cb.AddField("Frecuencia", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("TP"); cb.LastField.FieldType = "Nullable < System.Decimal >"; cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.LastField.Converter.Kind = ConverterKind.AnyDecimal; cb.AddField("MonedaTP", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("GRP", typeof(string)); cb.LastField.FieldType = "Nullable < System.Decimal >"; cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.LastField.Converter.Kind = ConverterKind.AnyDecimal; cb.AddField("MonedaGRP", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("PL", typeof(string)); cb.LastField.FieldType = "Nullable < System.Decimal >"; cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.LastField.Converter.Kind = ConverterKind.AnyDecimal; cb.AddField("MonedaPL", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Familia", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Tipo", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Linea", typeof(string)); cb.LastField.FieldOptional = true; cb.IgnoreEmptyLines = true; FileHelperEngine engine = new FileHelperEngine(cb.CreateRecordClass()); object[] items = engine.ReadFile(Server.MapPath("~/TesterSeba2.csv")); object o = items[0]; Response.Write(o.GetType().GetField("CodGrundfos").GetValue(o)); Response.Write("<br>"); Response.Write(o.GetType().GetField("TP").GetValue(o)); Response.Write("<br>"); o = items[1]; Response.Write(o.GetType().GetField("TP").GetValue(o)); }
public void ReadAsDataTable1() { DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ","); cb.IgnoreEmptyLines = true; cb.GenerateProperties = true; cb.AddField("FirstName", typeof(string)); cb.LastField.TrimMode = FileHelpers.TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("LastName", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("StreetNumber", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("StreetAddress", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("Unit", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("City", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("State", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("Zip", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; var engine = new FileHelperEngine(cb.CreateRecordClass()); string source = "Alex & Jen,Bouquet,1815,Bell Rd,, Batavia,OH,45103" + Environment.NewLine + "Mark & Lisa K ,Arlinghaus,1817,Bell Rd,, Batavia,OH,45103" + Environment.NewLine + "Ed & Karen S ,Craycraft,1819,Bell Rd,, Batavia,OH,45103" + Environment.NewLine; DataTable contactData = engine.ReadStringAsDT(source); Assert.AreEqual(3, contactData.Rows.Count); Assert.AreEqual(8, contactData.Columns.Count); Assert.AreEqual("Alex & Jen", contactData.Rows[0][0].ToString()); Assert.AreEqual("Mark & Lisa K", contactData.Rows[1][0].ToString()); // new DelimitedClassBuilder("", ","); }
private DelimitedClassBuilder ExamineGridForColumnOrder(string delimiter) { DelimitedClassBuilder classBuilder = new DelimitedClassBuilder("ProposedOrders", delimiter); foreach (Column column in grid.VisibleColumns.Where(column => column.Visible && column.FieldName != "ErrorString")) { classBuilder.AddField(column.FieldName, typeof(string)); classBuilder.LastField.TrimMode = TrimMode.Both; classBuilder.LastField.FieldQuoted = true; } return(classBuilder); }
public void RunTimeGenerics() { var cb = new DelimitedClassBuilder("ImportContact", ","); cb.AddField("Field2", typeof(Dictionary <int, List <string> >)); cb.AddField("Field1", "System.Collections.Generic.List<int>"); cb.AddField("Field7", typeof(List <int>)); cb.AddField("Field3", "Nullable<int>"); cb.AddField("Field4", typeof(Nullable <int>)); cb.CreateRecordClass(); }
public void RunTimeMultimpleInstances() { var cb = new DelimitedClassBuilder("ImportContact", ","); cb.AddField("Field1", "int?"); cb.AddField("Field2", typeof(int?)); cb.AddField("Field3", "Nullable<int>"); cb.AddField("Field4", typeof(Nullable <int>)); cb.CreateRecordClass(); cb.CreateRecordClass(); }
public static FileHelperAsyncEngine Create(OutputContext context) { var delimiter = string.IsNullOrEmpty(context.Connection.Delimiter) ? "," : context.Connection.Delimiter; var builder = new DelimitedClassBuilder(Utility.Identifier(context.Entity.OutputTableName(context.Process.Name))) { IgnoreEmptyLines = true, Delimiter = delimiter, IgnoreFirstLines = 0 }; foreach (var field in context.OutputFields) { var fieldBuilder = builder.AddField(field.FieldName(), typeof(string)); fieldBuilder.FieldQuoted = true; fieldBuilder.QuoteChar = context.Connection.TextQualifier; fieldBuilder.QuoteMode = QuoteMode.OptionalForBoth; fieldBuilder.FieldOptional = field.Optional; } FileHelpers.ErrorMode errorMode; Enum.TryParse(context.Connection.ErrorMode, true, out errorMode); FileHelperAsyncEngine engine; if (context.Connection.Header == Constants.DefaultSetting) { var headerText = string.Join(delimiter, context.OutputFields.Select(f => f.Label.Replace(delimiter, " "))); engine = new FileHelperAsyncEngine(builder.CreateRecordClass()) { ErrorMode = errorMode, HeaderText = headerText, FooterText = context.Connection.Footer }; } else { engine = new FileHelperAsyncEngine(builder.CreateRecordClass()) { ErrorMode = errorMode }; if (context.Connection.Header != string.Empty) { engine.HeaderText = context.Connection.Header; } if (context.Connection.Footer != string.Empty) { engine.FooterText = context.Connection.Footer; } } return(engine); }
private DelimitedClassBuilder CreateClassBuilder(char separationChar, bool haveHeader) { DelimitedClassBuilder cb = new DelimitedClassBuilder("TmpPriceImport", separationChar.ToString()); if (haveHeader) { cb.IgnoreFirstLines = 1; } cb.AddField("CodGrundfos", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("CodProv", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Modelo", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Descripcion", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Proveedor", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Frecuencia", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("TP"); cb.LastField.FieldType = "Nullable < System.Decimal >"; cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.LastField.Converter.Kind = ConverterKind.AnyDecimal; cb.AddField("MonedaTP", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("GRP"); cb.LastField.FieldType = "Nullable < System.Decimal >"; cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.LastField.Converter.Kind = ConverterKind.AnyDecimal; cb.AddField("MonedaGRP", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("PL"); cb.LastField.FieldType = "Nullable < System.Decimal >"; cb.LastField.FieldNullValue = null; cb.LastField.FieldOptional = true; cb.LastField.Converter.Kind = ConverterKind.AnyDecimal; cb.AddField("MonedaPL", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Familia", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Tipo", typeof(string)); cb.LastField.FieldOptional = true; cb.AddField("Linea", typeof(string)); cb.LastField.FieldOptional = true; cb.IgnoreEmptyLines = true; return(cb); }
public void LoopingFields() { var cb = new DelimitedClassBuilder("MyClass", ","); string[] lst = { "fieldOne", "fieldTwo", "fieldThree" }; for (int i = 0; i < lst.Length; i++) { cb.AddField(lst[i].ToString(), typeof(string)); } var engineTemp = new FileHelperEngine(cb.CreateRecordClass()); }
public void ReadAsDataTable2() { DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ","); cb.IgnoreEmptyLines = true; cb.GenerateProperties = true; cb.AddField("FirstName", typeof(string)); cb.LastField.TrimMode = FileHelpers.TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("LastName", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("StreetNumber", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("StreetAddress", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("Unit", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("City", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("State", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; cb.AddField("Zip", typeof(string)); cb.LastField.TrimMode = TrimMode.Both; cb.LastField.FieldQuoted = false; var engine = new FileHelperEngine(cb.CreateRecordClass()); DataTable contactData = engine.ReadFileAsDT(TestCommon.GetPath("Good", "ReadAsDataTable.txt")); Assert.AreEqual(3, contactData.Rows.Count); Assert.AreEqual(8, contactData.Columns.Count); Assert.AreEqual("Alex & Jen", contactData.Rows[0][0].ToString()); Assert.AreEqual("Mark & Lisa K", contactData.Rows[1][0].ToString()); // new DelimitedClassBuilder("", ","); }
private void ClassBuilder(int ignoreLines, IDictionary <int, string> fieldNames, char[] separator) { var builder = new DelimitedClassBuilder("UserRecord", separator[0].ToString()) { IgnoreFirstLines = ignoreLines }; foreach (var field in fieldNames.OrderBy(x => x.Key)) { builder.AddField(field.Value, typeof(string)); } InputType = builder.CreateRecordClass(); }
private void PasteFromClip() { DelimitedClassBuilder classBuilder = ExamineGridForColumnOrder("\t"); try { FileHelperEngine engine = new FileHelperEngine(classBuilder.CreateRecordClass()); DataTable dt = engine.ReadStringAsDT(Clipboard.GetText()); PasteDataTable(dt); } catch (Exception ex) { throw ex; //addInBase.MessageService.LogMessage(new ApplicationMessage(ex, ApplicationMessageType.ErrorNoPopup)); } }
private static void Main(string[] args) { var cb = new DelimitedClassBuilder("Customer", ","); cb.AddField("SomeField", typeof(String)); cb.LastField.Converter.TypeName = typeof(OtherNameSpace.MyConverter).ToString(); Type recordClass = cb.CreateRecordClass(); var engine = new FileHelperEngine(recordClass); var records = engine.ReadStringAsDT("aaa"); Assert.AreEqual("aaa", records.Rows[0].Field <string>(0)); Console.WriteLine("All OK"); Console.ReadKey(); }
public DelimitedFileWriter(OutputContext context, string fileName = null) { _context = context; _fileName = fileName; _builder = new DelimitedClassBuilder(Utility.Identifier(context.Entity.OutputTableName(context.Process.Name))) { IgnoreEmptyLines = true, Delimiter = context.Connection.Delimiter, IgnoreFirstLines = 0 }; foreach (var field in context.OutputFields) { var fieldBuilder = _builder.AddField(field.FieldName(), typeof(string)); fieldBuilder.FieldQuoted = true; fieldBuilder.QuoteChar = context.Connection.TextQualifier; fieldBuilder.QuoteMode = QuoteMode.OptionalForBoth; fieldBuilder.FieldOptional = field.Optional; } }