Textdateien vergleichen

TGoP

Lt. Junior Grade
Registriert
Nov. 2008
Beiträge
479
Hallo,

folgendes Problem. Ich habe hier ein Verzeichnis mit 5000 Dateien und eine 1MB große reine Textdatei. Ich muss nun abgleichen welche der Dateien auch in der Textdatei erwähnt wird. Dazu muss man wissen das die Dateien nie in reinform in der Textdatei stehen sondern ohne Endung. Habe ich also z.B. eine Datei mit dem Namen "Urlaub1.avi" steht in der Textdatei nur "Urlaub1" (und darüber hinaus noch jede Menge Zusatzinfos).

Da ich keine Möglichkeit gefunden habe Wörter aus Textdatein direkt mit dem Inhalt eines Verzeichnisses auf Ähnlichkeiten zu vergleichen dachte ich mir das es eine gute Idee wäre den Inhalt des Verzeichnisses als Textdatei auszugeben. So wollte ich nun zwei reine Textdateien auf in Wörter hin zu vergleichen die in beiden Textdateien vorkommen.

Das Problem ist aber nun, entweder bin ich blind oder blöd. Ich finde zwar jede Menge Tools die Textdateien auf Unterschiede hin überprüfen, ein Programm das gleiche Wörter anzeigt habe ich aber nicht gefunden. Und da beide Datein komplett unterschiedlich sind hilft mir ein Vergleich auf Unterschiede kein Stück da sich beide Textdateien schlicht komplett unterscheiden.

Ich hoffe wirklich jemand versteht was ich vor habe und kann mir helfen. Danke im voraus.
 
Moin,

nee, so ganz verstehe ich nicht, was du meinst bzw. willst. Um dir sinnvoll helfen zu können, wäre folgendes gut:
  1. "Ich habe hier ein Verzeichnis mit 5000 Dateien" Was ist ein Verzeichnis? Folder/Ordner oder eine Liste (Datei) in Textform?
  2. Wie ist die Textdatei aufgebaut? 3 bis 4 Zeilen als Muster wären hilfreich. Insbesondere: Sind alle Zeilen gleichartig aufgebaut?
 
Du suchst doch im Prinzip nur nach Dateien die in der von dir erstellten Textdatei enthalten sind.
Deren Aufbau kennst du auch. Dann kannst du doch jede Zeile nehmen, entsprechend zerlegen (z.B. das Wort vor dem .avi) und diese in der zweiten Datei suchen. Dann findest du alle Vorkommen.
Du kannst dir dann entweder die Zeilennummer, den Inhalt der gesamten Zeile oder was auch immer ausgeben lassen.
 
@ Nemo
Ich habe hier zwei Dinge. Einen Ordner auf der Festplatte mit rund 5000 Dateien darin und eine 1MB große Textdatei mit allerlei Angaben (darunter Dateinamen, Größenangaben, Zusatzinfos usw). Ich muss nun wissen welche der 5000 Dateien in dieser Textdatei genannt werden.

Da mir allerdings kein Weg bekannt ist den Inhalt einer Textdatei (Text) mit dem Inhalt eines Ordners (Dateinamen) zu vergleichen dachte ich mir das es eine gute Idee wäre den Inhalt des Ordners, mit dem guten alten DIR Befehl, in eine Textdatei zu schreiben. Anschliessend wollte ich die beiden Textdateien dann auf gemeinsame Einträge hin überprüfen lassen.

Leider finde ich selbst dafür kein Tool. Ich finde nur Tools wie WinMerge. Dieses vergleiche beide Textdateien auf Unterschiede. Da nun aber beide Textdateien komplett unterschiedlich aufgebaut sind zeigt es schlicht alles als unterschiedlich an.

@ schmidmi
Der Inhalt der 1MB Textdatei ist gewaltig. Deswegen wäre es mir schon lieb ein Tool zu finden das beide Dateien automatisch untersucht.
 
