Flascher Ablauf beim Comparing

meste

Erfahrenes Mitglied
Hallo!

Ich möchte den Inhalt zwei Dateien vergleichen und die unterschiede in einer RichTextBox in Farbe anzeigen lassen. Die Unterschiede in farbe anzeige usw. ist kein Problem.
Mein Problem ist sicherlich ein Denkfehler beim Ablauf.

Ich lese die Dateien jeweils ein und übergebe den geteilten Inhalt, nach Zeilenumbruch, an ein StringArray (string[] datei1, string[] datei2).

Ablauf:
1. Fall
Zuerst frage ich ab ob die Zeilen gleich sind, wenn ja dann ist es kein Problem die Zeilen zu vergleichen und diese in unterschiedlichen farben anzuzeigen.

2. Fall
Wenn die Zeilen ungleich sind prüfe ich ab welcher Index größer ist.
Bsp. Index von datei1 ist größer, dann fang ich die Schleife mit datei2 an und danach gleich die Schleife mit datei1.

In den beiden Schleifen wird abgefragt ob die zeilen gleich sind, wenn ja dann wird der Wert des ArrayIndex in die RichtextBox mittels AppendText hinzugefügt.
Auch in diesem Abschnitt muss auf andere Fälle prüfen (wie z.B.: ob es sich um eine Leerzeile handelt. Es kann ja auch sein das die beiden Dateien fast gleich sind bis auf einpaar zusätliche Leerzeilen, Codezeilen oder auch Kommentarzeichen usw.
Wenn die Zeile nicht gleich ist dann wird überprüft ob die Zeile im Array (datei2) im inhalt von datei1 existiert, wenn ja dann wird die Schleife (datei2) nicht weitergezählt, da vielleicht vorher änderungen vorgenommen wurden und evtl. die Zeile, welche im inhalt1 existiert, noch kommen könnte.

Ich weiss das sich das ganze gschwollen anhört aber das Endergebnis soll ein gewöhnlicher Diff sein. Ähnlich wie beim WinDiff oer UltraEdit usw.

Und ich habe hauptsächlich nur bei diesem Fall, beim Ablauf einen Denkfehler.

Ich hoffe ich konnte das Problem halbwegs verständlich schildern. Und wäre für jeden Denkanstoss sehr dankbar.
Danke im vorhinein und wünche euch nch einen schönen Abend.


m.e.s.t.e
 
Zuletzt bearbeitet:
Zurück