Procedure in VB.net works correctly only in debug mode

时间:2018-09-18 20:17:10

标签: vb.net visual-studio

I have this procedure in visual basic that works for years in Visual Studio 2010 (2015) in windows 7 machine, but I change pc and now in Windows 10 Visual Studio 2017 it only works in debug mode. In runtime mode the procedure loop correctly for 2 time and exit with out error (exit code 0 on console).

In this procedure I loop in array of file information, read email in pdf file and send an email:

Private Sub elaboraFile(lDirectoryFile As String)

    Dim i As Integer

    Dim eMail, Denominazione, totaleFatt As String

    For i = 0 To listaFatture.Length - 1
        If File.Exists(lDirectoryFile & "\" & listaFatture(i).nomeFile) Then

            ' create a new PDF reader based on the PDF template document
            Dim pdfReader As PdfReader = New PdfReader(lDirectoryFile & "\" & listaFatture(i).nomeFile)

            Dim currentText As String
            Dim strategy As New SimpleTextExtractionStrategy()
            currentText = PdfTextExtractor.GetTextFromPage(pdfReader, 1, strategy)
            currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)))

            Dim inizioEmail As Integer
            Dim inizioDenomCompleta As String
            inizioEmail = currentText.IndexOf("E-Mail: ")

            If inizioEmail < 1 Then
                'Errore indirizzo mail non trovato
                listBoxErrori.Items.Add("mail non presente: " & listaFatture(i).nomeFile & " - " & listaFatture(i).denomParziale)
            Else
                inizioDenomCompleta = currentText.IndexOf(listaFatture(i).denomParziale)
                eMail = currentText.Substring(inizioEmail + 8, inizioDenomCompleta - inizioEmail - 8 - 1)

                If IsValidEmail(eMail) Then

                    'Estrazione denominazione Ditta
                    'inizio: valore di denomParziale
                    'fine: Spettabile
                    Denominazione = currentText.Substring(inizioDenomCompleta, currentText.IndexOf("Spettabile") - inizioDenomCompleta - 1)

                    ListBox1.Items.Add(listaFatture(i).nomeFile & " - " & eMail & " - " & Denominazione)
                    ListBox1.TopIndex = ListBox1.Items.Count - 1

                    Dim ldataFattura As String
                    ldataFattura = Strings.Right(listaFatture(i).dataFattura, 2) & "/"
                    ldataFattura = ldataFattura & listaFatture(i).dataFattura.Substring(4, 2) & "/"
                    ldataFattura = ldataFattura & Strings.Left(listaFatture(i).dataFattura, 4)
                    'Mail
                    Dim testoMail As String
                    testoMail = "Buongiorno <b>" & Denominazione & "</b>,  <br />" & vbCrLf &
                    " <br />" & vbCrLf &
                        "Fattura nr <b>" & listaFatture(i).nrFattura & "</b> del <b>" & ldataFattura & "</b> <br />" 

                    If SendMailAIM(eMail, "Invio fattura", testoMail, lDirectoryFile & "\" & listaFatture(i).nomeFile) = False Then
                        listBoxErrori.Items.Add("Errore invio mail - " & listaFatture(i).nomeFile & " - " & eMail & " - " & Denominazione & " - " & totaleFatt)
                        listBoxErrori.TopIndex = listBoxErrori.Items.Count - 1
                    End If
                Else
                    listBoxErrori.Items.Add("mail errata: " & eMail & " nomefile:" & listaFatture(i).nomeFile & " - " & listaFatture(i).denomParziale)
                End If

            End If
            pdfReader.Close()
            pdfReader = Nothing

            ResponsiveSleep(7000)

            Try
                File.Delete(lDirectoryFile & "\" & listaFatture(i).nomeFile)
            Catch ex As Exception
                listBoxErrori.Items.Add("Impossibile cancellare il file " & listaFatture(i).nomeFile)
            End Try
            ProgressBar1.PerformStep()

        Else
            listBoxErrori.Items.Add("Fattura non presente - " & listaFatture(i).nomeFile)
            ProgressBar1.PerformStep()
        End If

        Me.Refresh()
    Next

    MsgBox("Elaborazione Terminata")

End Sub

0 个答案:

没有答案