diff options
Diffstat (limited to 'ThirdParty/CsvHelper-master/docs/examples')
37 files changed, 17389 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/attributes/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/attributes/index.html new file mode 100644 index 0000000..a5e958f --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/attributes/index.html @@ -0,0 +1,472 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Attributes | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="attributes">Attributes</h1> +<p>Most of the configuration done via class maps can also be done using attributes.</p> +<h6 id="data">Data</h6> +<pre><code>Identifier,name,IsBool,Constant +1,one,yes,a +2,two,no,b +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.GetRecords<Foo>().ToList().Dump(); + } +} + +[Delimiter(",")] +[CultureInfo("")] // Set CultureInfo to InvariantCulture +public class Foo +{ + [Name("Identifier")] + public int Id { get; set; } + + [Index(1)] + public string Name { get; set; } + + [BooleanTrueValues("yes")] + [BooleanFalseValues("no")] + public bool IsBool { get; set; } + + [Constant("bar")] + public string Constant { get; set; } + + [Optional] + public string Optional { get; set; } + + [Ignore] + public string Ignored { get; set; } +} + +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/auto-mapping/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/auto-mapping/index.html new file mode 100644 index 0000000..e410ab5 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/auto-mapping/index.html @@ -0,0 +1,462 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Auto Mapping | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="auto-mapping">Auto Mapping</h1> +<p>If you don't supply a map to the configuration, one is automatically created for you on the fly. You can call auto mapping directly in your class map also. You may want to do this if you have a large number of properties that will be set up correctly by default, and only need to make a couple changes.</p> +<h6 id="data">Data</h6> +<pre><code>Id,The Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + AutoMap(CultureInfo.InvariantCulture); + Map(m => m.Name).Name("The Name"); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/constant-value/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/constant-value/index.html new file mode 100644 index 0000000..8c4b933 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/constant-value/index.html @@ -0,0 +1,464 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Constant Value | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="constant-value">Constant Value</h1> +<p>You can set a constant value to a property instead of mapping it to a field.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public bool IsDirty { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + Map(m => m.IsDirty).Constant(true); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/ignoring-properties/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/ignoring-properties/index.html new file mode 100644 index 0000000..8a8b126 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/ignoring-properties/index.html @@ -0,0 +1,463 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Ignoring Properties | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="ignoring-properties">Ignoring Properties</h1> +<p>When you use auto mapping in your class map, every property will get mapped. If there are properties that you don't want mapped, you can ignore them.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public bool IsDirty { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + AutoMap(CultureInfo.InvariantCulture); + Map(m => m.IsDirty).Ignore(); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/index.html new file mode 100644 index 0000000..26c946e --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/index.html @@ -0,0 +1,489 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Class Maps | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="class-maps">Class Maps</h1> +<table> +<thead> +<tr> +<th>Topics</th> +<th>Â </th> +</tr> +</thead> +<tbody> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a></td> +<td>Mapping to properties.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a></td> +<td>Mapping properties by header name.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a></td> +<td>Mapping properties that may be one of many names.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a></td> +<td>Mapping properties that have duplicate header names.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a></td> +<td>Mapping properties by header index position.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a></td> +<td>Automatic mapping.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a></td> +<td>Ignoring mapped properites.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a></td> +<td>Setting a constant value for a property.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a></td> +<td>Using a specific type converter.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a></td> +<td>Convert a field to a type inline.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a></td> +<td>Map a property only if it exists.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a></td> +<td>Validate a field value.</td> +</tr> +</tbody> +</table> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/inline-type-conversion/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/inline-type-conversion/index.html new file mode 100644 index 0000000..0ec199e --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/inline-type-conversion/index.html @@ -0,0 +1,515 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Inline Type Conversion | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="inline-type-conversion">Inline Type Conversion</h1> +<p>If you don't want to write a full <code>ITypeConverter</code> implementation, you can specify a function that will do the same thing.</p> +<h2 id="reading">Reading</h2> +<h6 id="data">Data</h6> +<pre><code>Id,Name,Json +1,one,"{ ""Foo"": ""Bar"" }" +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.GetRecords<Foo>().ToList().Dump(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public Json Json { get; set; } +} + +public class Json +{ + public string Foo { get; set; } +} + +public class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + Map(m => m.Json).Convert(row => JsonConvert.DeserializeObject<Json>(row.GetField("Json"))); + } +} +</code></pre> +<h2 id="writing">Writing</h2> +<h6 id="example-1">Example</h6> +<pre><code class="language-cs">void Main() +{ + var records = new List<Foo> + { + new Foo { Id = 1, Name = "one" } + }; + + using (var writer = new StreamWriter("path\\to\\file.csv")) + using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.WriteRecords(records); + + writer.ToString().Dump(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public Json Json { get; set; } +} + +public class Json +{ + public string Foo { get; set; } +} + +public class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + Map(m => m.Json).Convert(o => JsonConvert.SerializeObject(o)); + } +} +</code></pre> +<h6 id="output">Output</h6> +<pre><code>Id,Name,Json +1,one,"{""Id"":1,""Name"":""one"",""Json"":null}" +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-alternate-names/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-alternate-names/index.html new file mode 100644 index 0000000..62e3bd7 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-alternate-names/index.html @@ -0,0 +1,462 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Mapping By Alternate Names | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="mapping-by-alternate-names">Mapping by Alternate Names</h1> +<p>If you have a header name that could vary, you can specify multiple header names.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id).Name("TheId", "Id"); + Map(m => m.Name).Name("TheName", "Name"); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-index/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-index/index.html new file mode 100644 index 0000000..9aa7759 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-index/index.html @@ -0,0 +1,465 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Mapping By Index | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="mapping-by-index">Mapping by Index</h1> +<p>If your data doesn't have a header you can map by index instead of name. You can't rely on the order of class properties in .NET, so if you're not mapping by name, make sure you specify an index.</p> +<h6 id="data">Data</h6> +<pre><code>1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + var config = new CsvConfiguration(CultureInfo.InvariantCulture) + { + HasHeaderRecord = false, + }; + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, config)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id).Index(0); + Map(m => m.Name).Index(1); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-name/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-name/index.html new file mode 100644 index 0000000..cb15885 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-name/index.html @@ -0,0 +1,462 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Mapping By Name | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="mapping-by-name">Mapping by Name</h1> +<p>If your property names don't match your class names, you can map the property to the column by name.</p> +<h6 id="data">Data</h6> +<pre><code>ColumnA,ColumnB +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id).Name("ColumnA"); + Map(m => m.Name).Name("ColumnB"); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-duplicate-names/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-duplicate-names/index.html new file mode 100644 index 0000000..d7dc521 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-duplicate-names/index.html @@ -0,0 +1,464 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Mapping Duplicate Names | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="mapping-duplicate-names">Mapping Duplicate Names</h1> +<p>Sometimes you have duplicate header names. This is handled through a header name index. The name index is the index of how many occurrences of that header name there are, not the position of the header.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name,Name +1,first,last +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string FirstName { get set; } + public string LastName { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.FirstName).Name("Name").NameIndex(0); + Map(m => m.LastName).Name("Name").NameIndex(1); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-properties/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-properties/index.html new file mode 100644 index 0000000..05640ec --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-properties/index.html @@ -0,0 +1,462 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Mapping Properties | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="mapping-properties">Mapping Properties</h1> +<p>This will map the properties of a class to the header names of the CSV data. The mapping needs to be registered in the context. This example is identical to not using a class mapping at all. The headers match the property names.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/optional-maps/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/optional-maps/index.html new file mode 100644 index 0000000..d57dcad --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/optional-maps/index.html @@ -0,0 +1,464 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Optional Maps | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="optional-maps">Optional Maps</h1> +<p>If you have data that may or may not have a header, you can make the mapping optional.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.GetRecords<Foo>().ToList().Dump(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public DateTimeOffset? Date { get; set; } +} + +public class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + Map(m => m.Date).Optional(); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/type-conversion/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/type-conversion/index.html new file mode 100644 index 0000000..56bf740 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/type-conversion/index.html @@ -0,0 +1,482 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Type Conversion | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="type-conversion">Type Conversion</h1> +<p>If you need to convert to or from a non-standard .NET type, you can supply a type converter to use for a property.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name,Json +1,one,"{ ""Foo"": ""Bar"" }" +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.GetRecords<Foo>().ToList().Dump(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public Json Json { get; set; } +} + +public class Json +{ + public string Foo { get; set; } +} + +public class JsonConverter<T> : DefaultTypeConverter +{ + public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData) + { + return JsonConvert.DeserializeObject<T>(text); + } + + public override string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData) + { + return JsonConvert.SerializeObject(value); + } +} + +public class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + Map(m => m.Json).TypeConverter<JsonConverter<Json>>(); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/validation/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/validation/index.html new file mode 100644 index 0000000..b97f314 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/validation/index.html @@ -0,0 +1,463 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Validation | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="validation">Validation</h1> +<p>If you want to ensure your data conforms to some sort of standard, you can validate it.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,on-e +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.GetRecords<Foo>().ToList().Dump(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public DateTimeOffset? Date { get; set; } +} + +public class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name).Validate(field => !field.Contains("-")); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/index.html new file mode 100644 index 0000000..061d5b8 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/index.html @@ -0,0 +1,450 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Configuration | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="configuration">Configuration</h1> +<h2 id="topics">Topics</h2> +<table> +<thead> +<tr> +<th>Â </th> +<th>Â </th> +</tr> +</thead> +<tbody> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a></td> +<td>Configure CSV structure with a class map.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/attributes">Attributes</a></td> +<td>Configure CSV structure with attributes.</td> +</tr> +</tbody> +</table> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/csvdatareader/index.html b/ThirdParty/CsvHelper-master/docs/examples/csvdatareader/index.html new file mode 100644 index 0000000..5a9f0f1 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/csvdatareader/index.html @@ -0,0 +1,460 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Csvdatareader | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="csvdatareader">CsvDataReader</h1> +<p>The question on how to load a data table using CsvHelper came up so often that I just built the functionality in.</p> +<p><code>CsvDataReader</code> implements <code>IDataReader</code>. This means it has all the capabilities of a forward only data reader. There is really no reason to use this class directly over using <code>CsvReader</code>. <code>CsvDataReader</code> requires an instance of <code>CsvReader</code> and uses it internally to do it's work.</p> +<p>Loading a <code>DataTable</code> in CsvHelper is simple. By default, a table will be loaded with all columns populated as strings. For the reader to be ready after instantiation, the first row needs to be read immediately, so you need to make any configuration changes before creating an instance of CsvDataReader.</p> +<pre><code class="language-cs">using (var reader = new StreamReader("path\\to\\file.csv")) +using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) +{ + // Do any configuration to `CsvReader` before creating CsvDataReader. + using (var dr = new CsvDataReader(csv)) + { + var dt = new DataTable(); + dt.Load(dr); + } +} +</code></pre> +<p>If you want to specify columns and column types, the data table will be loaded with the types automatically converted.</p> +<pre><code class="language-cs">using (var reader = new StreamReader("path\\to\\file.csv")) +using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) +{ + // Do any configuration to `CsvReader` before creating CsvDataReader. + using (var dr = new CsvDataReader(csv)) + { + var dt = new DataTable(); + dt.Columns.Add("Id", typeof(int)); + dt.Columns.Add("Name", typeof(string)); + + dt.Load(dr); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/index.html b/ThirdParty/CsvHelper-master/docs/examples/index.html new file mode 100644 index 0000000..a1d8adc --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/index.html @@ -0,0 +1,465 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Examples | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="examples">Examples</h1> +<table> +<thead> +<tr> +<th>Sections</th> +<th>Â </th> +</tr> +</thead> +<tbody> +<tr> +<td><a href="/CsvHelper/examples/prerequisites">Prerequisites</a></td> +<td>Implied knowledge when using CsvHelper.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/reading">Reading</a></td> +<td>Reading CSV data.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/writing">Writing</a></td> +<td>Writing CSV data.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration">Configuration</a></td> +<td>Configuring the behavior of CsvHelper to work with your CSV data or custom class structures.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/type-conversion">Type Conversion</a></td> +<td>Using type conversion to convert CSV fields to and from .NET types.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/csvdatareader">DataReader</a></td> +<td>Using a DataTable to read CSV data.</td> +</tr> +</tbody> +</table> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/prerequisites/index.html b/ThirdParty/CsvHelper-master/docs/examples/prerequisites/index.html new file mode 100644 index 0000000..3e6af69 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/prerequisites/index.html @@ -0,0 +1,454 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Prerequisites | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="prerequisites">Prerequisites</h1> +<p>Here are some prerequisites that are needed for using CsvHelper. These are .NET basics that are implied knowledge when using CsvHelper. <a href="https://docs.microsoft.com/dotnet/" target="_blank">Microsoft has excellent documentation</a> that can you can use to learn more.</p> +<table> +<thead> +<tr> +<th>Topics</th> +<th>Â </th> +</tr> +</thead> +<tbody> +<tr> +<td><a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a></td> +<td></td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a></td> +<td></td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/prerequisites/streams">Streams</a></td> +<td></td> +</tr> +</tbody> +</table> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/prerequisites/reading-and-writing-files/index.html b/ThirdParty/CsvHelper-master/docs/examples/prerequisites/reading-and-writing-files/index.html new file mode 100644 index 0000000..72fa8a0 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/prerequisites/reading-and-writing-files/index.html @@ -0,0 +1,480 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Reading And Writing Files | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="reading-and-writing-files">Reading and Writing Files</h1> +<p>To open a file for reading or writing, we can use <code>System.IO.File</code>.</p> +<pre><code class="language-cs">using (var stream = File.OpenRead("path\\to\\file.csv")) +{ +} + +using (var stream = File.OpenWrite("path\\to\\file.csv")) +{ +} +</code></pre> +<p>These both return a <code>FileStream</code> for working with our file. Since our data is text, we will need to use a <code>StreamReader</code> and <code>StreamWriter</code> to read and write the text.</p> +<pre><code class="language-cs">using (var stream = File.OpenRead("path\\to\\file.csv")) +using (var reader = new StreamReader(stream)) +{ +} + +using (var stream = File.OpenWrite("path\\to\\file.csv")) +using (var writer = new StreamWriter(stream)) +{ +} +</code></pre> +<p><code>StreamReader</code> and <code>StreamWriter</code> have shortcuts for doing this.</p> +<pre><code class="language-cs">using (var reader = new StreamReader("path\\to\\file.csv")) +{ +} + +using (var writer = new StreamWriter("path\\to\\file.csv")) +{ +} +</code></pre> +<p>CsvHelper doesn't know anything about your encoding, so if you have a specific encoding, you'll need to specify that in your stream.</p> +<pre><code class="language-cs">using (var reader = new StreamReader("path\\to\\file.csv", Encoding.UTF8)) +{ +} + +using (var writer = new StreamWriter("path\\to\\file.csv", Encoding.UTF8)) +{ +} +</code></pre> +<p><code>CsvReader</code> and <code>CsvWriter</code> take a <code>TextReader</code> and <code>TextWriter</code> in their constructors. <code>TextReader</code> and <code>TextWriter</code> are <code>abstract</code> classes for reading and writing text. <code>StreamReader</code> inherits <code>TextReader</code> and <code>StreamWriter</code> inherits <code>TextWriter</code>, so we can use those with <code>CsvReader</code> and <code>CsvWriter</code>.</p> +<pre><code class="language-cs">using (var reader = new StreamReader("path\\to\\file.csv")) +using (var csv = new CsvReader(reader)) +{ +} + +using (var writer = new StreamWriter("path\\to\\file.csv")) +using (var csv = new CsvWriter(writer)) +{ +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/prerequisites/streams/index.html b/ThirdParty/CsvHelper-master/docs/examples/prerequisites/streams/index.html new file mode 100644 index 0000000..4168219 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/prerequisites/streams/index.html @@ -0,0 +1,453 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Streams | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="streams">Streams</h1> +<p>When reading from a stream, if you need to go back to the beginning of the stream, you can use the <code>Stream.Position</code> property.</p> +<pre><code class="language-cs">using (var stream = new File.OpenRead("path\\to\\file")) +using (var reader = new StreamReader(stream)) +{ + // Read file content. + var content = reader.ReadToEnd(); + + // Go back to beginning of the stream. + stream.Position = 0; + + // Read file content again. + content = reader.ReadToEnd(); +} +</code></pre> +<p>When writing to a file, you need to flush the writer for the data to be written to the stream. <code>StreamWriter</code> contains an internal buffer and the data is only written to the stream when the buffer is full, or <code>Flush</code> is called. <code>Flush</code> is automatically called when a <code>using</code> block exits.</p> +<pre><code class="language-cs">using (var stream = new File.OpenWrite("path\\to\\file")) +using (var writer = new StreamWriter(stream)) +{ + writer.WriteLine("Foo"); + writer.Flush(); // Data is written from the writer buffer to the stream. +} // Flush is also called here. +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/prerequisites/using-and-dispose/index.html b/ThirdParty/CsvHelper-master/docs/examples/prerequisites/using-and-dispose/index.html new file mode 100644 index 0000000..1b06644 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/prerequisites/using-and-dispose/index.html @@ -0,0 +1,444 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Using And Dispose | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="using-and-dispose">Using and Dispose</h1> +<p>Whenever you have an object the implements <code>IDisposable</code>, you need to dispose of the resource when you're done with it. Most classes that use unmanaged resources will implement <code>IDisposable</code>. This means a lot of classes in the <code>System.IO</code> namespace will need to be disposed of.</p> +<p>The best practice to dispose of an object when you're done with it is to wrap the code in a <code>using</code> block. When the <code>using</code> block exits, the resource will automatically be disposed of as soon as possible.</p> +<pre><code class="language-cs">using (var stream = new MemoryStream()) +{ + // Use the stream. +} +// The stream will be disposed of as soon as possible. +</code></pre> +<p>If you need to keep keep it around for a while and dispose of it later, <code>using</code> does some error handling for you, so it's still a good idea to use it instead of calling <code>Dispose</code> directly. There is some debate on whether this is a good idea because it doesn't show intent.</p> +<pre><code class="language-cs">var stream = new MemoryStream(); +// Later in a different part of your code. +using (stream) { } +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/enumerate-class-records/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/enumerate-class-records/index.html new file mode 100644 index 0000000..4102d5d --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/reading/enumerate-class-records/index.html @@ -0,0 +1,457 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Enumerate Class Records | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="enumerate-class-records">Enumerate Class Records</h1> +<p>Convert CSV rows into a class object that is re-used on every iteration of the enumerable. Each enumeration will hydrate the given record, but only the mapped members. If you supplied a map and didn't map one of the members, that member will not get hydrated with the current row's data. Be careful. Any methods that you call on the projection that force the evaluation of the <code>IEnumerable</code>, such as <code>ToList()</code>, you will get a list where all the records are the same instance you provided that is hydrated with the last record in the CSV file.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + var record = new Foo(); + var records = csv.EnumerateRecords(record); + foreach (var r in records) + { + // r is the same instance as record. + } + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/get-anonymous-type-records/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/get-anonymous-type-records/index.html new file mode 100644 index 0000000..44e5bac --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/reading/get-anonymous-type-records/index.html @@ -0,0 +1,451 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Get Anonymous Type Records | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="get-anonymous-type-records">Get Anonymous Type Records</h1> +<p>Convert CSV rows into anonymous type objects. You just need to supply the anonymous type definition.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + var anonymousTypeDefinition = new + { + Id = default(int), + Name = string.Empty + }; + var records = csv.GetRecords(anonymousTypeDefinition); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/get-class-records/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/get-class-records/index.html new file mode 100644 index 0000000..98045ef --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/reading/get-class-records/index.html @@ -0,0 +1,452 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Get Class Records | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="get-class-records">Get Class Records</h1> +<p>Convert CSV rows into class objects.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/get-dynamic-records/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/get-dynamic-records/index.html new file mode 100644 index 0000000..d1b8eb8 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/reading/get-dynamic-records/index.html @@ -0,0 +1,446 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Get Dynamic Records | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="get-dynamic-records">Get Dynamic Records</h1> +<p>Convert CSV rows into <code>dynamic</code> objects. Since there is no way to tell what type the properties should be, all the properties on the dynamic object are strings.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + var records = csv.GetRecords<dynamic>(); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/index.html new file mode 100644 index 0000000..cb0538a --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/reading/index.html @@ -0,0 +1,469 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Reading | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="reading">Reading</h1> +<table> +<thead> +<tr> +<th>Topics</th> +<th>Â </th> +</tr> +</thead> +<tbody> +<tr> +<td><a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a></td> +<td></td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a></td> +<td></td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a></td> +<td></td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a></td> +<td></td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a></td> +<td></td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a></td> +<td></td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a></td> +<td></td> +</tr> +</tbody> +</table> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/reading-by-hand/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-by-hand/index.html new file mode 100644 index 0000000..dc8cb29 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-by-hand/index.html @@ -0,0 +1,463 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Reading By Hand | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="reading-by-hand">Reading by Hand</h1> +<p>Sometimes it's easier to not try and configure a mapping to match your class definition for various reasons. It's usually only a few more lines of code to just read the rows by hand instead.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + var records = new List<Foo>(); + csv.Read(); + csv.ReadHeader(); + while (csv.Read()) + { + var record = new Foo + { + Id = csv.GetField<int>("Id"), + Name = csv.GetField("Name") + }; + records.Add(record); + } + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-data-sets/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-data-sets/index.html new file mode 100644 index 0000000..baba878 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-data-sets/index.html @@ -0,0 +1,514 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Reading Multiple Data Sets | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="reading-multiple-data-sets">Reading Multiple Data Sets</h1> +<p>For some reason there are CSV files out there that contain multiple sets of CSV data in them. You should be able to read files like this without issue. You will need to detect when to change class types you are retreiving.</p> +<h6 id="data">Data</h6> +<pre><code>FooId,Name +1,foo + +BarId,Name +07a0fca2-1b1c-4e44-b1be-c2b05da5afc7,bar +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + var config = new CsvConfiguration(CultureInfo.InvariantCulture) + { + IgnoreBlankLines = false, + }; + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, config)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.Context.RegisterClassMap<BarMap>(); + var fooRecords = new List<Foo>(); + var barRecords = new List<Bar>(); + var isHeader = true; + while (csv.Read()) + { + if (isHeader) + { + csv.ReadHeader(); + isHeader = false; + continue; + } + + if (string.IsNullOrEmpty(csv.GetField(0))) + { + isHeader = true; + continue; + } + + switch (csv.HeaderRecord[0]) + { + case "FooId": + fooRecords.Add(csv.GetRecord<Foo>()); + break; + case "BarId": + barRecords.Add(csv.GetRecord<Bar>()); + break; + default: + throw new InvalidOperationException("Unknown record type."); + } + } + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } +} + +public class Bar +{ + public Guid Id { get; set; } + public string Name { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id).Name("FooId"); + Map(m => m.Name); + } +} + +public sealed class BarMap : ClassMap<Bar> +{ + public BarMap() + { + Map(m => m.Id).Name("BarId"); + Map(m => m.Name); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-record-types/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-record-types/index.html new file mode 100644 index 0000000..c86999e --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-record-types/index.html @@ -0,0 +1,497 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Reading Multiple Record Types | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="reading-multiple-record-types">Reading Multiple Record Types</h1> +<p>If you have CSV data where each row may be a different record type, you should be able to read based on a row type or something similar.</p> +<h6 id="data">Data</h6> +<pre><code>A,1,foo +B,07a0fca2-1b1c-4e44-b1be-c2b05da5afc7,bar +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + var config = new CsvConfiguration(CultureInfo.InvariantCulture) + { + HasHeaderRecord = false, + }; + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, config)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.Context.RegisterClassMap<BarMap>(); + var fooRecords = new List<Foo>(); + var barRecords = new List<Bar>(); + while (csv.Read()) + { + switch (csv.GetField(0)) + { + case "A": + fooRecords.Add(csv.GetRecord<Foo>()); + break; + case "B": + barRecords.Add(csv.GetRecord<Bar>()); + break; + default: + throw new InvalidOperationException("Unknown record type."); + } + } + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } +} + +public class Bar +{ + public Guid Id { get; set; } + public string Name { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id).Index(1); + Map(m => m.Name).Index(2); + } +} + +public sealed class BarMap : ClassMap<Bar> +{ + public BarMap() + { + Map(m => m.Id).Index(1); + Map(m => m.Name).Index(2); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/type-conversion/custom-type-converter/index.html b/ThirdParty/CsvHelper-master/docs/examples/type-conversion/custom-type-converter/index.html new file mode 100644 index 0000000..39ceb3f --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/type-conversion/custom-type-converter/index.html @@ -0,0 +1,480 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Custom Type Converter | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="custom-type-converters">Custom Type Converters</h1> +<p>The built in type converters will handle most situations for you, but if you find +a situation where they don't you can create your own type converter.</p> +<p>You can register the converter globally or per member via an attribute or class map. +You only need to use one, but all are shown in the example.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name,Json +1,one,"{""foo"": ""bar""}" +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + // Register globally. + csv.Context.TypeConverterCache.AddConverter<JsonNode>(new JsonNodeConverter()); + csv.Context.RegisterClassMap<FooMap>(); + csv.GetRecords<Foo>().ToList().Dump(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + // Register via attribute. + [TypeConverter(typeof(JsonNodeConverter))] + public JsonNode Json { get; set; } +} + +public class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + // Register via map. + Map(m => m.Json).TypeConverter<JsonNodeConverter>(); + } +} + +public class JsonNodeConverter : DefaultTypeConverter +{ + public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData) + { + return JsonSerializer.Deserialize<JsonNode>(text); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/type-conversion/index.html b/ThirdParty/CsvHelper-master/docs/examples/type-conversion/index.html new file mode 100644 index 0000000..9c01ea2 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/type-conversion/index.html @@ -0,0 +1,596 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Type Conversion | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="type-conversion">Type Conversion</h1> +<p>When reading and writing a custom class will get converted to and from +a CSV row. Each CSV field can be converted to and from a class property.<br /> +This conversion for class properties is done via type converters.</p> +<p>There are many built in converters already available to you.</p> +<table> +<thead> +<tr> +<th>CsvHelper Converter</th> +<th>C# type keyword</th> +<th>.NET Type</th> +</tr> +</thead> +<tbody> +<tr> +<td>ArrayConverter</td> +<td>[ ]</td> +<td>System.Array</td> +</tr> +<tr> +<td>BigIntegerConverter</td> +<td></td> +<td>System.Numerics.BigInteger</td> +</tr> +<tr> +<td>BooleanConverter</td> +<td>bool</td> +<td>System.Boolean</td> +</tr> +<tr> +<td>ByteArrayConverter</td> +<td>byte[ ]</td> +<td>System.Array</td> +</tr> +<tr> +<td>ByteConverter</td> +<td>byte</td> +<td>System.Byte</td> +</tr> +<tr> +<td>CharConverter</td> +<td>char</td> +<td>System.Char</td> +</tr> +<tr> +<td>CollectionGenericConverter</td> +<td></td> +<td>System.Collections.Generic.Collection<T>, System.Collections.Generic.List<T></td> +</tr> +<tr> +<td>DateOnlyConverter</td> +<td></td> +<td>System.DateOnly</td> +</tr> +<tr> +<td>DateTimeConverter</td> +<td></td> +<td>System.DateTime</td> +</tr> +<tr> +<td>DateTimeOffsetConverter</td> +<td></td> +<td>System.DateTimeOffset</td> +</tr> +<tr> +<td>DecimalConverter</td> +<td>decimal</td> +<td>System.Decimal</td> +</tr> +<tr> +<td>DoubleConverter</td> +<td>double</td> +<td>System.Double</td> +</tr> +<tr> +<td>EnumConverter</td> +<td>enum</td> +<td>System.Enum</td> +</tr> +<tr> +<td>GuidConverter</td> +<td></td> +<td>System.Guid</td> +</tr> +<tr> +<td>IDictionaryConverter</td> +<td></td> +<td>System.Collections.Generic.Dictionary<string, string></td> +</tr> +<tr> +<td>IDictionaryGenericConverter</td> +<td></td> +<td>System.Collections.Generic.Dictionary<TKey, TValue></td> +</tr> +<tr> +<td>IEnumerableConverter</td> +<td></td> +<td>System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList</td> +</tr> +<tr> +<td>IEnumerableGenericConverter</td> +<td></td> +<td>System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IList<T></td> +</tr> +<tr> +<td>Int16Converter</td> +<td>short</td> +<td>System.Int16</td> +</tr> +<tr> +<td>Int32Converter</td> +<td>int</td> +<td>System.Int32</td> +</tr> +<tr> +<td>Int64Converter</td> +<td>long</td> +<td>System.Int64</td> +</tr> +<tr> +<td>NullableConverter</td> +<td></td> +<td>System.Nullable<T></td> +</tr> +<tr> +<td>SByteConverter</td> +<td>sbyte</td> +<td>System.SByte</td> +</tr> +<tr> +<td>SingleConverter</td> +<td>float</td> +<td>System.Single</td> +</tr> +<tr> +<td>StringConverter</td> +<td>string</td> +<td>System.String</td> +</tr> +<tr> +<td>TimeOnlyConverter</td> +<td></td> +<td>System.TimeOnly</td> +</tr> +<tr> +<td>UInt16Converter</td> +<td>ushort</td> +<td>System.UInt16</td> +</tr> +<tr> +<td>UInt32Converter</td> +<td>uint</td> +<td>System.UInt32</td> +</tr> +<tr> +<td>UInt64Converter</td> +<td>ulong</td> +<td>System.UInt64</td> +</tr> +<tr> +<td>UriConverter</td> +<td></td> +<td>System.Uri</td> +</tr> +</tbody> +</table> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/type-conversion/type-converter-options/index.html b/ThirdParty/CsvHelper-master/docs/examples/type-conversion/type-converter-options/index.html new file mode 100644 index 0000000..0fbc43d --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/type-conversion/type-converter-options/index.html @@ -0,0 +1,450 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Type Converter Options | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="type-converter-options">Type Converter Options</h1> +<p>Options can be passed to the type converters. +Most type converters use <code>IFormattable.ToString</code> to write and <code>TryParse</code> to read. +Any option for these methods should be available through configuration.</p> +<h6 id="mapping-example">Mapping Example</h6> +<pre><code class="language-cs">public sealed class FooMap : ClassMap\<Foo\> +{ + public FooMap() + { + Map(m => m.DateTimeProps).TypeConverterOption.DateTimeStyles(DateTimeStyles.AllowInnerWhite | DateTimeStyles.RoundtripKind); + } +} +</code></pre> +<h6 id="attributes-example">Attributes Example</h6> +<pre><code class="language-cs">public class Foo +{ + [DateTimeStyles(DateTimeStyles.AllowInnerWhite | DateTimeStyles.RoundtripKind)] + public DateTime DateTimeProp { get; set; } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/writing/appending-to-an-existing-file/index.html b/ThirdParty/CsvHelper-master/docs/examples/writing/appending-to-an-existing-file/index.html new file mode 100644 index 0000000..38dccda --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/writing/appending-to-an-existing-file/index.html @@ -0,0 +1,476 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Appending To An Existing File | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="appending-to-an-existing-csv-file">Appending to an Existing CSV File</h1> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + var records = new List<Foo> + { + new Foo { Id = 1, Name = "one" }, + }; + + // Write to a file. + using (var writer = new StreamWriter("path\\to\\file.csv")) + using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) + { + csv.WriteRecords(records); + } + + records = new List<Foo> + { + new Foo { Id = 2, Name = "two" }, + }; + + // Append to the file. + var config = new CsvConfiguration(CultureInfo.InvariantCulture) + { + // Don't write the header again. + HasHeaderRecord = false, + }; + using (var stream = File.Open("path\\to\\file.csv", FileMode.Append)) + using (var writer = new StreamWriter(stream)) + using (var csv = new CsvWriter(writer, config)) + { + csv.WriteRecords(records); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } +} +</code></pre> +<h6 id="output">Output</h6> +<pre><code>Id,Name +1,one +2,two +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/writing/index.html b/ThirdParty/CsvHelper-master/docs/examples/writing/index.html new file mode 100644 index 0000000..efe0007 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/writing/index.html @@ -0,0 +1,483 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Writing | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="writing">Writing</h1> +<h2 class="title is-2 has-text-danger">Injection Warning</h2> +<p>When opening a CSV in an external program, a formula in a field could be ran that contains a vulnerability. +Read more here: <a href="https://owasp.org/www-community/attacks/CSV_Injection">CSV Injection</a>. +Due to this issue, there is a setting <code>InjectionOptions</code> that can be configured.</p> +<p>The list of injection characters to detect are configurable in <code>CsvConfiguration.InjectionCharacters</code> +and default to <code>=</code>, <code>@</code>, <code>+</code>, <code>-</code>, <code>\t</code>, <code>\r</code>. An injection character can be the first character of a field +or quoted field. i.e. <code>=foo</code> or <code>"=foo"</code></p> +<p>The <code>InjectionOptions</code> values are <code>None</code> (default), <code>Escape</code>, <code>Strip</code>, and <code>Exception</code>.</p> +<h6 id="none">None</h6> +<p>No injection protection is taken.</p> +<h6 id="exception">Exception</h6> +<p>If an injection character is detected, a <code>CsvWriterException</code> is thrown.</p> +<h6 id="strip">Strip</h6> +<p>All injection characters at the start of a field will be removed. <code>===foo</code> will be stripped to <code>foo</code>.</p> +<h6 id="escape">Escape</h6> +<p>If an injection character is detected, the field will be prepended with the <code>InjectionEscapeCharacter</code> +that defaults to <code>'</code>. The field will be quoted if it is not already.</p> +<p><code>=one</code> -> <code>"'=one"</code></p> +<p><code>"=one"</code> -> <code>"'=one"</code></p> +<p><code>=one"two</code> -> <code>"'=one""two"</code></p> +<p>This option is disabled by default because the primary goal if this library is to read and write CSV +files. If you are storing user entered data that you haven't sanitized yourself and you're letting +it be accessed by people that may open in Excel/Sheets/etc, you might consider enabling this feature. +The <code>InjectionEscapeCharacter</code> is not removed when reading.</p> +<p>When writing, you can throw an enumerable of class objects, dynamic objects, anonymous type objects, or pretty much +anything else, and it will get written.</p> +<table> +<thead> +<tr> +<th>Topics</th> +<th>Â </th> +</tr> +</thead> +<tbody> +<tr> +<td><a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a></td> +<td></td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a></td> +<td></td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a></td> +<td></td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a></td> +<td></td> +</tr> +</tbody> +</table> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/writing/write-anonymous-type-objects/index.html b/ThirdParty/CsvHelper-master/docs/examples/writing/write-anonymous-type-objects/index.html new file mode 100644 index 0000000..66741ae --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/writing/write-anonymous-type-objects/index.html @@ -0,0 +1,450 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Write Anonymous Type Objects | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="write-anonymous-type-objects">Write Anonymous Type Objects</h1> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + var records = new List<object> + { + new { Id = 1, Name = "one" }, + }; + + using (var writer = new StreamWriter("path\\to\\file.csv")) + using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) + { + csv.WriteRecords(records); + } +} +</code></pre> +<h6 id="output">Output</h6> +<pre><code>Id,Name +1,one +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/writing/write-class-objects/index.html b/ThirdParty/CsvHelper-master/docs/examples/writing/write-class-objects/index.html new file mode 100644 index 0000000..3306af7 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/writing/write-class-objects/index.html @@ -0,0 +1,456 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Write Class Objects | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="write-class-objects">Write Class Objects</h1> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + var records = new List<Foo> + { + new Foo { Id = 1, Name = "one" }, + }; + + using (var writer = new StreamWriter("path\\to\\file.csv")) + using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) + { + csv.WriteRecords(records); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } +} +</code></pre> +<h6 id="output">Output</h6> +<pre><code>Id,Name +1,one +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/writing/write-dynamic-objects/index.html b/ThirdParty/CsvHelper-master/docs/examples/writing/write-dynamic-objects/index.html new file mode 100644 index 0000000..8992dca --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/writing/write-dynamic-objects/index.html @@ -0,0 +1,454 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Write Dynamic Objects | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="write-dynamic-objects">Write Dynamic Objects</h1> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + var records = new List<dynamic>(); + + dynamic record = new ExpandoObject(); + record.Id = 1; + record.Name = "one"; + records.Add(record); + + using (var writer = new StringWriter()) + using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) + { + csv.WriteRecords(records); + + writer.ToString().Dump(); + } +} +</code></pre> +<h6 id="output">Output</h6> +<pre><code>Id,Name +1,one +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> |