From 298b272bd348dc062cf93c5f568f156af2281535 Mon Sep 17 00:00:00 2001 From: "LORENZO\\pacio" Date: Wed, 23 Oct 2024 14:42:11 +0200 Subject: [PATCH] a --- .gitattributes | 63 ++ .gitignore | 82 +- App.config | 6 + CSVToTXT.csproj | 83 ++ CSVToTXT.sln | 25 + Program.cs | 22 + Properties/AssemblyInfo.cs | 36 + Properties/Resources.Designer.cs | 70 ++ Properties/Resources.resx | 117 +++ Properties/Settings.Designer.cs | 29 + Properties/Settings.settings | 7 + frmCSVToTXT.Designer.cs | 167 ++++ frmCSVToTXT.cs | 1239 ++++++++++++++++++++++++++++++ frmCSVToTXT.resx | 120 +++ test.txt | 1 + 15 files changed, 1996 insertions(+), 71 deletions(-) create mode 100644 .gitattributes create mode 100644 App.config create mode 100644 CSVToTXT.csproj create mode 100644 CSVToTXT.sln create mode 100644 Program.cs create mode 100644 Properties/AssemblyInfo.cs create mode 100644 Properties/Resources.Designer.cs create mode 100644 Properties/Resources.resx create mode 100644 Properties/Settings.Designer.cs create mode 100644 Properties/Settings.settings create mode 100644 frmCSVToTXT.Designer.cs create mode 100644 frmCSVToTXT.cs create mode 100644 frmCSVToTXT.resx create mode 100644 test.txt 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