diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..1ff0c42
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,63 @@
+###############################################################################
+# Set default behavior to automatically normalize line endings.
+###############################################################################
+* text=auto
+
+###############################################################################
+# Set default behavior for command prompt diff.
+#
+# This is need for earlier builds of msysgit that does not have it on by
+# default for csharp files.
+# Note: This is only used by command line
+###############################################################################
+#*.cs diff=csharp
+
+###############################################################################
+# Set the merge driver for project and solution files
+#
+# Merging from the command prompt will add diff markers to the files if there
+# are conflicts (Merging from VS is not affected by the settings below, in VS
+# the diff markers are never inserted). Diff markers may cause the following
+# file extensions to fail to load in VS. An alternative would be to treat
+# these files as binary and thus will always conflict and require user
+# intervention with every merge. To do so, just uncomment the entries below
+###############################################################################
+#*.sln merge=binary
+#*.csproj merge=binary
+#*.vbproj merge=binary
+#*.vcxproj merge=binary
+#*.vcproj merge=binary
+#*.dbproj merge=binary
+#*.fsproj merge=binary
+#*.lsproj merge=binary
+#*.wixproj merge=binary
+#*.modelproj merge=binary
+#*.sqlproj merge=binary
+#*.wwaproj merge=binary
+
+###############################################################################
+# behavior for image files
+#
+# image files are treated as binary by default.
+###############################################################################
+#*.jpg binary
+#*.png binary
+#*.gif binary
+
+###############################################################################
+# diff behavior for common document formats
+#
+# Convert binary document formats to text before diffing them. This feature
+# is only available from the command line. Turn it on by uncommenting the
+# entries below.
+###############################################################################
+#*.doc diff=astextplain
+#*.DOC diff=astextplain
+#*.docx diff=astextplain
+#*.DOCX diff=astextplain
+#*.dot diff=astextplain
+#*.DOT diff=astextplain
+#*.pdf diff=astextplain
+#*.PDF diff=astextplain
+#*.rtf diff=astextplain
+#*.RTF diff=astextplain
diff --git a/.gitignore b/.gitignore
index ca1c7a3..4ce6fdd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,7 @@
-# ---> VisualStudio
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
-## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
@@ -14,9 +13,6 @@
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
-# Mono auto generated files
-mono_crash.*
-
# Build results
[Dd]ebug/
[Dd]ebugPublic/
@@ -24,14 +20,12 @@ mono_crash.*
[Rr]eleases/
x64/
x86/
-[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
-[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
@@ -45,10 +39,9 @@ Generated\ Files/
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
-# NUnit
+# NUNIT
*.VisualState.xml
TestResult.xml
-nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
@@ -63,9 +56,6 @@ project.lock.json
project.fragment.lock.json
artifacts/
-# ASP.NET Scaffolding
-ScaffoldingReadMe.txt
-
# StyleCop
StyleCopReport.xml
@@ -91,7 +81,6 @@ StyleCopReport.xml
*.tmp_proj
*_wpftmp.csproj
*.log
-*.tlog
*.vspscc
*.vssscc
.builds
@@ -133,6 +122,9 @@ _ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
+# JustCode is a .NET coding add-in
+.JustCode
+
# TeamCity is a build add-in
_TeamCity*
@@ -143,11 +135,6 @@ _TeamCity*
.axoCover/*
!.axoCover/settings.json
-# Coverlet is a free, cross platform Code Coverage Tool
-coverage*.json
-coverage*.xml
-coverage*.info
-
# Visual Studio code coverage results
*.coverage
*.coveragexml
@@ -195,8 +182,6 @@ PublishScripts/
# NuGet Packages
*.nupkg
-# NuGet Symbol Packages
-*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
@@ -221,8 +206,6 @@ BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
-*.appxbundle
-*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
@@ -272,9 +255,7 @@ ServiceFabricBackup/
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
-*- [Bb]ackup.rdl
-*- [Bb]ackup ([0-9]).rdl
-*- [Bb]ackup ([0-9][0-9]).rdl
+*- Backup*.rdl
# Microsoft Fakes
FakesAssemblies/
@@ -295,17 +276,6 @@ node_modules/
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
-# Visual Studio 6 auto-generated project file (contains which files were open etc.)
-*.vbp
-
-# Visual Studio 6 workspace and project file (working project files containing files to include in project)
-*.dsw
-*.dsp
-
-# Visual Studio 6 technical files
-*.ncb
-*.aps
-
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
@@ -321,6 +291,10 @@ paket-files/
# FAKE - F# Make
.fake/
+# JetBrains Rider
+.idea/
+*.sln.iml
+
# CodeRush personal settings
.cr/personal
@@ -362,39 +336,5 @@ ASALocalRun/
# Local History for Visual Studio
.localhistory/
-# Visual Studio History (VSHistory) files
-.vshistory/
-
# BeatPulse healthcheck temp database
-healthchecksdb
-
-# Backup folder for Package Reference Convert tool in Visual Studio 2017
-MigrationBackup/
-
-# Ionide (cross platform F# VS Code tools) working folder
-.ionide/
-
-# Fody - auto-generated XML schema
-FodyWeavers.xsd
-
-# VS Code files for those working on multiple tools
-.vscode/*
-!.vscode/settings.json
-!.vscode/tasks.json
-!.vscode/launch.json
-!.vscode/extensions.json
-*.code-workspace
-
-# Local History for Visual Studio Code
-.history/
-
-# Windows Installer files from build outputs
-*.cab
-*.msi
-*.msix
-*.msm
-*.msp
-
-# JetBrains Rider
-*.sln.iml
-
+healthchecksdb
\ No newline at end of file
diff --git a/App.config b/App.config
new file mode 100644
index 0000000..56efbc7
--- /dev/null
+++ b/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CSVToTXT.csproj b/CSVToTXT.csproj
new file mode 100644
index 0000000..2622508
--- /dev/null
+++ b/CSVToTXT.csproj
@@ -0,0 +1,83 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {29045C7C-97EC-49F6-A9AB-7E1FCA37E9A1}
+ WinExe
+ CSVToTXT
+ CSVToTXT
+ v4.7.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ frmCSVToTXT.cs
+
+
+
+
+ frmCSVToTXT.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CSVToTXT.sln b/CSVToTXT.sln
new file mode 100644
index 0000000..5943ffd
--- /dev/null
+++ b/CSVToTXT.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31005.135
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSVToTXT", "CSVToTXT.csproj", "{29045C7C-97EC-49F6-A9AB-7E1FCA37E9A1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {29045C7C-97EC-49F6-A9AB-7E1FCA37E9A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {29045C7C-97EC-49F6-A9AB-7E1FCA37E9A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {29045C7C-97EC-49F6-A9AB-7E1FCA37E9A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {29045C7C-97EC-49F6-A9AB-7E1FCA37E9A1}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E5C9D6DB-473D-4FA3-AABF-610C57524E34}
+ EndGlobalSection
+EndGlobal
diff --git a/Program.cs b/Program.cs
new file mode 100644
index 0000000..5ec2d64
--- /dev/null
+++ b/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace CSVToTXT
+{
+ static class Program
+ {
+ ///
+ /// Punto di ingresso principale dell'applicazione.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new frmCSVToTXT());
+ }
+ }
+}
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..331b4d9
--- /dev/null
+++ b/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Le informazioni generali relative a un assembly sono controllate dal seguente
+// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
+// associate a un assembly.
+[assembly: AssemblyTitle("CSVToTXT")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("CSVToTXT")]
+[assembly: AssemblyCopyright("Copyright © 2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili
+// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da
+// COM, impostare su true l'attributo ComVisible per tale tipo.
+[assembly: ComVisible(false)]
+
+// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi
+[assembly: Guid("29045c7c-97ec-49f6-a9ab-7e1fca37e9a1")]
+
+// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori:
+//
+// Versione principale
+// Versione secondaria
+// Numero di build
+// Revisione
+//
+// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
+// usando l'asterisco '*' come illustrato di seguito:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..c224b66
--- /dev/null
+++ b/Properties/Resources.Designer.cs
@@ -0,0 +1,70 @@
+//------------------------------------------------------------------------------
+//
+// Codice generato da uno strumento.
+// Versione runtime:4.0.30319.42000
+//
+// Le modifiche apportate a questo file possono causare un comportamento non corretto e andranno perse se
+// il codice viene rigenerato.
+//
+//------------------------------------------------------------------------------
+
+
+namespace CSVToTXT.Properties
+{
+ ///
+ /// Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via.
+ ///
+ // Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder
+ // tramite uno strumento quale ResGen o Visual Studio.
+ // Per aggiungere o rimuovere un membro, modificare il file .ResX, quindi eseguire di nuovo ResGen
+ // con l'opzione /str oppure ricompilare il progetto VS.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Restituisce l'istanza di ResourceManager memorizzata nella cache e usata da questa classe.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CSVToTXT.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte
+ /// le ricerche di risorse che utilizzano questa classe di risorse fortemente tipizzata.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Properties/Resources.resx b/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..3e5d13d
--- /dev/null
+++ b/Properties/Settings.Designer.cs
@@ -0,0 +1,29 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+
+namespace CSVToTXT.Properties
+{
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Properties/Settings.settings b/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/frmCSVToTXT.Designer.cs b/frmCSVToTXT.Designer.cs
new file mode 100644
index 0000000..dbf7810
--- /dev/null
+++ b/frmCSVToTXT.Designer.cs
@@ -0,0 +1,167 @@
+
+namespace CSVToTXT
+{
+ partial class frmCSVToTXT
+ {
+ ///
+ /// Variabile di progettazione necessaria.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Pulire le risorse in uso.
+ ///
+ /// ha valore true se le risorse gestite devono essere eliminate, false in caso contrario.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Codice generato da Progettazione Windows Form
+
+ ///
+ /// Metodo necessario per il supporto della finestra di progettazione. Non modificare
+ /// il contenuto del metodo con l'editor di codice.
+ ///
+ private void InitializeComponent()
+ {
+ this.dtpAnnoMese = new System.Windows.Forms.DateTimePicker();
+ this.txtCodAzi = new System.Windows.Forms.TextBox();
+ this.lblData = new System.Windows.Forms.Label();
+ this.lblCodAzi = new System.Windows.Forms.Label();
+ this.btnConverti = new System.Windows.Forms.Button();
+ this.btnCercaFile = new System.Windows.Forms.Button();
+ this.txtFile = new System.Windows.Forms.TextBox();
+ this.lblCSV = new System.Windows.Forms.Label();
+ this.txtArea = new System.Windows.Forms.TextBox();
+ this.SuspendLayout();
+ //
+ // dtpAnnoMese
+ //
+ this.dtpAnnoMese.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.dtpAnnoMese.Location = new System.Drawing.Point(110, 47);
+ this.dtpAnnoMese.Name = "dtpAnnoMese";
+ this.dtpAnnoMese.Size = new System.Drawing.Size(194, 23);
+ this.dtpAnnoMese.TabIndex = 2;
+ //
+ // txtCodAzi
+ //
+ this.txtCodAzi.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txtCodAzi.Location = new System.Drawing.Point(110, 6);
+ this.txtCodAzi.MaxLength = 4;
+ this.txtCodAzi.Name = "txtCodAzi";
+ this.txtCodAzi.Size = new System.Drawing.Size(98, 23);
+ this.txtCodAzi.TabIndex = 1;
+ this.txtCodAzi.Leave += new System.EventHandler(this.txtCodAzi_Leave);
+ //
+ // lblData
+ //
+ this.lblData.AutoSize = true;
+ this.lblData.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblData.Location = new System.Drawing.Point(12, 51);
+ this.lblData.Name = "lblData";
+ this.lblData.Size = new System.Drawing.Size(75, 15);
+ this.lblData.TabIndex = 18;
+ this.lblData.Text = "Data calcolo:";
+ //
+ // lblCodAzi
+ //
+ this.lblCodAzi.AutoSize = true;
+ this.lblCodAzi.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblCodAzi.Location = new System.Drawing.Point(12, 9);
+ this.lblCodAzi.Name = "lblCodAzi";
+ this.lblCodAzi.Size = new System.Drawing.Size(92, 15);
+ this.lblCodAzi.TabIndex = 17;
+ this.lblCodAzi.Text = "Codice Azienda:";
+ //
+ // btnConverti
+ //
+ this.btnConverti.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnConverti.Location = new System.Drawing.Point(15, 142);
+ this.btnConverti.Name = "btnConverti";
+ this.btnConverti.Size = new System.Drawing.Size(79, 27);
+ this.btnConverti.TabIndex = 5;
+ this.btnConverti.Text = "Genera TXT";
+ this.btnConverti.UseVisualStyleBackColor = true;
+ this.btnConverti.Click += new System.EventHandler(this.btnConvertiTxt_Click);
+ //
+ // btnCercaFile
+ //
+ this.btnCercaFile.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnCercaFile.Location = new System.Drawing.Point(537, 103);
+ this.btnCercaFile.Name = "btnCercaFile";
+ this.btnCercaFile.Size = new System.Drawing.Size(82, 23);
+ this.btnCercaFile.TabIndex = 4;
+ this.btnCercaFile.Text = "Cerca";
+ this.btnCercaFile.UseVisualStyleBackColor = true;
+ this.btnCercaFile.Click += new System.EventHandler(this.btnCercaFile_Click);
+ //
+ // txtFile
+ //
+ this.txtFile.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txtFile.Location = new System.Drawing.Point(14, 103);
+ this.txtFile.Name = "txtFile";
+ this.txtFile.Size = new System.Drawing.Size(516, 23);
+ this.txtFile.TabIndex = 3;
+ //
+ // lblCSV
+ //
+ this.lblCSV.AutoSize = true;
+ this.lblCSV.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblCSV.Location = new System.Drawing.Point(12, 85);
+ this.lblCSV.Name = "lblCSV";
+ this.lblCSV.Size = new System.Drawing.Size(124, 15);
+ this.lblCSV.TabIndex = 12;
+ this.lblCSV.Text = "File CSV da convertire:";
+ //
+ // txtArea
+ //
+ this.txtArea.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txtArea.Location = new System.Drawing.Point(14, 175);
+ this.txtArea.Multiline = true;
+ this.txtArea.Name = "txtArea";
+ this.txtArea.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
+ this.txtArea.Size = new System.Drawing.Size(604, 324);
+ this.txtArea.TabIndex = 6;
+ //
+ // frmCSVToTXT
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(632, 519);
+ this.Controls.Add(this.dtpAnnoMese);
+ this.Controls.Add(this.txtCodAzi);
+ this.Controls.Add(this.lblData);
+ this.Controls.Add(this.lblCodAzi);
+ this.Controls.Add(this.btnConverti);
+ this.Controls.Add(this.btnCercaFile);
+ this.Controls.Add(this.txtFile);
+ this.Controls.Add(this.lblCSV);
+ this.Controls.Add(this.txtArea);
+ this.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.Name = "frmCSVToTXT";
+ this.ShowIcon = false;
+ this.Text = "Converti da CSV a TXT";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.DateTimePicker dtpAnnoMese;
+ private System.Windows.Forms.TextBox txtCodAzi;
+ private System.Windows.Forms.Label lblData;
+ private System.Windows.Forms.Label lblCodAzi;
+ private System.Windows.Forms.Button btnConverti;
+ private System.Windows.Forms.Button btnCercaFile;
+ private System.Windows.Forms.TextBox txtFile;
+ private System.Windows.Forms.Label lblCSV;
+ private System.Windows.Forms.TextBox txtArea;
+ }
+}
+
diff --git a/frmCSVToTXT.cs b/frmCSVToTXT.cs
new file mode 100644
index 0000000..7e27a67
--- /dev/null
+++ b/frmCSVToTXT.cs
@@ -0,0 +1,1239 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Xml.Linq;
+
+namespace CSVToTXT
+{
+ public partial class frmCSVToTXT : Form
+ {
+
+ //valori costanti dell'xml
+ //path destinazione è il perscorso dove verranno salvati i file xml generati.
+ //viene letto nel file XmlConfigFile.xml dentro alla cartella bin del progetto
+ public static string pathDestinazione = string.Empty;
+
+ public frmCSVToTXT()
+ {
+ InitializeComponent();
+ ReadXML();
+ }
+
+ #region METODI
+
+ public void ReadXML()
+ {
+ try
+ {
+ //cicla gli elementi del file .xml passato al Load, guardando i nodi (Items) e relativi sottnodi del nodo padre (item)
+ //foreach (var item in XElement.Load(@"XMLFile1.xml").Descendants("Items").Elements("Item"))
+ foreach (var item in XElement.Load(@"XmlConfigFile.xml").Descendants("Items").Elements("Item"))
+ {
+ //se l'elemento non ha attributi
+ if (!item.Attributes().Any())
+ {
+ continue;
+ }
+
+ var nome = item.Attribute("name").Value;
+ var valore = item.Attribute("value").Value;
+
+ switch (nome)
+ {
+ case "diOutput":
+ pathDestinazione = valore;
+ //txtArea.Text = $"{pathDestinazione}";
+ break;
+ default:
+ txtArea.Text = $"nome: {nome} valore: {valore}";
+ break;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ txtArea.Text = ex.Message;
+ }
+ }
+
+ private void CercaNeiFile()
+ {
+ //creo oggetto openFileDialog1
+ OpenFileDialog openFileDialog1 = new OpenFileDialog();
+
+ //apro finestra per selezionare il file
+ DialogResult res = openFileDialog1.ShowDialog();
+
+ if (res == DialogResult.OK)
+ {
+ string nomeFileTrovato = openFileDialog1.FileName;
+
+ txtFile.Text = nomeFileTrovato;
+
+ txtArea.Text = $"Premere Genera TXT per iniziare la procedura di conversione."
+ + Environment.NewLine;
+ }
+ }
+
+ private void ControllaDareAvere(List list)
+ {
+ decimal TotDare = 0;
+ decimal TotAvere = 0;
+
+ foreach (var item in list)
+ {
+ TotDare += item.DoubleImportoDare;
+ TotAvere += item.DoubleImportoAvere;
+ }
+ var differenza = TotDare - TotAvere;
+
+ if (differenza != 0)
+ {
+ MessageBox.Show($"LA differenza tra gli importi in DARE e gli importi in AVERE deve essere ZERO.",
+ "Erore differenza importi dare/avere",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private List CreaOggettiPerConversioni()
+ {
+ List listPartenza = new List();
+
+ List listaOrdinata = new List();
+
+ //var listaRighe = File.ReadAllLines(txtFile.Text).Where(x => !string.IsNullOrEmpty(x)).Skip(1).ToList();
+
+ //leggo le righe del file CSV(ReadLines())
+ //filtro per le righe che non sono nulle (where).
+ //skippo la prima che ha i titoli delle colonne (skip(1)).
+ //per ogni riga creo un oggetto
+ listPartenza = File.ReadLines(txtFile.Text).Where(x => !string.IsNullOrEmpty(x)).Skip(1).Select(x => CSVFileObject.FromCsvGigante(x)).ToList();
+
+ ControllaDareAvere(listPartenza);
+
+ //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
+ //listaOrdinata = listPartenza.OrderBy(x => x.IntCodiceDatoRipartizione4).ToList();
+ listaOrdinata = listPartenza.OrderBy(x => x.intCodificaDellaRipartizione3).ToList();
+
+ return listaOrdinata;
+ }
+
+ private void CostruisciFileTXT(List list)
+ {
+ ControllaDareAvere(list);
+
+ var lastCodice = 99999;
+
+ StringBuilder sb = new StringBuilder();
+
+ var testataDoc = InsertTestataDocumento();
+
+ var boolean = 0;
+
+ var BKTXTCount = 0;
+
+ sb.Append(testataDoc);
+
+ if (list != null && list.Any())
+ {
+ foreach (var item in list)
+ {
+ //controllo che la lunghezza del codiceConto non sia meno di 9
+ if (item.CodiceConto.Length >= 9)
+ {
+ //quando ci saranno i centri di costo definiti (cioè che saranno tutti valorizzati e diversi da 0 allora il ramo dx dell'AND si potrà togliere)
+ if (item.IntCodiceDatoRipartizione4 != lastCodice)
+ {
+ BKTXTCount++;
+
+ //assegno a last codice l'elemento di rottura trovato così diventa quello attuale
+ lastCodice = item.IntCodiceDatoRipartizione4/*item.CodiceDatoRipartizione4*/;
+
+ //ho trovato elemento di rottura, quindi devo inserire una nuova testata di riga
+ var testataRighe = InsertTestataRiga(item, BKTXTCount);
+ sb.Append(testataRighe);
+
+ //lastCodice = item.IntCodiceDatoRipartizione4/*item.CodiceDatoRipartizione4*/;
+ }
+ }
+ else
+ {
+ var str = MessageBox.Show($"il Codice Conto: {item.CodiceConto} deve essere lungo nove.",
+ "Errore Codice Conto",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ boolean = 1;
+ break;
+ }
+
+ //aggiungo riga con importo quindi richiamo metodo 2
+ var righeDoc = InsertRigheDocumento(item);
+ sb.Append(righeDoc);
+ }
+ }
+
+ if (boolean == 0)
+ {
+ var nomefile = $@"KSIP001_{txtCodAzi.Text}.txt";
+ var path = $@"{pathDestinazione}\{nomefile}";
+
+ File.WriteAllText(path, sb.ToString());
+
+ if (File.Exists(path))
+ {
+ txtArea.Text += Environment.NewLine +
+ //"File KSIP001_UMB.txt creato correttamente.";
+ $@"File {nomefile} creato correttamente.";
+ }
+ else
+ {
+ txtArea.Text += Environment.NewLine +
+ //"File KSIP001_UMB.txt non creato.";
+ $@"File {nomefile} non creato.";
+ }
+ }
+ else
+ {
+ txtArea.Text += Environment.NewLine + Environment.NewLine +
+ "ERRORE: non è stato possibile creare il file."
+ + Environment.NewLine;
+ }
+ }
+
+ private string InsertTestataDocumento()
+ {
+ StringBuilder sb = new StringBuilder();
+ var STYPE = "0";
+ sb.Append(STYPE.PadRight(1));
+ var GROUP = "CONTAB_HRS_C"; //prenderà un valore
+ sb.Append(GROUP.PadRight(12));
+ var MANDT = "100"; //prenderà un valore
+ sb.Append(MANDT.PadRight(3));
+ var USNAM = "."; //prenderà un valore
+ sb.Append(USNAM.PadRight(12));
+ //var START = DateTime.Now.ToString("ddMMyyyy"); //prenderà un valore
+ var START = ""; //prenderà un valore
+ sb.Append(START.PadRight(8));
+ var XKEEP = ""; //prenderà un valore
+ sb.Append(XKEEP.PadRight(1));
+ var NODATA = "/"; //prenderà un valore
+ sb.Append(NODATA.PadRight(1));
+ sb.Append(Environment.NewLine);
+ //sb.Append(Environment.NewLine);
+
+ return sb.ToString();
+ }
+
+ private string InsertTestataRiga(CSVFileObject item, int BKTXTCount)
+ {
+ StringBuilder sb = new StringBuilder();
+
+ var STYPE = "1";
+ sb.Append(STYPE.PadRight(1));
+ var TCODE = "FB01";
+ sb.Append(TCODE.PadRight(20));
+ var BLDAT = $"27{item.DalMese.Replace("/", "")}"; //prenderà un valore DA CAPIRE QUALE CAMPO è
+ //var BLDAT = DateTime.Now.ToString("ddMMyyyy");
+ sb.Append(BLDAT.PadRight(8));
+ var BLART = "PE"; //prenderà PE o PD - PE -> stipendi PD -> personale pareggio debiti (da capire quali sono gli uni e gli altri)
+ sb.Append(BLART.PadRight(2));
+ var BUKRS = txtCodAzi.Text;/*GORI*/ /*"UMBR"*///prenderà un valore DA CAPIRE COME VALORIZZARE (PREDE IL CODICE SOCIETA' SAP, DA CAPIRE SE TXTCODAZI VA BENE)
+ sb.Append(BUKRS.PadRight(4));
+ var BUDAT = $"27{item.AlMese.Replace("/", "")}"; //prenderà un valore DA CAPIRE QUALE CAMPO è
+ sb.Append(BUDAT.PadRight(8));
+ var MONAT = "/";
+ sb.Append(MONAT.PadRight(2));
+ var WAERS = "EUR";
+ sb.Append(WAERS.PadRight(5));
+ var KURSF = "/";
+ sb.Append(KURSF.PadRight(10));
+ var BELNR = "/";
+ sb.Append(BELNR.PadRight(10));
+ var WWERT = "/";
+ sb.Append(WWERT.PadRight(8));
+ var XBLNR = "/";
+ sb.Append(XBLNR.PadRight(16));
+ var BVORG = "/";
+ sb.Append(BVORG.PadRight(16));
+ var BKTXT = "HRS_C"
+ //+ $"{item.DalMese.Substring(3, 2)}" + $"{item.DalMese.Substring(item.DalMese.Length - 2)}"
+ + $"{item.DalMese.Substring(5, 2) + item.DalMese.Substring(0, 2)}"
+ + $"{BUKRS}"
+ + $"{BKTXTCount}"; //progressivo.
+ sb.Append(BKTXT.PadRight(25));
+ var PARGB = "/";
+ sb.Append(PARGB.PadRight(4));
+ var AUGLV = "/";
+ sb.Append(AUGLV.PadRight(8));
+ var VBUND = "/"; //prenderà un valore
+ sb.Append(VBUND.PadRight(6));
+ var XMWST = "/";
+ sb.Append(XMWST.PadRight(1));
+ var DOCID = "/";
+ sb.Append(DOCID.PadRight(10));
+ var BARCD = "/";
+ sb.Append(BARCD.PadRight(40));
+ var STODT = "/";
+ sb.Append(STODT.PadRight(8));
+ var BRNCH = "/";
+ sb.Append(BRNCH.PadRight(4));
+ var NUMPG = "/";
+ sb.Append(NUMPG.PadRight(3));
+ var STGRD = "/";
+ sb.Append(STGRD.PadRight(2));
+ var KURSF_M = "/";
+ sb.Append(KURSF_M.PadRight(10));
+ var AUGTX = "/";
+ sb.Append(AUGTX.PadRight(50));
+ var XPRFG = "/";
+ sb.Append(XPRFG.PadRight(1));
+ var XBWAE = "/";
+ sb.Append(XBWAE.PadRight(1));
+ var LDGRP = "/";
+ sb.Append(LDGRP.PadRight(4));
+ var PROPMANO = "/";
+ sb.Append(PROPMANO.PadRight(13));
+ var VATDATE = "/";
+ sb.Append(VATDATE.PadRight(8));
+ var SENDE = "/";
+ sb.Append(SENDE.PadRight(1));
+ sb.Append(Environment.NewLine);
+ //sb.Append(Environment.NewLine);
+
+ return sb.ToString();
+ }
+
+ private string InsertRigheDocumento(CSVFileObject item)
+ {
+ StringBuilder sb = new StringBuilder();
+ var STYPE = "2";
+ sb.Append(STYPE.PadRight(1));
+ var TBNAM = "BBSEG";
+ sb.Append(TBNAM.PadRight(30));
+
+ if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ {
+ var NEWBS = "40"; //prenderà importo dare
+ sb.Append(NEWBS.PadRight(2));
+ }
+ else
+ {
+ var NEWBS = "50"; //prenderà importo avere
+ sb.Append(NEWBS.PadRight(2));
+ }
+
+ var DUMMY = "/";
+ sb.Append(DUMMY.PadRight(10));
+ var NEWUM = "/";
+ sb.Append(NEWUM.PadRight(1));
+ var NEWBK = "/";
+ sb.Append(NEWBK.PadRight(4));
+
+ if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ {
+ var WRBTR = $"{string.Format("{0:0.00}", item.DoubleImportoDare)}"; //prenderà un valore
+ sb.Append((WRBTR.PadLeft(16)).Replace(" ", "0"));
+ }
+ else
+ {
+ var WRBTR = $"{string.Format("{0:0.00}", item.DoubleImportoAvere)}"; //prenderà un valore
+ sb.Append((WRBTR.PadLeft(16)).Replace(" ", "0"));
+ }
+
+ var DMBTR = "/";
+ sb.Append(DMBTR.PadRight(16));
+ var WMWST = "/";
+ sb.Append(WMWST.PadRight(16));
+ var MWSTS = "/";
+ sb.Append(MWSTS.PadRight(16));
+ var MWSKZ = "/";
+ sb.Append(MWSKZ.PadRight(2));
+ var XSKRL = "/";
+ sb.Append(XSKRL.PadRight(1));
+ var FWZUZ = "/";
+ sb.Append(FWZUZ.PadRight(16));
+ var HWZUZ = "/";
+ sb.Append(HWZUZ.PadRight(16));
+ var GSBER = "/";
+ sb.Append(GSBER.PadRight(4));
+ if (item.CodiceConto.Replace("\"","").StartsWith("C"))// se il conto è di costo allora KOSTL sarà valorizzato con CENTRO DI COSTO
+ {
+ var KOSTL = item.CodiceDatoRipartizione2.Replace("\"", "");
+ sb.Append(KOSTL.PadRight(10));
+ }
+ else
+ {
+ var KOSTL = "/";
+ sb.Append(KOSTL.PadRight(10));
+ }
+ //if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ //{
+ // if (item.CodiceConto.StartsWith("C"))// se il conto è di costo allora KOSTL sarà valorizzato con CENTRO DI COSTO
+ // {
+ // var KOSTL = item.CodiceDatoRipartizione2;
+ // sb.Append(KOSTL.PadRight(10));
+ // }
+ // else
+ // {
+ // var KOSTL = "/";
+ // sb.Append(KOSTL.PadRight(10));
+ // }
+ //}
+ //else if (Convert.ToDecimal(item.ImportoAvere.Replace(",", ".")) > 0)
+ //{
+ // if (item.CodiceContropartita.StartsWith("C"))// se il conto è di costo allora KOSTL sarà valorizzato con CENTRO DI COSTO
+ // {
+ // var KOSTL = item.CodiceDatoRipartizione2;
+ // sb.Append(KOSTL.PadRight(10));
+ // }
+ // else
+ // {
+ // var KOSTL = "/";
+ // sb.Append(KOSTL.PadRight(10));
+ // }
+ //}
+ var DUMMY4 = "/";
+ sb.Append(DUMMY4.PadRight(4));
+ var AUFNR = "/";
+ sb.Append(AUFNR.PadRight(12));
+ var EBELN = "/";
+ sb.Append(EBELN.PadRight(10));
+ var EBELP = "/";
+ sb.Append(EBELP.PadRight(5));
+ var PROJN = "/";
+ sb.Append(PROJN.PadRight(16));
+ var MATNR = "/";
+ sb.Append(MATNR.PadRight(18));
+ var WERKS = "/";
+ sb.Append(WERKS.PadRight(4));
+ var MENGE = "/";
+ sb.Append(MENGE.PadRight(17));
+ var MEINS = "/";
+ sb.Append(MEINS.PadRight(3));
+ var VBEL2 = "/";
+ sb.Append(VBEL2.PadRight(10));
+ var POSN2 = "/";
+ sb.Append(POSN2.PadRight(6));
+ var ETEN2 = "/";
+ sb.Append(ETEN2.PadRight(4));
+ var PERNR = "/";
+ sb.Append(PERNR.PadRight(8));
+ var BEWAR = "/";
+ sb.Append(BEWAR.PadRight(3));
+ var VALUT = "/";
+ sb.Append(VALUT.PadRight(8));
+ var ZFBDT = "/";
+ sb.Append(ZFBDT.PadRight(8));
+ var ZINKZ = "/";
+ sb.Append(ZINKZ.PadRight(2));
+ var ZUONR = "/";
+ sb.Append(ZUONR.PadRight(18));
+ var FKONT = "/";
+ sb.Append(FKONT.PadRight(3));
+ var XAABG = "/";
+ sb.Append(XAABG.PadRight(1));
+ var SGTXT = "/";
+ sb.Append(SGTXT.PadRight(50));
+ var BLNKZ = "/";
+ sb.Append(BLNKZ.PadRight(2));
+ var BLNBT = "/";
+ sb.Append(BLNBT.PadRight(16));
+ var BLNPZ = "/";
+ sb.Append(BLNPZ.PadRight(8));
+ var MABER = "/";
+ sb.Append(MABER.PadRight(2));
+ var SKFBT = "/";
+ sb.Append(SKFBT.PadRight(16));
+ var WSKTO = "/";
+ sb.Append(WSKTO.PadRight(16));
+ var ZTERM = "/";
+ sb.Append(ZTERM.PadRight(4));
+ var ZBD1T = "/";
+ sb.Append(ZBD1T.PadRight(3));
+ var ZBD1P = "/";
+ sb.Append(ZBD1P.PadRight(6));
+ var ZBD2T = "/";
+ sb.Append(ZBD2T.PadRight(3));
+ var ZBD2P = "/";
+ sb.Append(ZBD2P.PadRight(6));
+ var ZBD3T = "/";
+ sb.Append(ZBD3T.PadRight(3));
+ var ZLSPR = "/";
+ sb.Append(ZLSPR.PadRight(1));
+ var REBZG = "/";
+ sb.Append(REBZG.PadRight(10));
+ var REBZJ = "/";
+ sb.Append(REBZJ.PadRight(4));
+ var REBZZ = "/";
+ sb.Append(REBZZ.PadRight(3));
+ var ZLSCH = "/";
+ sb.Append(ZLSCH.PadRight(1));
+ var SAMNR = "/";
+ sb.Append(SAMNR.PadRight(8));
+ var ZBFIX = "/";
+ sb.Append(ZBFIX.PadRight(1));
+ var QSSKZ = "/";
+ sb.Append(QSSKZ.PadRight(2));
+ var QSSHB = "/";
+ sb.Append(QSSHB.PadRight(16));
+ var QSFBT = "/";
+ sb.Append(QSFBT.PadRight(16));
+ var ESRNR = "/";
+ sb.Append(ESRNR.PadRight(11));
+ var ESRPZ = "/";
+ sb.Append(ESRPZ.PadRight(2));
+ var ESRRE = "/";
+ sb.Append(ESRRE.PadRight(27));
+ var FDTAG = "/";
+ sb.Append(FDTAG.PadRight(8));
+ var FDLEV = "/";
+ sb.Append(FDLEV.PadRight(2));
+ var ANLN1 = "/";
+ sb.Append(ANLN1.PadRight(12));
+ var ANLN2 = "/";
+ sb.Append(ANLN2.PadRight(4));
+ var BZDAT = "/";
+ sb.Append(BZDAT.PadRight(8));
+ var ANBWA = "/";
+ sb.Append(ANBWA.PadRight(3));
+ var ABPER = "/";
+ sb.Append(ABPER.PadRight(7));
+ //pagina 23
+ var GBETR = "/";
+ sb.Append(GBETR.PadRight(16));
+ var KURSR = "/";
+ sb.Append(KURSR.PadRight(10));
+ var MANSP = "/";
+ sb.Append(MANSP.PadRight(1));
+ var MSCHL = "/";
+ sb.Append(MSCHL.PadRight(1));
+ var HBKID = "/";
+ sb.Append(HBKID.PadRight(5));
+ var BVTYP = "/";
+ sb.Append(BVTYP.PadRight(4));
+ var ANFBN = "/";
+ sb.Append(ANFBN.PadRight(10));
+ var ANFBU = "/";
+ sb.Append(ANFBU.PadRight(4));
+ var ANFBJ = "/";
+ sb.Append(ANFBJ.PadRight(4));
+ var LZBKZ = "/";
+ sb.Append(LZBKZ.PadRight(3));
+ var LANDL = "/";
+ sb.Append(LANDL.PadRight(3));
+ var DIEKZ = "/";
+ sb.Append(DIEKZ.PadRight(1));
+ var ZOLLD = "/";
+ sb.Append(ZOLLD.PadRight(8));
+ var ZOLLT = "/";
+ sb.Append(ZOLLT.PadRight(8));
+ var VRSDT = "/";
+ sb.Append(VRSDT.PadRight(8));
+ var VRSKZ = "/";
+ sb.Append(VRSKZ.PadRight(1));
+ var HZUON = "/";
+ sb.Append(HZUON.PadRight(18));
+ var REGUL = "/";
+ sb.Append(REGUL.PadRight(1));
+ var NAME1 = "/";
+ sb.Append(NAME1.PadRight(35));
+ var NAME2 = "/";
+ sb.Append(NAME2.PadRight(35));
+ var NAME3 = "/";
+ sb.Append(NAME3.PadRight(35));
+ var NAME4 = "/";
+ sb.Append(NAME4.PadRight(35));
+ var STRAS = "/";
+ sb.Append(STRAS.PadRight(35));
+ var ORT01 = "/";
+ sb.Append(ORT01.PadRight(35));
+ var PSTLZ = "/";
+ sb.Append(PSTLZ.PadRight(10));
+ var LAND1 = "/";
+ sb.Append(LAND1.PadRight(3));
+ var REGIO = "/";
+ sb.Append(REGIO.PadRight(3));
+ var BANKL = "/";
+ sb.Append(BANKL.PadRight(15));
+ var BANKS = "/";
+ sb.Append(BANKS.PadRight(3));
+ var BANKN = "/";
+ sb.Append(BANKN.PadRight(18));
+ var BKONT = "/";
+ sb.Append(BKONT.PadRight(2));
+ var STCD1 = "/";
+ sb.Append(STCD1.PadRight(16));
+ var STCD2 = "/";
+ sb.Append(STCD2.PadRight(11));
+ var MADAT = "/";
+ sb.Append(MADAT.PadRight(8));
+ var MANST = "/";
+ sb.Append(MANST.PadRight(1));
+ var EGMLD = "/";
+ sb.Append(EGMLD.PadRight(3));
+ var DUMMY2 = "/";
+ sb.Append(DUMMY2.PadRight(3));
+ var STCEG = "/";
+ sb.Append(STCEG.PadRight(20));
+ var STKZA = "/";
+ sb.Append(STKZA.PadRight(1));
+ var STKZU = "/";
+ sb.Append(STKZU.PadRight(1));
+ var PFACH = "/";
+ sb.Append(PFACH.PadRight(10));
+ var PSTL2 = "/";
+ sb.Append(PSTL2.PadRight(10));
+ var SPRAS = "/";
+ sb.Append(SPRAS.PadRight(1));
+ var XINVE = "/";
+ sb.Append(XINVE.PadRight(1));
+ //if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ //{
+ var NEWKO = item.CodiceConto.Replace("\"", ""); //se importo in dare valorizzato
+ sb.Append(NEWKO.PadRight(17));
+ //}
+ //else if (Convert.ToDecimal(item.ImportoAvere.Replace(",", ".")) > 0)
+ //{
+ // var NEWKO = item.CodiceContropartita.Replace("\"", ""); //se importo in avere valorizzato
+ // sb.Append(NEWKO.PadRight(17));
+ //}
+ var NEWBW = "/";
+ sb.Append(NEWBW.PadRight(3));
+ var KNRZE = "/";
+ sb.Append(KNRZE.PadRight(17));
+ var HKONT = "/";
+ sb.Append(HKONT.PadRight(10));
+
+ if (item.CodiceConto.Replace("\"","").StartsWith("C"))
+ {
+ var PRCTR = item.CodiceDatoRipartizione2.Replace("\"", "");
+ sb.Append(PRCTR.PadRight(10));
+ }
+ else
+ {
+ var PRCTR = "/";
+ sb.Append(PRCTR.PadRight(10));
+ }
+
+ var VERTN = "/";
+ sb.Append(VERTN.PadRight(13));
+ var VERTT = "/";
+ sb.Append(VERTT.PadRight(1));
+ var VBEWA = "/";
+ sb.Append(VBEWA.PadRight(4));
+ var HWBAS = "/";
+ sb.Append(HWBAS.PadRight(16));
+ var FWBAS = "/";
+ sb.Append(FWBAS.PadRight(16));
+ var FIPOS = "/";
+ sb.Append(FIPOS.PadRight(14));
+ var VNAME = "/";
+ sb.Append(VNAME.PadRight(6));
+ var EGRUP = "/";
+ sb.Append(EGRUP.PadRight(3));
+ var BTYPE = "/";
+ sb.Append(BTYPE.PadRight(2));
+ var PAOBJNR = "/";
+ sb.Append(PAOBJNR.PadRight(10));
+ var KSTRG = "/";
+ sb.Append(KSTRG.PadRight(12));
+ var IMKEY = "/";
+ sb.Append(IMKEY.PadRight(8));
+ var DUMMY3 = "/";
+ sb.Append(DUMMY3.PadRight(8));
+ var VPTNR = "/";
+ sb.Append(VPTNR.PadRight(10));
+ var NPLNR = "/";
+ sb.Append(NPLNR.PadRight(12));
+ var VORNR = "/";
+ sb.Append(VORNR.PadRight(4));
+ var XEGDR = "/";
+ sb.Append(XEGDR.PadRight(1));
+ var RECID = "/";
+ sb.Append(RECID.PadRight(2));
+ var PPRCT = "/";
+ sb.Append(PPRCT.PadRight(10));
+ //if (true)
+ //{
+ //}
+ //else
+ //{
+ var PROJK = "/";//prenderà un valore
+ sb.Append(PROJK.PadRight(24));
+ //}
+ var UZAWE = "/";
+ sb.Append(UZAWE.PadRight(2));
+ var TXJCD = "/";
+ sb.Append(TXJCD.PadRight(15));
+ var FISTL = "/";
+ sb.Append(FISTL.PadRight(16));
+ var GEBER = "/";
+ sb.Append(GEBER.PadRight(10));
+ var DMBE2 = "/";
+ sb.Append(DMBE2.PadRight(16));
+ var DMBE3 = "/";
+ sb.Append(DMBE3.PadRight(16));
+ var PARGB = "/";
+ sb.Append(PARGB.PadRight(4));
+ var XREF1 = "/";
+ sb.Append(XREF1.PadRight(12));
+ var XREF2 = "/";
+ sb.Append(XREF2.PadRight(12));
+ var KBLNR = "/";
+ sb.Append(KBLNR.PadRight(10));
+ var KBLPOS = "/";
+ sb.Append(KBLPOS.PadRight(3));
+ var WDATE = "/";
+ sb.Append(WDATE.PadRight(8));
+ var WGBKZ = "/";
+ sb.Append(WGBKZ.PadRight(1));
+ var XAKTZ = "/";
+ sb.Append(XAKTZ.PadRight(1));
+ var WNAME = "/";
+ sb.Append(WNAME.PadRight(30));
+ var WORT1 = "/";
+ sb.Append(WORT1.PadRight(30));
+ var WBZOG = "/";
+ sb.Append(WBZOG.PadRight(30));
+ var WORT2 = "/";
+ sb.Append(WORT2.PadRight(30));
+ var WBANK = "/";
+ sb.Append(WBANK.PadRight(60));
+ var WLZBP = "/";
+ sb.Append(WLZBP.PadRight(60));
+ var DISKP = "/";
+ sb.Append(DISKP.PadRight(8));
+ var DISKT = "/";
+ sb.Append(DISKT.PadRight(3));
+ var WINFW = "/";
+ sb.Append(WINFW.PadRight(16));
+ var WINHW = "/";
+ sb.Append(WINHW.PadRight(16));
+ var WEVWV = "/";
+ sb.Append(WEVWV.PadRight(1));
+ var WSTAT = "/";
+ sb.Append(WSTAT.PadRight(1));
+ var WMWKZ = "/";
+ sb.Append(WMWKZ.PadRight(2));
+ var WSTKZ = "/";
+ sb.Append(WSTKZ.PadRight(1));
+ var RKE_ARTNR = "/";
+ sb.Append(RKE_ARTNR.PadRight(18));
+ var RKE_BONUS = "/";
+ sb.Append(RKE_BONUS.PadRight(2));
+ var RKE_BRSCH = "/";
+ sb.Append(RKE_BRSCH.PadRight(4));
+ var RKE_BUKRS = "/";
+ sb.Append(RKE_BUKRS.PadRight(4));
+ var RKE_BZIRK = "/";
+ sb.Append(RKE_BZIRK.PadRight(6));
+ var RKE_EFORM = "/";
+ sb.Append(RKE_EFORM.PadRight(5));
+ var RKE_FKART = "/";
+ sb.Append(RKE_FKART.PadRight(4));
+ var RKE_GEBIE = "/";
+ sb.Append(RKE_GEBIE.PadRight(4));
+ var RKE_GSBER = "/";
+ sb.Append(RKE_GSBER.PadRight(4));
+ var RKE_KAUFN = "/";
+ sb.Append(RKE_KAUFN.PadRight(10));
+ var RKE_KDGRP = "/";
+ sb.Append(RKE_KDGRP.PadRight(2));
+ var RKE_KDPOS = "/";
+ sb.Append(RKE_KDPOS.PadRight(6));
+ var RKE_KNDNR = "/";
+ sb.Append(RKE_KNDNR.PadRight(10));
+ var RKE_KOKRS = "/";
+ sb.Append(RKE_KOKRS.PadRight(4));
+ var RKE_KSTRG = "/";
+ sb.Append(RKE_KSTRG.PadRight(12));
+ var RKE_LAND1 = "/";
+ sb.Append(RKE_LAND1.PadRight(3));
+ var RKE_MAABC = "/";
+ sb.Append(RKE_MAABC.PadRight(1));
+ var RKE_MATKL = "/";
+ sb.Append(RKE_MATKL.PadRight(9));
+ var RKE_PRCTR = "/";
+ sb.Append(RKE_PRCTR.PadRight(10));
+ var RKE_PSPNR = "/";
+ sb.Append(RKE_PSPNR.PadRight(24));
+ var RKE_RKAUFNR = "/";
+ sb.Append(RKE_RKAUFNR.PadRight(12));
+ var RKE_SPART = "/";
+ sb.Append(RKE_SPART.PadRight(2));
+ var RKE_VKBUR = "/";
+ sb.Append(RKE_VKBUR.PadRight(4));
+ var RKE_VKGRP = "/";
+ sb.Append(RKE_VKGRP.PadRight(3));
+ var RKE_VKORG = "/";
+ sb.Append(RKE_VKORG.PadRight(4));
+ var RKE_VTWEG = "/";
+ sb.Append(RKE_VTWEG.PadRight(2));
+ var RKE_WERKS = "/";
+ sb.Append(RKE_WERKS.PadRight(4));
+ var RKE_KMBRND = "/";
+ sb.Append(RKE_KMBRND.PadRight(2));
+ var RKE_KMCATG = "/";
+ sb.Append(RKE_KMCATG.PadRight(2));
+ var RKE_KMHI01 = "/";
+ sb.Append(RKE_KMHI01.PadRight(10));
+ var RKE_KMHI02 = "/";
+ sb.Append(RKE_KMHI02.PadRight(10));
+ var RKE_KMHI03 = "/";
+ sb.Append(RKE_KMHI03.PadRight(10));
+ var RKE_KMKDGR = "/";
+ sb.Append(RKE_KMKDGR.PadRight(2));
+ var RKE_KMLAND = "/";
+ sb.Append(RKE_KMLAND.PadRight(3));
+ var RKE_KMMAKL = "/";
+ sb.Append(RKE_KMMAKL.PadRight(9));
+ var RKE_KMNIEL = "/";
+ sb.Append(RKE_KMNIEL.PadRight(2));
+ var RKE_KMSTGE = "/";
+ sb.Append(RKE_KMSTGE.PadRight(2));
+ var RKE_KMVKBU = "/";
+ sb.Append(RKE_KMVKBU.PadRight(4));
+ var RKE_KMVKGR = "/";
+ sb.Append(RKE_KMVKGR.PadRight(3));
+ var RKE_KMVTNR = "/";
+ sb.Append(RKE_KMVTNR.PadRight(8));
+ var RKE_PPRCTR = "/";
+ sb.Append(RKE_PPRCTR.PadRight(10));
+ var VBUND = "/";
+ sb.Append(VBUND.PadRight(6));
+ var FKBER = "/";
+ sb.Append(FKBER.PadRight(4));
+ var DABRZ = "/";
+ sb.Append(DABRZ.PadRight(8));
+ var XSTBA = "/";
+ sb.Append(XSTBA.PadRight(1));
+ var RSTGR = "/";
+ sb.Append(RSTGR.PadRight(3));
+ var FIPEX = "/";
+ sb.Append(FIPEX.PadRight(24));
+ var XNEGP = "/";
+ sb.Append(XNEGP.PadRight(1));
+ var GRICD = "/";
+ sb.Append(GRICD.PadRight(2));
+ var GRIRG = "/";
+ sb.Append(GRIRG.PadRight(3));
+ var GITYP = "/";
+ sb.Append(GITYP.PadRight(2));
+ var FITYP = "/";
+ sb.Append(FITYP.PadRight(2));
+ var STCDT = "/";
+ sb.Append(STCDT.PadRight(2));
+ var STKZN = "/";
+ sb.Append(STKZN.PadRight(1));
+ var STCD3 = "/";
+ sb.Append(STCD3.PadRight(18));
+ var STCD4 = "/";
+ sb.Append(STCD4.PadRight(18));
+ var XREF3 = "/";
+ sb.Append(XREF3.PadRight(20));
+ var KIDNO = "/";
+ sb.Append(KIDNO.PadRight(30));
+ var DTWS1 = "/";
+ sb.Append(DTWS1.PadRight(2));
+ var DTWS2 = "/";
+ sb.Append(DTWS2.PadRight(2));
+ var DTWS3 = "/";
+ sb.Append(DTWS3.PadRight(2));
+ var DTWS4 = "/";
+ sb.Append(DTWS4.PadRight(2));
+ var DTAWS = "/";
+ sb.Append(DTAWS.PadRight(2));
+ var PYCUR = "/";
+ sb.Append(PYCUR.PadRight(5));
+ var PYAMT = "/";
+ sb.Append(PYAMT.PadRight(16));
+ var BUPLA = "/";
+ sb.Append(BUPLA.PadRight(4));
+ var SECCO = "/";
+ sb.Append(SECCO.PadRight(4));
+ var LSTAR = "/";
+ sb.Append(LSTAR.PadRight(6));
+ var EGDEB = "/";
+ sb.Append(EGDEB.PadRight(10));
+ var WENR = "/";
+ sb.Append(WENR.PadRight(8));
+ var GENR = "/";
+ sb.Append(GENR.PadRight(8));
+ var GRNR = "/";
+ sb.Append(GRNR.PadRight(8));
+ var MENR = "/";
+ sb.Append(MENR.PadRight(8));
+ var MIVE = "/";
+ sb.Append(MIVE.PadRight(13));
+ var NKSL = "/";
+ sb.Append(NKSL.PadRight(4));
+ var EMPSL = "/";
+ sb.Append(EMPSL.PadRight(5));
+ var SVWNR = "/";
+ sb.Append(SVWNR.PadRight(13));
+ var SBERI = "/";
+ sb.Append(SBERI.PadRight(10));
+ var KKBER = "/";
+ sb.Append(KKBER.PadRight(4));
+ var EMPFB = "/";
+ sb.Append(EMPFB.PadRight(10));
+ var KURSR_M = "/";
+ sb.Append(KURSR_M.PadRight(10));
+ var J_1KFREPRE = "/";
+ sb.Append(J_1KFREPRE.PadRight(10));
+ var J_1KFTBUS = "/";
+ sb.Append(J_1KFTBUS.PadRight(30));
+ var J_1KFTIND = "/";
+ sb.Append(J_1KFTIND.PadRight(30));
+ var IDXSP = "/";
+ sb.Append(IDXSP.PadRight(5));
+ var ANRED = "/";
+ sb.Append(ANRED.PadRight(15));
+ var RECNNR = "/";
+ sb.Append(RECNNR.PadRight(13));
+ var E_MIVE = "/";
+ sb.Append(E_MIVE.PadRight(13));
+ var BKREF = "/";
+ sb.Append(BKREF.PadRight(20));
+ var DTAMS = "/";
+ sb.Append(DTAMS.PadRight(1));
+ var CESSION_KZ = "/";
+ sb.Append(CESSION_KZ.PadRight(2));
+ var GRANT_NBR = "/";
+ sb.Append(GRANT_NBR.PadRight(20));
+ var FKBER_LONG = "/";
+ sb.Append(FKBER_LONG.PadRight(16));
+ var ERLKZ = "/";
+ sb.Append(ERLKZ.PadRight(1));
+ var IBAN = "/";
+ sb.Append(IBAN.PadRight(34));
+ var VALID_FROM = "/";
+ sb.Append(VALID_FROM.PadRight(8));
+ var SEGMENT = "/";
+ sb.Append(SEGMENT.PadRight(10));
+ var PSEGMENT = "/";
+ sb.Append(PSEGMENT.PadRight(10));
+ var HKTID = "/";
+ sb.Append(HKTID.PadRight(5));
+ var XSIWE = "/";
+ sb.Append(XSIWE.PadRight(1));
+ var TCNO = "/";
+ sb.Append(TCNO.PadRight(16));
+ var DATEOFSERVICE = "/";
+ sb.Append(DATEOFSERVICE.PadRight(8));
+ var NOTAXCORR = "/";
+ sb.Append(NOTAXCORR.PadRight(1));
+ var DIFFOPTRATE = "/";
+ sb.Append(DIFFOPTRATE.PadRight(10));
+ var HASDIFFOPTRATE = "/";
+ sb.Append(HASDIFFOPTRATE.PadRight(1));
+ var AVGACT_G = "/";
+ sb.Append(AVGACT_G.PadRight(26));
+ var AVGACT_L = "/";
+ sb.Append(AVGACT_L.PadRight(26));
+ var AVGACT_T = "/";
+ sb.Append(AVGACT_T.PadRight(26));
+ //var stringa = ""; //da ricontrollare
+ //sb.Append(AVGACT_T.PadRight(26));
+ var AVG_ACT_G_CURR = "/";
+ sb.Append(AVG_ACT_G_CURR.PadRight(5));
+ var AVG_ACT_L_CURR = "/";
+ sb.Append(AVG_ACT_L_CURR.PadRight(5));
+ var AVG_ACT_T_CURR = "/";
+ sb.Append(AVG_ACT_T_CURR.PadRight(5));
+ var BOENO = "/";
+ sb.Append(BOENO.PadRight(10));
+ var MNDID = "/";
+ sb.Append(MNDID.PadRight(35));
+ var SENDE = "/";
+ sb.Append(SENDE.PadRight(1));
+
+ sb.Append(Environment.NewLine);
+
+ return sb.ToString();
+ }
+
+ #endregion
+
+ #region EVENTI
+
+ private void btnConvertiTxt_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (/*txtCodAzi.Text.Length == 4 &&*/ !string.IsNullOrEmpty(txtCodAzi.Text))
+ {
+ var list = CreaOggettiPerConversioni();
+
+ CostruisciFileTXT(list);
+ }
+ //else if (txtCodAzi.Text.Length != 4 && !string.IsNullOrEmpty(txtCodAzi.Text))
+ //{
+ // var str = MessageBox.Show($"Il codice azienda deve essere lungo quattro ",
+ // "CODICE AZIENDA ERRATO",
+ // MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+ // txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
+ //}
+ else
+ {
+ var str = MessageBox.Show($"Inserire il codice azienda prima di poter generare il file TXT ",
+ "CODICE AZIENDA MANCANTE",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+ txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
+ }
+ }
+ catch (Exception ex)
+ {
+ //txtArea.Text = ex.Message;
+ var str = MessageBox.Show($"{ex.Message}",
+ "File CSV non specificato",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void btnCercaFile_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ CercaNeiFile();
+ }
+ catch (Exception ex)
+ {
+ txtArea.Text = ex.Message;
+ }
+ }
+
+ private void txtCodAzi_Leave(object sender, EventArgs e)
+ {
+ if (txtCodAzi.BackColor == Color.FromArgb(255, 102, 102))
+ {
+ if (!string.IsNullOrEmpty(txtCodAzi.Text))
+ {
+ txtCodAzi.BackColor = Color.FromArgb(255, 255, 255);
+ }
+ }
+ }
+
+ #endregion
+ }
+
+ #region CLASSI
+
+ //classe con i campi del file csv che leggo
+ public class CSVFileObject
+ {
+ public string CodiceAzienda;
+ public string Denominazione;
+ public string DalMese;
+ public string TipoCedolinoDal;
+ public string AlMese;
+ public string TipoCedolinoAl;
+ public string RegimeContabile;
+ public string ProgressivoRipartizione;
+ public string DescrizioneProgressivoRipartizione;
+ public string ContabilitaDestinazione;
+ public string DescrizioneContabilitaDestinazione;
+ public string CodiceConto;
+ public string DescrizioneConto;
+ public string CodiceDipendente;
+ public string Cognome;
+ public string Nome;
+ public string NumeroRegistrazione;
+ public string TipoCausale;
+ public string DescrizioneTipoCausale;
+ public string Causale;
+ public string DescrizioneCausale;
+ public string TipoElemento;
+ public string DescrizioneTipoElemento;
+ public string CodiceContropartita;
+ public string DescrizioneContropartita;
+ public string ImportoDare;
+ public string ImportoAvere;
+ public string CodiceTipoDatoRipartizione1;
+ public string CodiceDatoRipartizione1;
+ public string CodificaDellaRipartizione1;
+ public string CodiceTipoDatoRipartizione2;
+ public string CodiceDatoRipartizione2;
+ public string CodificaDellaRipartizione2;
+ public string CodiceTipoDatoRipartizione3;
+ public string CodiceDatoRipartizione3;
+ public string CodificaDellaRipartizione3;
+ //public int CodificaDellaRipartizione3;
+ public string CodiceTipoDatoRipartizione4;
+ public string CodiceDatoRipartizione4;
+ public string CodificaDellaRipartizione4;
+ public string CodiceTipoDatoRipartizione5;
+ public string CodiceDatoRipartizione5;
+ public string CodificaDellaRipartizione5;
+ public string CodiceTipoDatoRipartizione6;
+ public string CodiceDatoRipartizione6;
+ public string CodificaDellaRipartizione6;
+ public string CodiceTipoDatoRipartizione7;
+ public string CodiceDatoRipartizione7;
+ public string CodificaDellaRipartizione7;
+ public string CodiceTipoDatoRipartizione8;
+ public string CodiceDatoRipartizione8;
+ public string CodificaDellaRipartizione8;
+
+ //aggiungo una propery per gestire la colonna CodiceDatoRipartizione4 perchè mi serve averla come intero per poter ordinare la lista.
+ //nel try - catch che c'è sotto imporrò che se non è valorizzato il campo prenderà 0. questo avverà solo in fase di test perchè il centro di costo
+ //nel file di input dovrà esserci sempre. questo perchè senò potrebbe sputtanarsi il calcolo del dare/avere che deve essere 0
+ public int IntCodiceDatoRipartizione4;
+ public int intCodificaDellaRipartizione3;
+ //public decimal IntCodiceDatoRipartizione4;
+ //public decimal intCodificaDellaRipartizione3;
+
+ public decimal DoubleImportoDare;
+ public decimal DoubleImportoAvere;
+
+ public DateTime DateDalMese;
+
+ public static CSVFileObject FromCsvGigante(string csvLine)
+ {
+ CSVFileObject valore = new CSVFileObject();
+
+ string[] val = csvLine.Split(';');
+
+ valore.CodiceAzienda = Convert.ToString(val[0]);
+ valore.Denominazione = Convert.ToString(val[1]);
+ valore.DalMese = Convert.ToString(val[2]);
+ valore.TipoCedolinoDal = Convert.ToString(val[3]);
+ valore.AlMese = Convert.ToString(val[4]);
+ valore.TipoCedolinoAl = Convert.ToString(val[5]);
+ valore.RegimeContabile = Convert.ToString(val[6]);
+ valore.ProgressivoRipartizione = Convert.ToString(val[7]);
+ valore.DescrizioneProgressivoRipartizione = Convert.ToString(val[8]);
+ valore.ContabilitaDestinazione = Convert.ToString(val[9]);
+ valore.DescrizioneContabilitaDestinazione = Convert.ToString(val[10]);
+ valore.CodiceConto = Convert.ToString(val[11]);
+ valore.DescrizioneConto = Convert.ToString(val[12]);
+ valore.CodiceDipendente = Convert.ToString(val[13]);
+ valore.Cognome = Convert.ToString(val[14]);
+ valore.Nome = Convert.ToString(val[15]);
+ valore.NumeroRegistrazione = Convert.ToString(val[16]);
+ valore.TipoCausale = Convert.ToString(val[17]);
+ valore.DescrizioneTipoCausale = Convert.ToString(val[18]);
+ valore.Causale = Convert.ToString(val[19]);
+ valore.DescrizioneCausale = Convert.ToString(val[20]);
+ valore.TipoElemento = Convert.ToString(val[21]);
+ valore.DescrizioneTipoElemento = Convert.ToString(val[22]);
+ valore.CodiceContropartita = Convert.ToString(val[23]);
+ valore.DescrizioneContropartita = Convert.ToString(val[24]);
+ valore.ImportoDare = Convert.ToString(val[25]);
+ valore.ImportoAvere = Convert.ToString(val[26]);
+ valore.CodiceTipoDatoRipartizione1 = Convert.ToString(val[27]);
+ valore.CodiceDatoRipartizione1 = Convert.ToString(val[28]);
+ valore.CodificaDellaRipartizione1 = Convert.ToString(val[29]);
+ valore.CodiceTipoDatoRipartizione2 = Convert.ToString(val[30]);
+ valore.CodiceDatoRipartizione2 = Convert.ToString(val[31]);
+ valore.CodificaDellaRipartizione2 = Convert.ToString(val[32]);
+ valore.CodiceTipoDatoRipartizione3 = Convert.ToString(val[33]);
+ valore.CodiceDatoRipartizione3 = Convert.ToString(val[34]);
+ valore.CodificaDellaRipartizione3 = Convert.ToString(val[35]);
+ valore.CodiceTipoDatoRipartizione4 = Convert.ToString(val[36]);
+ valore.CodiceDatoRipartizione4 = Convert.ToString(val[37]);
+ valore.CodificaDellaRipartizione4 = Convert.ToString(val[38]);
+ valore.CodiceTipoDatoRipartizione5 = Convert.ToString(val[39]);
+ valore.CodiceDatoRipartizione5 = Convert.ToString(val[40]);
+ valore.CodificaDellaRipartizione5 = Convert.ToString(val[41]);
+ valore.CodiceTipoDatoRipartizione6 = Convert.ToString(val[42]);
+ valore.CodiceDatoRipartizione6 = Convert.ToString(val[43]);
+ valore.CodificaDellaRipartizione6 = Convert.ToString(val[44]);
+ valore.CodiceTipoDatoRipartizione7 = Convert.ToString(val[45]);
+ valore.CodiceDatoRipartizione7 = Convert.ToString(val[46]);
+ valore.CodificaDellaRipartizione7 = Convert.ToString(val[47]);
+ valore.CodiceTipoDatoRipartizione8 = Convert.ToString(val[48]);
+ valore.CodiceDatoRipartizione8 = Convert.ToString(val[49]);
+ valore.CodificaDellaRipartizione8 = Convert.ToString(val[50]);
+
+ try
+ {
+ valore.IntCodiceDatoRipartizione4 = Convert.ToInt32(val[37]);
+ valore.intCodificaDellaRipartizione3 = Convert.ToInt32(val[35]);
+ }
+ catch (Exception)
+ {
+ valore.IntCodiceDatoRipartizione4 = 0;
+ valore.intCodificaDellaRipartizione3 = 0;
+ }
+
+ //convertiti in decimal perchè con il double faceva casino con gli arrotondamenti
+ //e non funzionava il controllo della differenza dare/avere
+ valore.DoubleImportoDare = Convert.ToDecimal/*ToDouble*/(val[25]);
+ valore.DoubleImportoAvere = Convert.ToDecimal/*ToDouble*/(val[26]);
+
+ //valori.intCodificaDellaRipartizione3 = Convert.ToDecimal(val[35]);
+
+ valore.DateDalMese = Convert.ToDateTime(val[2]);
+
+ return valore;
+
+ }
+ }
+
+ //classe per il file csv bil_sal_dtc_ott21
+ public class ValoriCSV
+ {
+ public string codiceAzienda;
+ public string denominazione;
+ public string dalMese;
+ public string dalTipoCedolino;
+ public string alMese;
+ public string alTipoCedolino;
+ public string regimeContabile;
+ public string progressivoRipartizione;
+ public string descrizioneProgressivoRipartizione;
+ public string contabilitaDiDestinazione;
+ public string descrizioneContabilitaDestinazione;
+ public string modalitaDiStampa;
+ public string codiceConto;
+ public string descrizioneConto;
+ public string importoDare;
+ public string importoAvere;
+ public string importoSaldo;
+
+ public static ValoriCSV FromCsv(string csvLine)
+ {
+ string[] val = csvLine.Split(';');
+
+ ValoriCSV valoreCSV = new ValoriCSV();
+
+ valoreCSV.codiceAzienda = Convert.ToString(val[0]);
+ valoreCSV.denominazione = Convert.ToString(val[1]);
+ valoreCSV.dalMese = Convert.ToString(val[2]);
+ valoreCSV.dalTipoCedolino = Convert.ToString(val[3]);
+ valoreCSV.alMese = Convert.ToString(val[4]);
+ valoreCSV.alTipoCedolino = Convert.ToString(val[5]);
+ valoreCSV.regimeContabile = Convert.ToString(val[6]);
+ valoreCSV.progressivoRipartizione = Convert.ToString(val[7]);
+ valoreCSV.descrizioneProgressivoRipartizione = Convert.ToString(val[8]);
+ valoreCSV.contabilitaDiDestinazione = Convert.ToString(val[9]);
+ valoreCSV.descrizioneContabilitaDestinazione = Convert.ToString(val[10]);
+ valoreCSV.modalitaDiStampa = Convert.ToString(val[11]);
+ valoreCSV.codiceConto = Convert.ToString(val[12]);
+ valoreCSV.descrizioneConto = Convert.ToString(val[13]);
+ valoreCSV.importoDare = Convert.ToString(val[14]);
+ valoreCSV.importoAvere = Convert.ToString(val[15]);
+ valoreCSV.importoSaldo = Convert.ToString(val[16]);
+
+ return valoreCSV;
+ }
+ }
+
+ public class Appoggio
+ {
+ public string codice { get; set; }
+ //public int codice { get; set; }
+ public int numFileXml { get; set; }
+ }
+
+ #endregion
+}
diff --git a/frmCSVToTXT.resx b/frmCSVToTXT.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/frmCSVToTXT.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/test.txt b/test.txt
new file mode 100644
index 0000000..916f200
--- /dev/null
+++ b/test.txt
@@ -0,0 +1 @@
+prova vs
\ No newline at end of file