English version | Dieses Programm wird es unter den Bedingungen der GNU General Public License vertrieben; in der Hoffnung, nützlich zu sein, aber OHNE JEGLICHE GEWÄHRLEISTUNG; sogar ohne die implizite Gewährleistung der MARKTREIFE oder der EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. | |
Deutsche Version | ||
Versión en castellano |
IExtract
ist ein kleines Utility, designed die Eigenschaften
(Titel, Autor und Kommentar) aus verschiedenen Dokumenten auszulesen und
sie in einer Liste (zur weiteren Bearbeitung) anzuzeigen.
Die folgenden Dokumente werden unterstützt (weitere Dokument-Typen können einfach durch Plug-ins hinzugefügt werden):
Sucht nach Text zwischen den <title>
und
</title>
tags beziehungsweise den Inhalt der meta
tags (sowohl nach HTML 4.0 und "Dublin Core").
PNG-Bilder können Text-Einträge mit Werten im Format Schlüsselwort - Wert enthalten.
Die (unkomprimierten) Werte der Einträge Title, Author und Description werden ausgelesen.
GIF-Bilder können Kommentar-Einträge (in sogenannten "Kommentar-Erweiterungen") enthalten. Die Werte für Titel und Author werden (mangels Verfügbarkeit) nicht gesetzt.
Es werden Kommentare nach einem "comment marker" (0xFFFE), in einem APP1 Exif marker (wie von Windows XP geschrieben) und in einem APPD marker (wie sie scheinbar einige Versionen von PhotoShop erzeugen) erkannt)
Sucht nach dem Inhalt des "Eigenschaften" Dialogs.
Dank des Apache Jakarta POI Projekts und deren Dokumentation des "OLE2 Compount Document format" (wie es von MS Office verwendet wird), sollten alle Dokumente korrekt bearbeitet werden können (ev. mit der Ausname von Dokumenten größer als 6,8 MB).
Ist die Library zlib installiert, können auch Office Open XML documente bearbeitet werden.
Sucht nach dem ID3 tag (version 1.x und 2.x). Der Titel des Albums wird im Kommentar-Feld zurückgeliefert.
Sucht nach dem "Comment header" am Anfang der Datei. Der Titel des Albums wird im Kommentar-Feld zurückgeliefert.
PDF-Dokumente beinhalten ein sogenanntes Document Information directory mit verschiedenen Einträgen. Der Inhalt dieses Verzeichnisses wird ausgelesen (mit dem "Subject"-Schlüssel als Kommentar).
Verschlüsselte Dokumente werden nicht entschlüsselt!
Liest die Einträge des "Eigenschaften"-Dialogs.
Liest die Einträge des "Eigenschaften"-Dialogs.
Liest die Einträge des "Eigenschaften"-Dialogs.
Liest die Einträge des "Info"-Blocks.
Die Ausgabe kann sowohl in HTML-format (table), XML (default XHTML), LaTeX (tabular) Format oder als Klartext (sowohl lesbar (durch Leerzeichen getrennt) oder bearbeitbar durch Machinen (unter Anführungszeichen, getrennt durch Beistriche)) erfolgen. Beachte, dass etwaige Sonderzeichen in den ausgelesenen Daten konvertiert werden.
Das Verhalten des Programms wird von einem INI-File (~/.IExtract für UNICES oder %HOMEDRIVE%%HOMEPATH%IExtract.ini für Windows) gesteuert. Das Format des INI-Files ist später im Dokument beschrieben.
Dieses Default-Verhalten kann durch ein anderes INI-File oder durch Optionen geändert werden.
IExtract [OPTIONEN] <Datei(en)>
Die gesuchten Dateien können die UNIX-typischen Platzhalter (Stern (*) für eine beliebige Anzahl beliebiger Zeichen,Fragezeichen (?) für genau ein beliebieges Zeichen sowie explizit angeführte gültige Zeichen innerhalb von eckigen Klammern ([) und (]); entweder einzeln aufgelistet, innerhalb von mit einem Minus (-) getrennten Grenzen oder durch eine Klasse (innerhalb von '[:' und ':]') angegeben werden. Diese Selektion kann durch ein Caret (^) oder ein Rufzeichen (!) negiert werden.) enthalten. Dies gilt auch für die Windows-Version.
Beispiele dafür sind:
Die folgenden Optionen werden vom Programm unterstüzt (kurze Optionen können verbunden werden; wenn die lange Option ein Argument benötigt, so auch die kurze Variante. Lange Optionen können abgekürzt werden, solange sie eindeutig sind):
-r, --recursive | Durchsuche Unterverzeichnisse nach der Bearbeitung der Dateien des aktuellen Verzeichnisses. |
-o, --output=STIL | Setzt den Stil der Ausgabe (text, quoted, HTML oder LaTeX). |
-f, --format=FORMAT | Format der Ausgabe (Default: %n¦-¦%t¦%a¦%c¦%d)
Die Ausgabe kann in Spalten unterteilt werden (sinnvoll for allem für die erzeugten HTML/LaTeX-Tabellen; getrennt wird durch den vertikalen Strich (¦)). Das Prozentzeichen (%) ändert die Bedeutung des nächsten Zeichens:
In jeder anderen Zusammenstellung wird das '%' einfach entfernt! |
-T, --title=TITEL | Titel/Überschrift der Ausgabe (wird auch ausgegeben, wenn
gar keine Datei behandelt wurde).
TITEL gibt die Spalten der Ausgaben an; getrennt mit dem vertikalen Strich (¦); jede Spalte muss zumindest ein Zeichen enthalten. |
-s, --separate=TEXT | Trenne Unterverzeichnisse mit TEXT (default: leer);
impliziert das Durchsuchen der Unterverzeichnisse (--recursive).
Das Prozentzeichen (%) ändert die Bedeutung des nächsten Zeichens:
|
-p, --prepend=TEXT | Ermöglicht einen Text anzugeben, der am Anfang der (gesamten) Ausgabe geschrieben wird (z. B. für eine Kopfzeile). |
-P, --pre-file=FILE | Ermöglicht eine Datei anzugeben, deren Inhalt am Anfang der (gesamten) Ausgabe geschrieben wird (z. B. für eine Kopfzeile). |
-a, --append=TEXT | Ermöglicht einen Text anzugeben, der am Ende der (gesamten) Ausgabe geschrieben wird (z. B. für eine Fußzeile). |
-A, --app-file=FILE | Ermöglicht eine Datei anzugeben, deren Inhalt am Ende der (gesamten) Ausgabe geschrieben wird (z. B. für eine Fußzeile). |
-e, --show-errors | Liefert eine Fehlermeldung (in der Ausgabe), wenn das Untersuchen der Datei scheitern sollte. |
-u, --add-unknown | Zeige alle Dateien (auch die nicht unterstützten) in der Ausgabe. |
-n, --new=[TAGE:]TEXT | Zeige TEXT (in einer eigenen Spalte) für Dateien, die jünger
als TAGE (default: 30) Tage sind. Diese Spalte ist immer die erste
Spalte in der Ausgabe.
TAGE kann entweder ausgelassen werden oder einen Anhang aufweisen. Bei 'm' wird die Anzahl der Tage mit 30 multipliziert. |
-i, --include=LISTE | Spezifiziert, welche Dateien untersucht werden sollen; dies kann
auch eine Liste von Dateiein sein, wobei jeder Eintrag mit dem Trennzeichen
des Betriebssystem (der Doppelpunkt (:) für UNICES; der Strichpunkt
(;) für Windows) getrennt wird.
Die Dateiangaben können die UNIX-typischen Platzhaltern enthalten. Details finden sie weiter oben im Dokument. |
-x, --exclude=LISTE | Spezifiziert, welche Dateien nicht untersucht werden sollen; dies kann
auch eine Liste von Dateiein sein, wobei jeder Eintrag mit dem Trennzeichen
des Betriebssystem (der Doppelpunkt (:) für UNICES; der Strichpunk
(;) für Windows) getrennt wird.
Die Dateiangaben können die UNIX-typischen Platzhaltern enthalten. Details finden sie weiter oben im Dokument. |
-I, --ini-file=FILE | Lies weitere Optionen aus der angegebenen Datei. Das Format des INI-Files ist später im Dokument beschrieben. |
-t, --threads=NR | Setzt die Nummer der Threads (Hintergrundprozesse) zum Untersuchen
der Dateien. Diese Nummer ist zusätzlich zum Haupt-Thread, der
nach den zu behandelnden Dateien sucht.
Diese Option ist nur vorhanden, wenn das Programm mit
|
-S, --sort | Die gefundenen Dateien werden alphabetisch sortiert. |
-M, --mode=[MODUS] | Spezifiziert, wie der Typ der Dateien ermittelt
wird. Mögliche Werte sind:
|
-V, --version | Ausgabe der Versionsinformation und beenden. |
-h, -?, --help | Ausgeben der Hilfe und beenden. |
Die Optionen append und app-file (bzw. äquivalent prepend und pre-file) können beliebig oft wiederholt werden. Der jeweilige Text wird den vorher angegeben hinzugefügt.
Plug-Ins sind kleine Erweiterungen (Zusatzmodule), durch die weitere Dokument-Typen unterstützt werden.
Realisiert werden sie als shared libraries (für Unix) bzw DLLs (für Windows), die zwei Funktionen enthalten müssen:
Ein Beispiel befindet sich in src/Plugins/Text.cpp.
Das INI-Files hat folgendes Format (Einträge können fehlen):
[Output] Format=FORMAT Title=TEXT TextForNewFiles=TEXT MaxAgeForNewFiles=TAGE DirSeparatorText=TEXT Style=STIL SortFiles=1 [FileType] Mode=Content [Handler] <Extension1>=<Library1> <Extension2>=<Library2> <ExtensionN>=<LibraryN>
Es werden die gleichen Ersetzungen wie für die Optionen durchgeführt!
Zum Übersetzen der Sourcen benötigt man meine libYGP library. Diese ist ebenfalls als Sourceforge-Projekt vorhanden. Siehe http://libymp.sourceforge.net für Details.
Bei installierter zlib können auch Office Open XML (OOXML) Dokumente ausgewertet werden.
Die bereits übersetzte Windows-Anwendung hat keine Abhängigkeiten. Da sie mit MinGW cross-compiled ist, verhält sie sich jedoch wie eine Unix-Anwendung (d.h. Verzeichnisse werden mit Schrägstrichen und nicht mit Rückstrichen getrennt). Für diese Windows-Version gibt es keinen Support!
Von der Sourceforge download area.
Sende etwaige Kommentare |