Mike: Zeichenketten dynamisch vergleichen

Beitrag lesen

Moin zusammen!

Ich möchte (jeweils)(mindestens) zwei Zahlenblöcke miteinander vergleichen und Unterschiede darin farblich hervorheben. Diese Blöcke sind größtenteils gleich. Ich gebe mal ein Beispiel:

54893 57941 35489 35756 68745 65789 23456 63574 47856 85573 98745 56314 44856 33579 56975 15974 68745 65784 35784 35743 68777 53248 65789 35798 53631 15897 56874 38745 65795 48687

wird verglichen mit

54893 57941 35489 ##### 35756 68745 65789 23456 63574 47856 ##### ##### 85573 98745 56314 44856 ##### ##### ##### ##### 33579 56975 15974 68745 65784 35784 35743 68777 53248 65789 35798 53631 15897 56874 38745 ##### 65795 48687

zeigt eine zusätzliche Zahl. Diese und nur diese soll hervorgehoben werden. Wenn es umgekehrt ist, also der hier zweite Block mit dem ersten verglichen wird, soll diese Hervorhebung ebenso stattfinden, d.h. Markierungen soll es ggf. in beiden Zahlenblöcken geben.

Es muss also ein Script her, das an der Stelle eines auftretenden Unterschiedes diesen markiert und dann nachsieht, ob und ab wann die Blöcke wieder identisch sind.

Problem 1:

54893 57941 35489 35756 68745 65789 23456 63574

gegenüber

54893 57941 ##### 35489 ##### ##### ##### #####

Hier ist ein Zeichen identisch mit dem, das in Block 1 der Stelle des Unterschiedes folgt. Die folgenden sind aber wieder verschieden. Es soll möglich sein, zu bestimmen, wie viele gleiche Zahlen folgen müssen, damit die Folge als identisch gilt, also ob eins reicht oder es zwei oder drei oder ... sein müssen.

Problem 2:

54893 57941 35489 ##### 68745 65789 23456 63574

gegenüber

54893 57941 ##### 35756 68745 65789 23456 63574

Block 2 zeigt einen Unterschied und gleich darauf Block 1. Hier kann ewig nach dem folgenden gleichen Zeichen gesucht werden, obwohl nur eines in Block 2 übersprungen werden muss. Es müsste da also auch etwas her, dass irgendwann aufgibt und sich am nächsten Zeichen versucht.

Meine Idee wäre, die Zahlenblocks an den Leerstellen in einen Array zu exploden und dann in einer while-Schleife zu vergleichen, aber insbesondere wegen der Probleme stehe ich da ziemlich auf dem Schlauch und bräuchte mal einen ganz allgemeinen Ansatz, wie man überhaupt zwei Zeichenketten auf solche Weise vergleichen kann.

Besten Dank und schönen Gruß,

Mike