gleiche Zeichenfolgen in 2 txt Dateien finden

Gast
Lesenswert?
• ▲
▼
Heinz Brill schrieb:
> Wäre mal eine schöne Übung

Das geht ja wohl so in die Richtung Plagiatssuche, ist natürlich sehr 
rechenaufwendig. Jedenfall im allgemeinen Fall, wenn man alles mit allem 
vergleichen will und nicht nur gleiche, sondern auch ähnliche 
Zeichenfolgen finden will.

Mit "find identical content" liefert Google ja einiges dazu.
(Firma: Privat)
Lesenswert?
• ▲
▼
Schwierig wirds erst, wenn man außer Zahlen und Buchstaben
noch sonstige Sonderzeichen suchen muß oder gar die
Metazeichen erst maskieren muß.

sowas geht mit XProfan und reg. Ausdrücke problemlos und
ohne viel Nachdenken :
hier 'aufgaben test' rausfiltern :

Print Match$("auf..ben.....", "Hausaufgaben test"), %MatchPos, %MatchLen

Die punkte stehen für je ein Zeichen. Und die Systemvariablen
%MatchPos + %MatchLen geben die gefunden Position und Länge des
gefunden Strings an.

Hab da schon HTML-Tags rausgefiltert oder auch Uhrzeiten in
Form von [19:50] usw. Ist interessant, sowas rauszufiltern,
das es viel mächtiger ist, als in Basic Mid$(), Right$(), Left$()
oder InStr$() o. ä.
Gast
Lesenswert?
• ▲
▼
Heinz Brill schrieb:
> Schwierig wirds erst,

Schwierig nicht.

Aber wie Yalu schon anmerkte, er will wohl nicht einfach nach einer 
bestimmten Zeichenfolge suchen, das wäre ja trivial. Eher so nach dem 
Motto: Resultat: Datei 1 enthält die Ziffernfolge 3.1415 an Position 
123456 und Datei 2 enthält die gleich Folge an Position 654321. Gut, 
wenn das nur auf Ziffernfolgen beschränkt ist, ist der Aufwand noch 
nicht so groß. Aber eventuell sollen gleiche Namen, gleiche Fremdwörter 
usw. gemeldet werden?
Gast
Lesenswert?
• ▲
▼
MN schrieb:
> du suchst die kreuzkorrelation der beiden dateien

Ich nicht, und er wohl auch nicht, da die Position der Suchzeichenfolgen 
ja in jeder Datei beliebug sein kann.

Im Prinzip könnte man ja alle trivialen Wörter wie "und" ignorieren, die 
übrigen Wörter jeder Datei in einen Hash-Index einfügen und dann die 
beiden Hashes vergleichen. Wenn es denn um Wörter geht, und nicht auch 
noch um Buchstabengruppen in Worten. Jetzt aber genug gerätselt.
Gast
Lesenswert?
• ▲
▼
gerd schrieb:
> Hallo Cartman,
> hab so ein Tool mal eben in Java geschrieben.
> Download-Link (incl. Source): http://sebulli.com/download/gZi2tDf.zip
>
> Aufruf mit:
> java -jar gZi2tDf.jar 20 t1.txt t2.txt
>
> Die 20 ist die Länge, die mindestens übereinstimmen muss, dann folgen
> die beiden Textdateien.
>
> Gruß Gerd


Hallo Gerd,

Danke, nach genau sowas hab ich gesucht.
Nur, bei herkömmlichen Textdateien klapt es wunderbar, bei Unicode 
leider nicht.

Bei den Dateien die ich vergleichen möchte, handelt es sich um 
verschlüsselte Projektdateien, die eben in Unicode vorliegen.
Gast
Lesenswert?
• ▲
▼
Cartman schrieb:
> Bei den Dateien die ich vergleichen möchte, handelt es sich um
> verschlüsselte Projektdateien, die eben in Unicode vorliegen.

Logisch klappt das nicht: eine der Grundlagen für eine sinnvolle 
Verschlüsselung ist, dass gleicher Text nicht zum gleichen Code wird, 
sonst wäre die Entschlüsselung ziemlich einfach.

Anders gesagt, bei verschlüsselten Dateien ergibt eine Vergleichsmethode 
nur Zufallsfunde, die eben nicht auf gleichen Text hinweisen. Oder 
wolltest du sagen, du entschlüsselst zuerst beide Dateien??

Gruss Reinhard

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.