Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Textvergleich ähnlich wie beyondcompare? (https://www.delphipraxis.net/194966-textvergleich-aehnlich-wie-beyondcompare.html)

Mavarik 23. Jan 2018 12:00

Textvergleich ähnlich wie beyondcompare?
 
Hallo Zusammen!

Vielleicht ha ja jemand eine Idee, eine keine Routine, einen Link oder einen Hinweis für einen Ansatz.

Gegeben sind zwei Listen von Texten, nennen wir diese Links und Rechts. Das in Links ein Text an 1. Stelle steht und in Rechts an 5. Stelle soll nicht interessieren. Es geht mir "nur" um fast gleiche Texte. Beispiel:

Links Rechts
Das ist Das ist
ein cooles Beispeil für ein cooles Beispiel für
eine kurze 
Erklärung. Erklärung.

Wie finde ich - am Besten - Teilunterschiede zwischen den zwei Strings? Also nicht mit zwei Pos-For-Schleifen und hunderten von Iterationen!

Mavarik

Rollo62 23. Jan 2018 12:04

AW: Textvergleich ähnlich wie bejondcompare?
 
ist es EIN Textdokument, oder kommt das aus zwei Quellen ?
Stehen in einer Zeile immer die vergleichbaren Texte, oder kann das auch verschoben sein ?

Der schöne Günther 23. Jan 2018 12:06

AW: Textvergleich ähnlich wie bejondcompare?
 
Mit der Suchmaschine meines Vertrauens finde ich für Phrasen wie "delphi text diff algorithm" eigentliche eine Menge. Beispielsweise TextDiff oder PascalDiff.

Mavarik 23. Jan 2018 12:08

AW: Textvergleich ähnlich wie bejondcompare?
 
Zitat:

Zitat von Rollo62 (Beitrag 1391753)
ist es EIN Textdokument, oder kommt das aus zwei Quellen ?
Stehen in einer Zeile immer die vergleichbaren Texte, oder kann das auch verschoben sein ?

Zwei Quellen!
Verschoben ist nicht die Problemstellung...

AAA BBB CCC <> BBB CCC
AAA BBB CCC <> AAA BBB

AAA BBB CCC <> AXA BXB CXC

"Nur" so...

Mavarik 23. Jan 2018 12:12

AW: Textvergleich ähnlich wie bejondcompare?
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1391754)
Mit der Suchmaschine meines Vertrauens finde ich für Phrasen wie "delphi text diff algorithm" eigentliche eine Menge. Beispielsweise TextDiff oder PascalDiff.

OMG - ja darauf hätte ich auch kommen können... :thumb:

Danke schon mal... Ich glaube ich hole mir vor dem nächsten Posting erst neuen Kaffee...!

Mavarik

Neutral General 23. Jan 2018 12:13

AW: Textvergleich ähnlich wie bejondcompare?
 
Ich glaube unterm Strich kommt du nicht um sowas drum rum:

Delphi-Quellcode:
for i:= 1 to Min(Length(leftStr), Length(rightStr)) do
begin
  if (leftStr[i] <> rightStr[i]) then
    charColor := clRed
end;

// Danach beim rightStr alle Zeichen hinter Length(leftStr) rot färben

Mavarik 23. Jan 2018 12:22

AW: Textvergleich ähnlich wie bejondcompare?
 
Zitat:

Zitat von Neutral General (Beitrag 1391758)
Ich glaube unterm Strich kommt du nicht um sowas drum rum:

Delphi-Quellcode:
for i:= 1 to Min(Length(leftStr), Length(rightStr)) do
begin
  if (leftStr[i] <> rightStr[i]) then
    charColor := clRed
end;

// Danach beim rightStr alle Zeichen hinter Length(leftStr) rot färben

Sorry, aber so einfach ist es nicht... Aber die Links vom "schöne Günther" sind schon genau richtig...

Delphi.Narium 23. Jan 2018 12:39

AW: Textvergleich ähnlich wie beyondcompare?
 
Es gibt da so etliche Algorithmen:

SoundEx (müsste bei Delphi dabei sein)
Levenshtein
Donald E. Knuth (gab da mal 'ne Beschreibung in der Oracle-Doku 8.1.7)
Kölner Phonetik

Alle können Dir sagen, ob die Texte übereinstimmen oder den "Grad" der Ähnlichkeit.

Damit es "bunt" wird, kommst Du dann nicht drumherum, es in der Art, wie Neutral General beschrieb, "anzumalen".

Wikipedia: Levenshtein-Distanz
how do you implement levenshtein distance in delphi
Kölner Phonetik für PL/SQL
Oracle: Ähnlichkeitssuche: Die "Kölner Phonetik" in APEX
Bei Google suchenphonetische suche algorithmus

jobo 23. Jan 2018 13:38

AW: Textvergleich ähnlich wie beyondcompare?
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1391765)
..
Damit es "bunt" wird, kommst Du dann nicht drumherum, es in der Art, wie Neutral General beschrieb, "anzumalen".

Naja, gemäß Beispiel ist ein stumpfer "synchroner" Vergleich auf Zeichen an Stelle x ja nur die halbe Miete, es heißt ja wahrscheinlich nicht umsonst "beyond compare"

Im Beispiel

Zitat:

Zitat von Mavarik (Beitrag 1391756)
AAA BBB CCC <> BBB CCC
AAA BBB CCC <> AAA BBB


wäre ja sonst in Zeile 1 alles bunt.

Delphi.Narium 23. Jan 2018 13:45

AW: Textvergleich ähnlich wie beyondcompare?
 
@jobo
Deshalb ja auch: "in der Art, wie" ;-)
Heißt ja nicht: "Genauso" ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:19 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz