2 tekstbestanden vergelijken.

Status
Niet open voor verdere reacties.

erton

Gebruiker
Lid geworden
6 mrt 2009
Berichten
38
Hallo,

ik wil een programma maken om 2 tekstbestanden in te lezen, en het verschil te laten zien.

dit is de code:
Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim teller As Integer = 0
        Dim teller2 As Integer = 0


        Dim locatieBestand As String = "E:\Films\Films\dirlist.txt"
        Dim TextReader As System.IO.TextReader = New System.IO.StreamReader(locatieBestand)
        'Open je textfile in een TextReader

        Dim Array As New ArrayList
        Dim AantalLijnen As Integer
        Dim waarde As String

        Do While TextReader.Peek <> -1 'Kijk of textreader geen fout returnt
            Array.Add(TextReader.ReadLine) 'Stop de data van een textreader lijn in de Array
            AantalLijnen += 1 'AantalLijnen = AantalLijnen + 1
        Loop

        TextReader.Close() 'Sluit de textfile, want je Array is gevuld.

        waarde = Array(1)
        'En print de Array-lijn in je Immediate Window.

        Array.Clear() 'Maak je Array Leeg als je er niets meer mee doet.






        Dim locatieBestand2 As String = System.Windows.Forms.Application.StartupPath & "\dirlist.txt"
        Dim TextReader2 As System.IO.TextReader = New System.IO.StreamReader(locatieBestand2)
        'Open je textfile in een TextReader

        Dim Array2 As New ArrayList
        Dim AantalLijnen2 As Integer
        Dim waarde2 As String

        Do While TextReader2.Peek <> -1 'Kijk of textreader geen fout returnt
            Array2.Add(TextReader2.ReadLine) 'Stop de data van een textreader lijn in de Array
            AantalLijnen2 += 1 'AantalLijnen = AantalLijnen + 1
        Loop

        TextReader2.Close() 'Sluit de textfile, want je Array is gevuld.


        waarde2 = Array2(1)
        'En print de Array-lijn in je Immediate Window.

        Array2.Clear() 'Maak je Array Leeg als je er niets meer mee doet.

        

        Do While teller < 1000
            waarde = CStr(Array(teller))
            waarde2 = CStr(Array2(teller2))
            If waarde = waarde2 Then
                teller += 1
                teller2 += 1
            Else
                txtInhoud.Text = waarde2
                teller += 1
                teller2 += 2
            End If
        Loop
    End Sub

de eerste 2 blokken code dienen om elke lijn van de 2 tekstbestanden in een arraylist te zetten.
het bestand van de e-schijf is het oudste.

het loopt fout op het laatste, bij het vergelijken. daar zegt hij altijd bij "waarde = CStr(Array(teller))" dat de index buiten het bereik valt.

heeft er iemand een oplossing? hartelijk dank
 
errr, ja.
Code:
        Do While teller < 1000
in dit geval telt ie dus van 0 tot 1000. MAAR, heeft je array (otw. lijnen in textbestand) wel 1000 lijnen? Denk het niet. Dit zul je dus moeten aanpassen:
Code:
do while teller < ubound(Array)
oid. Also, is 'array' niet een reserved keyword?


:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan