Ich habe folgendes Problem vielleicht hat jemand eine Lösung fü mich
http://de.openoffice.info/viewtopic.php?t=4600
Leseproblem bei ods File
Tscha... Wenn alle Stricke reissen, kannst Du immer noch die Datei entzippen und aus dem XML alle wichtigen Informationen als Text entnehmen. Eingebundene Pics sind ebenfalls im Archiv enthalten. Ohne Arbeit geht es dann wohl nicht ab, aber vielleicht kann man die meisten Daten noch retten. Ein legt alle Dateien im Verzeichnis "rettung" ab. Dort kannst Du Dir die content-xml dann mal näher anschauen. Vielleicht reicht es ja, dort eine Element/Attribut zu entfernen...?
Jochen
Code: Select all
mkdir rettung; cd rettung; unzip ../datei.sxw
Jochen
Die grösste Lüge der EDV? "Mal eben..."
Danke für den Tipp aber
Danke für den Tipp aber weist du wie ich aus den content.xml dezimalzahlen heraus bekomme.
Hi,
die Frage habe ich nicht ganz verstanden. Möchtest Du
Wenn Du die content.xml geändert hast, sollte ein Zusammenpacken der Dateien mittels zip wieder ein .sxw-Dokument erzeigen - denke ich.
Jochen
die Frage habe ich nicht ganz verstanden. Möchtest Du
- in der Datei vorkommende Dezimalzahlen löschen, weil sie OOo.org in der aktuellen Version scheinbar nicht verarbeiten kann, oder
- in der Datei vorkommende Zahlen extrahieren, damit Du sie in einem neuen Dokument mittels Copy'n'Paste (oder so) übernehmen kannst?
Wenn Du die content.xml geändert hast, sollte ein Zusammenpacken der Dateien mittels zip wieder ein .sxw-Dokument erzeigen - denke ich.
Jochen
Die grösste Lüge der EDV? "Mal eben..."
So, muelleru hat mir weitere Infos zukommen lassen. Das Problem ist gelöst!
Ursache: Die alte Version hat fälschlicherweise das Attribut mit Wert xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" in manchen Tags mehrfach gesetzt. Das betrifft sowohl die Datei content.xml als auch die styles.xml, die beide in der .ods-Datei stecken, die wiederum nichts weiter als ein Zip-Archiv ist.
Lösung: Die überflüssigen Attribute aus den beiden Dateien entfernen. Dazu geht wie folgt vor:
<EDIT>Tipp: Übernehmt das Skript/die Kommandos mittels Copy'n'Paste, ansonsten dürfte mit hoher Wahrscheinlichkeit irgendwas schiefgehen...
Die Lösung ist recht linux-spezifisch; auch auf Solaris könnte es Probleme geben, wenn der freundliche Admin nicht den gawk installiert hat. Der Standard-awk kennt m.E. die Funktion gensub nicht.
Windows-Anwender mit diesem Problem können diese Lösung entweder zum Anlass nehmen, eine KNOPPIX auszuprobieren oder einen freundlichen Linux-User in der näheren Umgebung um Hilfe bitten.</EDIT>
Viel Erfolg beim Reparieren!
Jochen
Ursache: Die alte Version hat fälschlicherweise das Attribut mit Wert xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" in manchen Tags mehrfach gesetzt. Das betrifft sowohl die Datei content.xml als auch die styles.xml, die beide in der .ods-Datei stecken, die wiederum nichts weiter als ein Zip-Archiv ist.
Lösung: Die überflüssigen Attribute aus den beiden Dateien entfernen. Dazu geht wie folgt vor:
- Die havarierte Datei in einem Arbeitsverzeichnis entpacken.
Code: Select all
mkdir rettung cd rettung unzip ../kaputt.ods
- Jetzt liegen die Dateien content.xml und styles.xml im Verzeichnis rettung vor. Um sie zu reparieren, verwendet man folgendes Skript:Dieses Skript speichert man unter dem Namen repair-ods.sh und macht es aufrufbar und auffindbar; die Aufrufe lauten dann
Code: Select all
#!/bin/bash # Skript: repair-ods.sh sed 's/>/&\n/g' <$1 | \ gawk ' /xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"/ { zeile = $0 neuezeile = gensub (/ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"/,"",2,zeile) while (zeile != neuezeile) { zeile = neuezeile neuezeile = gensub (/ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"/,"",2,zeile) } print zeile next } {print}' | \ tr -d '\012' | \ sed 's/>/&\n/1' > $1.new
Damit erzeugt man die Dateien content.xml.new und styles.xml.new.Code: Select all
repair-ods.sh content.xml repair-ods.sh styles.xml
- Vorsichtige Naturen kopieren die Original-Dateien zur Seite (aber sie sind ja notfalls noch im Archiv). Danach überschreibt man die alten Dateien mit ihren reparierten Gegenstücken:
Code: Select all
mv content.xml.new content.xml mv styles.xml.new styles.xml
- Schon fast fertig. Das reparierte Dokument muss jetzt wieder zusammengezippt werden.
Code: Select all
zip -r - . > ../repariert.ods
<EDIT>Tipp: Übernehmt das Skript/die Kommandos mittels Copy'n'Paste, ansonsten dürfte mit hoher Wahrscheinlichkeit irgendwas schiefgehen...
Die Lösung ist recht linux-spezifisch; auch auf Solaris könnte es Probleme geben, wenn der freundliche Admin nicht den gawk installiert hat. Der Standard-awk kennt m.E. die Funktion gensub nicht.
Windows-Anwender mit diesem Problem können diese Lösung entweder zum Anlass nehmen, eine KNOPPIX auszuprobieren oder einen freundlichen Linux-User in der näheren Umgebung um Hilfe bitten.</EDIT>
Viel Erfolg beim Reparieren!
Jochen
Die grösste Lüge der EDV? "Mal eben..."