+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 10 su 10

inserire in un ListBox tutte le righe del file uno presenti del file due

  1. #1
    simomonti non  in linea Novello
    Buon giorno
    ho due file txt, vorrei che vengano inserite tutte le righe del file 1 e quelle uguali del file 2 ma non so cosa sbaglio:
    file1:
    uno
    due
    tre
    quattro
    cinque

    file2:
    uno
    tre
    cinque

    risultato:
    uno --> uno
    due
    tre --> tre
    quattro
    cinque --> cinque

    Questo il mio codice

    Private Sub btnConfronta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConfronta.Click
            Dim f1 As String = TextBox1.Text
            Dim f2 As String = TextBox2.Text
            If File.Exists(f1) Then
                If File.Exists(f2) Then
                    'Dichiarazioni
                    Dim fullPath1 As String = f1
                    Dim linee1 As New List(Of String)
                    Dim linea1 As String
                    Dim fullPath2 As String = f2
                    Dim linee2 As New List(Of String)
                    Dim linea2 As String
                    'StreamReader
                    Using SR1 As New IO.StreamReader(fullPath1)
                        Using SR2 As New IO.StreamReader(fullPath2)
                            'Leggo la prima linea del file1 e file2
                            linea1 = SR1.ReadLine
                            linea2 = SR2.ReadLine
                            Do Until linea1 Is Nothing
                                Do Until linea2 Is Nothing
                                    If linea1 = linea2 Then
                                        ListBox1.Items.Add(linea1 & " --> " & linea2)
                                    End If
    
                                    linea2 = SR2.ReadLine 'Leggo la linea successiva del file2
                                Loop
                                If linea1 <> linea2 Then ListBox1.Items.Add(linea1)
                                linea1 = SR1.ReadLine 'Leggo linea successiva del file1
                            Loop
                        End Using
                    End Using
                    MessageBox.Show("Codici importati correttamente")
                Else : MessageBox.Show("Il secondo file non l'hai selezionato!")
                End If
            Else : MessageBox.Show("Il primo file non l'hai selezionato!")
            End If
        End Sub
        Public Function CodiceEstratto(ByVal codice As String) As String
            If codice.Contains("=") Then
                Dim p1 As Integer = codice.IndexOf("=")
                codice = codice.Substring(p1 + 4, 10)
            ElseIf codice.Contains("-") Then
                Dim p1 As Integer = codice.IndexOf("-")
                codice = codice.Substring(p1 - 3, 15)
            Else
                Return String.Empty
            End If
            Return codice
        End Function
    
    Mi dareste dei consigli?

  2. #2
    patel45 non  in linea Scolaretto
    io leggerei subito ambedue i file con readalltext e poi farei il confronto

  3. #3
    simomonti non  in linea Novello
    Che vantaggio ho?

  4. #4
    L'avatar di gibra
    gibra non  in linea Very Important Person
    Quote Originariamente inviato da simomonti Visualizza il messaggio
    ho due file txt, vorrei che vengano inserite tutte le righe del file 1 e quelle uguali del file 2 ma non so cosa sbaglio:
    ---
    Mi dareste dei consigli?
    Su cosa (?) se non ci spieghi quale sia il tuo problema?
    ℹ️ Leggi di pi su gibra ...

  5. #5
    patel45 non  in linea Scolaretto
    Quote Originariamente inviato da simomonti Visualizza il messaggio
    Che vantaggio ho?
    non tieni impegnato il disco durante il controllo, esecuzione pi veloce, hai chiesto consigli e questo il mio.

  6. #6
    patel45 non  in linea Scolaretto
    una soluzione potrebbe essere questa
     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim f1 As String = textbox1.text
            Dim f2 As String = textbox2.text
            Dim linee1 As String(), linee2 As String()
            Dim linea1 As String, linea2 As String
            linee1 = File.ReadAllLines(f1)
            linee2 = File.ReadAllLines(f2)
            For Each linea1 In linee1
                For Each linea2 In linee2
                    If linea1 = linea2 Then
                        ListBox1.Items.Add(linea1)
                        Exit For
                    End If
                Next
            Next
        End Sub
    
    o meglio
     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim f1 As String = textbox1.text
            Dim f2 As String = textbox2.text
            Dim linee1 As String(), linee2 As String()
            linee1 = File.ReadAllLines(f1)
            linee2 = File.ReadAllLines(f2)
            For Each linea1 In linee1
                    If array.IndexOf(linee1, linea1) >= 0 Then  ListBox1.Items.Add(linea1)
            Next
        End Sub
    
    Ultima modifica di patel45; 02-03-2018 10:43 

  7. #7
    Sgrubak non  in linea Scribacchino
    Quote Originariamente inviato da patel45 Visualizza il messaggio
     
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim f1 As String = textbox1.text
            Dim f2 As String = textbox2.text
            Dim linee1 As String(), linee2 As String()
            linee1 = File.ReadAllLines(f1)
            linee2 = File.ReadAllLines(f2)
            For Each linea1 In linee1
                    If array.IndexOf(linee1, linea1) >= 0 Then  ListBox1.Items.Add(linea1)
            Next
        End Sub
    
    Credo ci sia un refuso. Non dovrebbe essere:
    If array.IndexOf(linee2, linea1) >= 0 Then  ListBox1.Items.Add(linea1)
    

  8. #8
    simomonti non  in linea Novello
    Quote Originariamente inviato da patel45 Visualizza il messaggio
    una soluzione potrebbe essere questa
     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim f1 As String = textbox1.text
            Dim f2 As String = textbox2.text
            Dim linee1 As String(), linee2 As String()
            Dim linea1 As String, linea2 As String
            linee1 = File.ReadAllLines(f1)
            linee2 = File.ReadAllLines(f2)
            For Each linea1 In linee1
                For Each linea2 In linee2
                    If linea1 = linea2 Then
                        ListBox1.Items.Add(linea1)
                        Exit For
                    End If
                Next
            Next
        End Sub
    
    o meglio
     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim f1 As String = textbox1.text
            Dim f2 As String = textbox2.text
            Dim linee1 As String(), linee2 As String()
            linee1 = File.ReadAllLines(f1)
            linee2 = File.ReadAllLines(f2)
            For Each linea1 In linee1
                    If array.IndexOf(linee1, linea1) >= 0 Then  ListBox1.Items.Add(linea1)
            Next
        End Sub
    
    Avevo usato una soluzione simile a quella alla prima di scolaretto ma penso che la seconda con la correzione di Novello vada meglio!
    Grazie ragazzi!

  9. #9
    Sgrubak non  in linea Scribacchino
    Quote Originariamente inviato da simomonti Visualizza il messaggio
    Avevo usato una soluzione simile a quella alla prima di scolaretto ma penso che la seconda con la correzione di Novello vada meglio!
    Grazie ragazzi!
    Novello e Scolaretto sono i ranghi del forum. I nickname sono patel45 e Sgrubak. :-)

  10. #10
    patel45 non  in linea Scolaretto
    Quote Originariamente inviato da Sgrubak Visualizza il messaggio
    Credo ci sia un refuso. Non dovrebbe essere:
    If array.IndexOf(linee2, linea1) >= 0 Then  ListBox1.Items.Add(linea1)
    
    Grazie, ho sbagliato a scrivere

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Copiare righe non presenti da file di testo a tabella Excel
    Da simomonti nel forum Visual Basic .Net
    Risposte: 12
    Ultimo Post: 31-03-2016, 21:08
  2. Risposte: 2
    Ultimo Post: 27-12-2014, 23:42
  3. [vb2010] Inserire tuttigli elementi di una listbox in un file xml
    Da ZurilVB.Net nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 19-05-2011, 22:20
  4. Estrarre righe ListBox e scrivere su un file di testo
    Da Headphone nel forum Visual Basic .Net
    Risposte: 3
    Ultimo Post: 30-11-2008, 10:20
  5. Inserire righe in un file di testo...help
    Da janegia nel forum Visual Basic 6
    Risposte: 14
    Ultimo Post: 01-08-2005, 14:06