Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Leseproblem bei ods File

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Software
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
muelleru
Gast





BeitragVerfasst am: 27. Okt 2005 6:51   Titel: Leseproblem bei ods File

Ich habe folgendes Problem vielleicht hat jemand eine Lösung fü mich
http://de.openoffice.info/viewtopic.php?t=4600
 

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 27. Okt 2005 8:49   Titel:

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
Code:
mkdir rettung; cd rettung; unzip ../datei.sxw
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
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

muelleru
Gast





BeitragVerfasst am: 27. Okt 2005 11:16   Titel: Danke für den Tipp aber

Danke für den Tipp aber weist du wie ich aus den content.xml dezimalzahlen heraus bekomme.
 

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 27. Okt 2005 15:14   Titel:

Hi,

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?
Im ersteren Falle müsste es jeder x-beliebige Editor tun, im zweiten eigentlich auch Smile. Wenn es sich um eine grosse, nur schwer von Hand zu bearbeitende Datenmenge handelt, müsstest Du schon mal einen Auszug posten, dann könnte man vielleicht ein Skriptchen zum extrahieren basteln. Da das alles XML ist, wäre vielleicht auch was Interessantes mit einem XML-Parser machbar, aber in dem Bereich kenne ich mich leider nicht aus.

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..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 28. Okt 2005 11:33   Titel:

So, muelleru hat mir weitere Infos zukommen lassen. Das Problem ist gelöst! Smile

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:

  1. Die havarierte Datei in einem Arbeitsverzeichnis entpacken.
    Code:
    mkdir rettung
    cd rettung
    unzip ../kaputt.ods


  2. Jetzt liegen die Dateien content.xml und styles.xml im Verzeichnis rettung vor. Um sie zu reparieren, verwendet man folgendes Skript:
    Code:
    #!/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
    Dieses Skript speichert man unter dem Namen repair-ods.sh und macht es aufrufbar und auffindbar; die Aufrufe lauten dann
    Code:
    repair-ods.sh content.xml
    repair-ods.sh styles.xml
    Damit erzeugt man die Dateien content.xml.new und styles.xml.new.

  3. 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:
    mv content.xml.new content.xml
    mv styles.xml.new styles.xml


  4. Schon fast fertig. Das reparierte Dokument muss jetzt wieder zusammengezippt werden.
    Code:
    zip -r - . > ../repariert.ods

Hinterher das Aufräumen nicht vergessen! Smile

<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..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Clio



Anmeldungsdatum: 17.09.2004
Beiträge: 122
Wohnort: Bochum

BeitragVerfasst am: 28. Okt 2005 12:33   Titel:

......Respekt.......
Von Jochens Antworten bzw. Lösungen bin ich immer wieder beeindruckt.....Super....großes Lob....... Very Happy
_________________
Viele Grüße von Clio
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Software Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy