ragazzi ho scrittto un po di codice ma secondo me ho fatto un casino qualcuno può dargli una parvenza migliore anche se devo inviare i file grazie

codice:
Sub Main()



        Dim FileDaAprire As String = "C:\tmp\PPTRCG.D" 'path dove si trova il file

        'Dim FileDaAprire As String() = Command().Split(" ")

        Dim Righe As String() = File.ReadAllLines(FileDaAprire)

        Dim FileDaScrivere As StreamWriter = New StreamWriter("C:\tmp\filecreato.txt", False) 'path file di input

        Dim ControlloDip As String

        Dim NomeGIRMA As String = "GIRMA"
        Dim NomeMAXCOM As String = "MAXCO"
        Dim NomeFINGO As String = "FINGO"

        Dim SubStrCodSoggDit As String
        Dim conta As Integer

        For Each Riga In Righe

            'campi da leggere. la lettura parte da 0 e non da 1

            Dim CodContt As String = Riga.Substring(0, 1)
            'CodContt = Trim(CodContt)

            Dim CodDit As String = Riga.Substring(1, 6)
            'CodDit = Trim(CodDit)

            Dim CodAttv As String = Riga.Substring(7, 2)
            'CodAttv = Trim(CodAttv)

            Dim CodCenDiCosCont As String = Riga.Substring(9, 12)
            'CodCenDiCosCont = Trim(CodCenDiCosCont)

            Dim AAPerdElabn As String = Riga.Substring(21, 4) 'AAMMPerdElabn
            'AAPerdElabn = Trim(AAPerdElabn)

            Dim MMPerdElabn As String = Riga.Substring(25, 2) 'AAMMPerdElabn
            'MMPerdElabn = Trim(MMPerdElabn)

            Dim CodConDare As String = Riga.Substring(27, 12)
            'CodConDare = Trim(CodConDare)

            Dim CodConAve As String = Riga.Substring(39, 12)
            'CodConAve = Trim(CodConAve)

            Dim ImpMovm1 As String = Riga.Substring(51, 9)
            'ImpMovm1 = Trim(ImpMovm1)

            Dim ImpMovm2 As String = Riga.Substring(60, 2)
            'ImpMovm2 = Trim(ImpMovm2)

            Dim CadSegImprNegt As String = Riga.Substring(62, 1) 'deve assumere valore meno quando importo è negativo
            'CadSegImprNegt = Trim(CadSegImprNegt)

            Dim CodTipoCaus As String = Riga.Substring(63, 2)
            'CodTipoCaus = Trim(CodTipoCaus)

            Dim DesTipoCaus As String = Riga.Substring(65, 10)
            'CodTipoCaus = Trim(CodTipoCaus)

            Dim CodCaus As String = Riga.Substring(75, 4)
            'CodCaus = Trim(CodCaus)

            Dim DesCaus As String = Riga.Substring(79, 30)
            DesCaus = Trim(DesCaus)

            Dim DesAnntnUte As String = Riga.Substring(109, 20)
            'DesAnntnUte = Trim(DesAnntnUte)

            Dim CodFiscDit As String = Riga.Substring(129, 16)
            'CodFiscDit = Trim(CodFiscDit)

            Dim CodSoggDit As String = Riga.Substring(145, 8)
            'CodSoggDit = Trim(CodSoggDit)

            Dim NumDit As String = Riga.Substring(153, 2)
            'NumDit = Trim(NumDit)

            Dim CodSoggDipn As String = Riga.Substring(155, 8)
            'CodSoggDipn = Trim(CodSoggDipn)

            Dim NumRappDipn As String = Riga.Substring(163, 3)
            'NumRappDipn = Trim(NumRappDipn)

            Dim NumLibMatrDipn As String = Riga.Substring(166, 6)
            'NumLibMatrDipn = Trim(NumLibMatrDipn)

            'Dim CodRiprnCont As String = Riga.Substring(172, 160) 'CodRiprnCont-array tutta la riga
            'CodRiprnCont = Trim(CodRiprnCont)

            Dim CodTipoDatoRipn As String = Riga.Substring(172, 2) 'CodRiprnCont-array Riga suddivisa per campi
            'CodTipoDatoRipn = Trim(CodTipoDatoRipn)

            Dim CodDatoRipn As String = Riga.Substring(174, 3) 'CodRiprnCont-array Riga suddivisa per campi
            'CodDatoRipn = Trim(CodDatoRipn)

            Dim CodRipn As String = Riga.Substring(177, 15) 'CodRiprnCont-array Riga suddivisa per campi
            CodRipn = Trim(CodRipn)

            Dim CodRiprnContFine As String = Riga.Substring(192, 140) 'CodRiprnCont-array Riga suddivisa per campi
            'CodRiprnContFine = CodRiprnContFine(CodRiprnContFine)

            'Dim Xfill1 As String = Riga.Substring(332, 47)
            'Xfill1 = Trim(Xfill1)

            'FileDaScrivere.WriteLine(CodContt + ";" + CodDit + ";" + CodAttv + ";" + CodCenDiCosCont + ";" + AAPerdElabn + MMPerdElabn + ";" + CodConDare + ";" + CodConAve + ";" + ImpMovm1 + ";" + ImpMovm2 + ";" + CadSegImprNegt + ";" + CodTipoCaus + ";" + DesTipoCaus + ";" + CodCaus + ";" + DesCaus + ";" + DesAnntnUte + "," + CodFiscDit + ";" + CodSoggDit + ";" + NumDit + ";" + CodSoggDipn + ";" + NumRappDipn + ";" + NumLibMatrDipn + ";" + CodTipoDatoRipn + CodDatoRipn + CodRipn + CodRiprnContFine + ";" + Xfill1)

            'ABBREVIAZIONE NOME DITTA

            CodSoggDit = Riga.Substring(145, 5)

            If CodSoggDit = NomeGIRMA Then
                SubStrCodSoggDit = "GI"
            ElseIf CodSoggDit = NomeMAXCOM Then
                SubStrCodSoggDit = "MX"
            ElseIf CodSoggDit = NomeFINGO Then
                SubStrCodSoggDit = "FG"
            Else
                FileDaScrivere.WriteLine("ERRORE CODIFICA SOCIETA'")
            End If

            ' FINE ABBREVIAZIONE NOME DITTA


            ' MESE IN LETTERE
            Dim MeseLettere As String
            Dim UltimoGiorno As String

            Select Case (MMPerdElabn)
                Case "01"
                    MeseLettere = "Gennaio"
                    UltimoGiorno = "31"
                Case "02"
                    MeseLettere = "Febbraio"
                    UltimoGiorno = "28"
                Case "03"
                    MeseLettere = "Marzo"
                    UltimoGiorno = "31"
                Case "04"
                    MeseLettere = "Aprile"
                    UltimoGiorno = "30"
                Case "05"
                    MeseLettere = "Maggio"
                    UltimoGiorno = "31"
                Case "06"
                    MeseLettere = "Giugno"
                    UltimoGiorno = "30"
                Case "07"
                    MeseLettere = "Luglio"
                    UltimoGiorno = "31"
                Case "08"
                    MeseLettere = "Agosto"
                    UltimoGiorno = "31"
                Case "09"
                    MeseLettere = "Settembre"
                    UltimoGiorno = "30"
                Case "10"
                    MeseLettere = "Ottobre"
                    UltimoGiorno = "31"
                Case "11"
                    MeseLettere = "Novembre"
                    UltimoGiorno = "30"
                Case "12"
                    MeseLettere = "Dicembre"
                    UltimoGiorno = "31"
                Case Else
                    FileDaScrivere.WriteLine("ERRORE CODIFICA MESE IN LETTERE")

            End Select
            ' FINE MESE IN LETTERE

            If ControlloDip <> CodSoggDipn Then
                ' RIGA DI TESTATA
                FileDaScrivere.WriteLine("G" + ";" + SubStrCodSoggDit + ";" + "PAB" + ";" + ";" + AAPerdElabn + MMPerdElabn + UltimoGiorno + ";" + "Stipendi" + " " + MeseLettere + " " + AAPerdElabn + ";" + ";" + ";" + "EUR" + ";" + "1" + ";" + CodRipn + ";")
                ' FINE RIGA DI TESTATA
                ControlloDip = CodSoggDipn

                Dim FileCodificaConti As String = "C:\tmp\codificaconti.txt" 'path dove si trova il file
                Dim RigheConti As String() = File.ReadAllLines(FileCodificaConti)

                For Each RigaConti In RigheConti
                    Dim ContoOld As String = RigaConti.Substring(0, 4)
                    Dim ContoNew As String = RigaConti.Substring(5, 6)
                    CodConDare = Trim(CodConDare)
                    CodConAve = Trim(CodConAve)

                    If ((ContoOld = CodConDare) Or (ContoOld = CodConAve)) Then

                        'FileDaScrivere.WriteLine("D" + ";" + ContoNew)

                        CodConDare = Trim(CodConDare)
                        CodConAve = Trim(CodConAve)
                        Dim SubStringCodConDare As String = CodConDare.Substring(0, 1)
                        Dim SubStringCodConAve As String = CodConAve.Substring(0, 1)
                        'FileDaScrivere.WriteLine(CodConDare + ";" + SubStringCodConDare + "-" + CodConAve + ";" + SubStringCodConAve)
                        If ((SubStringCodConDare = "1") And (SubStringCodConAve = "1")) Then
                            For conta = 1 To 1 Step 1
                                'FileDaScrivere.WriteLine(conta)
                                FileDaScrivere.WriteLine("D" + ";" + ContoNew + ";" + CodRipn + ";" + "-1" + ";" + ImpMovm1 + "," + ImpMovm2 + ";" + DesCaus + ";" + "riferimento partita" + ";")
                                FileDaScrivere.WriteLine("D" + ";" + ContoNew + ";" + ";" + "1" + ";" + ImpMovm1 + "," + ImpMovm2 + ";" + DesCaus + ";" + ";" + ContoNew)

                            Next
                            Exit For

                        Else
                            FileDaScrivere.WriteLine("Else creazione riga d dopo prima riga")
                        End If

                    End If

                Next

            Else
                ' RIGA DI MOVIMENTO
                Dim FileCodificaConti As String = "C:\tmp\codificaconti.txt" 'path dove si trova il file
                Dim RigheConti As String() = File.ReadAllLines(FileCodificaConti)
                For Each RigaConti In RigheConti
                    Dim ContoOld As String = RigaConti.Substring(0, 4)
                    Dim ContoNew As String = RigaConti.Substring(5, 6)
                    CodConDare = Trim(CodConDare)
                    CodConAve = Trim(CodConAve)


                    If ((ContoOld = CodConDare) Or (ContoOld = CodConAve)) Then

                        'FileDaScrivere.WriteLine("D" + ";" + ContoNew)

                        CodConDare = Trim(CodConDare)
                        CodConAve = Trim(CodConAve)
                        Dim SubStringCodConDare As String = CodConDare.Substring(0, 1)
                        Dim SubStringCodConAve As String = CodConAve.Substring(0, 1)
                        'FileDaScrivere.WriteLine(CodConDare + ";" + SubStringCodConDare + "-" + CodConAve + ";" + SubStringCodConAve)
                        If ((SubStringCodConDare = "1") And (SubStringCodConAve = "1")) Then
                            For conta = 1 To 1 Step 1
                                FileDaScrivere.WriteLine("D" + ";" + ContoNew + ";" + CodRipn + ";" + "-1" + ";" + ImpMovm1 + "," + ImpMovm2 + ";" + DesCaus + ";" + "riferimento partita" + ";")
                                FileDaScrivere.WriteLine("D" + ";" + ContoNew + ";" + ";" + "1" + ";" + ImpMovm1 + "," + ImpMovm2 + ";" + DesCaus + ";" + ";" + ContoNew)
                            Next
                            Exit For

                        Else
                            For conta = 1 To 1 Step 1
                                FileDaScrivere.WriteLine("D" + ";" + ContoNew + ";" + CodRipn + ";" + "-1" + ";" + ImpMovm1 + "," + ImpMovm2 + ";" + DesCaus + ";" + "riferimento partita" + ";")
                                FileDaScrivere.WriteLine("D" + ";" + ContoNew + ";" + ";" + "1" + ";" + ImpMovm1 + "," + ImpMovm2 + ";" + DesCaus + ";" + ";" + ContoNew)
                                FileDaScrivere.WriteLine("A" + ";" + ContoNew + ";" + "funzione" + ";" + CodRipn + ";" + CodRipn + ";" + ";" + "Libero" + ";" + "0" + ";" + ";" + ImpMovm1 + "," + ImpMovm2)
                            Next
                            Exit For
                        End If

                    End If


                Next RigaConti



            End If

        Next Riga


        FileDaScrivere.Flush()

        FileDaScrivere.Close()

    End Sub