Ich meinte auch nicht das du es per Hand machen sollst sondern mit einem kleinen Programm das du schreibst. Der Aufwand wäre minimal.
Etwas in der Form wirst du nur schwer finden, dazu ist das Problem zu speziell.
 
Moin TGoP,

TGoP schrieb:
Ich habe hier zwei Dinge. Einen Ordner auf der Festplatte mit rund 5000 Dateien darin und eine 1MB große Textdatei mit allerlei Angaben (darunter Dateinamen, Größenangaben, Zusatzinfos usw). Ich muss nun wissen welche der 5000 Dateien in dieser Textdatei genannt werden.
... Das hatte ich mir auch gedacht, war aber nicht sicher.

Da mir allerdings kein Weg bekannt ist den Inhalt einer Textdatei (Text) mit dem Inhalt eines Ordners (Dateinamen) zu vergleichen dachte ich mir das es eine gute Idee wäre den Inhalt des Ordners, mit dem guten alten DIR Befehl, in eine Textdatei zu schreiben. Anschliessend wollte ich die beiden Textdateien dann auf gemeinsame Einträge hin überprüfen lassen.

Ja, vom Prinzip her eine gute Idee. Allerdings würde ich ein Tool vorziehen, welches mir gleich die einzelnen "Blöcke" (Dateiname, Erweiterung, Größe, ...) sauber trennt. Ich mache das beispielsweise mit dem TotalCommander und einem Zusatztool. (Geht auch mit der Shareware-Version.) Andere Dir2Txt - Tools können das natürlich auch. Mit etwas mehr Mühe geht natürlich auch das gute, alte DIR mit Umleitung in eine *.txt :)

Leider finde ich selbst dafür kein Tool.
Kenne ich auch nicht ...

Da nun aber beide Textdateien komplett unterschiedlich aufgebaut sind zeigt es schlicht alles als unterschiedlich an.
Richtig, da liegt das Problem. Darum hatte ich dich auch um 3-4 Zeilen Mustertext aus der 1MB-Datei gebeten. Hintergrund: Lassen sich die Blöcke irgendwie per Code trennen?

Ich würde dann beide Dateien bzw. die wichtigen Teile in eine Datenbank einlesen, beispielsweise Access, notfalls auch Excel. Dann kann ich hervorragend mehr oder weniger automatisiert die Suche starten, ich brauche ja "nur" nach Duplikaten zu suchen.
 
Ich fürchte der Mustertext wird das ganze nur verschlimmern. Frag mich nicht wieso aber in die Datei wurde über Monate immer nur eingetrage. An ein bestimmtes Format wurde sich nicht gehalten

So kommt es das Eintrag 1 z.B. so aussieht:
Code:
TITLE:............. bla bla bla
DURATION........5:00
SIZE:..............16 MB
CONTENTS:...... bla bla bla
DIR:....... c:\bla

Während ein anderer Eintrag einfach so aussieht:
Code:
titel
bla bla bla
c:\bla2
 
TGoP schrieb:
Ich fürchte der Mustertext wird das ganze nur verschlimmern.
JA!
Und wahrscheinlich sind da noch mehr Formate, oder? SO kann kein Programm automatisch die einzelnen "Datensätze" (=1 Programm-Block) entwirren.

Ich würde da wahrscheinlich so beigehen:
  • DIR c:\MyFolder\*.* > c:\MyFiles.txt
  • In Excel beide Textdateien in je eine Tabelle einlesen
  • Tabelle MyFiles so bereinigen, dass nur die Files übrig sind
  • Tabelle MyFiles -> TextInSpalten, so dass der Dateiname übrig bleibt
  • per Makro jede Zeile der Dateiname-Spalte den Namen einlesen
  • Namen in anderer Tabelle suchen, wenn gefunden, dann ganze Zeile einfärben

Zumindest hast du dann einmal einen kleinen Anhaltspunkt und kannst halbwegs erkennen, ob es das richtige File ist.

Ansonsten: Mein Beileid ... :(
 
Zurück
Oben