FileHelpers - Multiple Delimiters

  • Contact / Feedback
  • Introduction
  • Download
  • Quick Start
  • Must Read
  • Examples
    • QuickStart
      • Read Delimited File
      • Write Delimited File
      • Read Fixed File
      • Write Fixed File
      • Read or Write Record by Record
      • Autoproperties
    • Missing Values
      • Handle Missing Values with Nullable
      • Handle Missing Values With FieldNullValue
    • Attributes
      • FieldTrim
      • FieldOrder
      • FixedLengthRecord FixedMode.AllowLessChars
    • Converters
      • Enum Converter
      • Custom Converter
    • Events And Notification
      • INotifyRead Interface
      • INotifyWrite Interface
      • Before/After Read Event Handling
      • Before/After Write Event Handling
    • ErrorHandling
      • ErrorMode.ThrowException
      • ErrorMode.IgnoreAndContinue
      • ErrorMode SaveAndContinue
    • Advanced
      • Dynamic Engine Options
      • Multiple Delimiters
      • Multi Record Processing
      • Smart Format Detector
    • Sorting
      • Sort Big File with Record Class
      • Sort Big File without Record Class 1
      • Sort Big File without Record Class 2
    • MasterDetail
      • Master Detail Custom Selector
      • Master Detail Common Selector
  • Credits
  • Invite us a beer
  • Contribute
  • Source Code
  • Api Docs (Sandcastle)
  1. Examples
  2. Advanced
  3. Multiple Delimiters
Previous: Dynamic Engine Options
Next: Multi Record Processing
Click button to edit
Advanced: Multiple Delimiters
Write a file with different delimiters using the same record
CustomersVerticalBar.cs
/// <summary> Sample class that is delimited by | default </summary>
[DelimitedRecord("|")]
public class CustomersVerticalBar
{
    public string CustomerID;
    public string CompanyName;
    public string ContactName;
    public string ContactTitle;
    public string Address;
    public string City;
    public string Country;

}
RunEngine.cs
var customers = CreateCustomers();

var engine = new DelimitedFileEngine<CustomersVerticalBar>(Encoding.UTF8);
//  write out customers using a vertical bar delimiter (default)
engine.WriteFile("Out_Vertical.txt", customers);

// Change the delimiter to semicolon and write that out
engine.Options.Delimiter = ";";
engine.WriteFile("Out_SemiColon.txt", customers);

// Change the delimiter to a tab and write that out
engine.Options.Delimiter = "\t";
engine.WriteFile("Out_Tab.txt", customers);
Out_Vertical.txt
ALFKI|Alfreds Futterkiste|Maria Anders|Sales Representative|Obere Str. 57|Berlin|Germany
ANATR|Emparedados y Helados|Ana Trujillo|Owner|Avda. Constitución 2222|México D.F.|Mexico
ANTON|Antonio Moreno Taquería|Antonio Moreno|Owner|Mataderos  2312|México D.F.|Mexico
BERGS|Berglunds snabbköp|Christina Berglund|Administrator|Berguvsvägen  8|Luleå|Sweden
BLAUS|Blauer Delikatessen|Hanna Moos|Sales Rep|Forsterstr. 57|Mannheim|Germany
BOLID|Bólido Comidas preparadas|Martín Sommer|Owner|C/ Araquil, 67|Madrid|Spain
Out_SemiColon.txt
ALFKI;Alfreds Futterkiste;Maria Anders;Sales Representative;Obere Str. 57;Berlin;Germany
ANATR;Emparedados y Helados;Ana Trujillo;Owner;Avda. Constitución 2222;México D.F.;Mexico
ANTON;Antonio Moreno Taquería;Antonio Moreno;Owner;Mataderos  2312;México D.F.;Mexico
BERGS;Berglunds snabbköp;Christina Berglund;Administrator;Berguvsvägen  8;Luleå;Sweden
BLAUS;Blauer Delikatessen;Hanna Moos;Sales Rep;Forsterstr. 57;Mannheim;Germany
BOLID;Bólido Comidas preparadas;Martín Sommer;Owner;C/ Araquil, 67;Madrid;Spain
Out_Tab.txt
ALFKI	Alfreds Futterkiste	Maria Anders	Sales Representative	Obere Str. 57	Berlin	Germany
ANATR	Emparedados y Helados	Ana Trujillo	Owner	Avda. Constitución 2222	México D.F.	Mexico
ANTON	Antonio Moreno Taquería	Antonio Moreno	Owner	Mataderos  2312	México D.F.	Mexico
BERGS	Berglunds snabbköp	Christina Berglund	Administrator	Berguvsvägen  8	Luleå	Sweden
BLAUS	Blauer Delikatessen	Hanna Moos	Sales Rep	Forsterstr. 57	Mannheim	Germany
BOLID	Bólido Comidas preparadas	Martín Sommer	Owner	C/ Araquil, 67	Madrid	Spain
Copyright © 2020 Devoo - Marcos Meli All rights reserved. Template Design by GeeksLabs