Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 17. Nov 2018 4:22

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Leseproblem bei ods File
BeitragVerfasst: 27. Okt 2005 6:51 
Ich habe folgendes Problem vielleicht hat jemand eine Lösung fü mich
http://de.openoffice.info/viewtopic.php?t=4600


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 27. Okt 2005 8:49 
Offline
prolinux-forum-admin
Benutzeravatar

Registriert: 14. Jan 2000 15:37
Beiträge: 699
Wohnort: Jülich
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..."


Nach oben
   
 Betreff des Beitrags: Danke für den Tipp aber
BeitragVerfasst: 27. Okt 2005 11:16 
Danke für den Tipp aber weist du wie ich aus den content.xml dezimalzahlen heraus bekomme.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 27. Okt 2005 15:14 
Offline
prolinux-forum-admin
Benutzeravatar

Registriert: 14. Jan 2000 15:37
Beiträge: 699
Wohnort: Jülich
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 :-). 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..."


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 28. Okt 2005 11:33 
Offline
prolinux-forum-admin
Benutzeravatar

Registriert: 14. Jan 2000 15:37
Beiträge: 699
Wohnort: Jülich
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:
  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&#58;fo="urn&#58;oasis&#58;names&#58;tc&#58;opendocument&#58;xmlns&#58;xsl-fo-compatible&#58;1.0"/ &#123;
            zeile = $0
            neuezeile = gensub &#40;/ xmlns&#58;fo="urn&#58;oasis&#58;names&#58;tc&#58;opendocument&#58;xmlns&#58;xsl-fo-compatible&#58;1.0"/,"",2,zeile&#41;
            while &#40;zeile != neuezeile&#41; &#123;
                    zeile = neuezeile
                    neuezeile = gensub &#40;/ xmlns&#58;fo="urn&#58;oasis&#58;names&#58;tc&#58;opendocument&#58;xmlns&#58;xsl-fo-compatible&#58;1.0"/,"",2,zeile&#41;
            &#125;
            print zeile
            next
    &#125;
    &#123;print&#125;' | \
    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! :-)

<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..."


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 28. Okt 2005 12:33 
Offline

Registriert: 17. Sep 2004 12:49
Beiträge: 122
Wohnort: Bochum
......Respekt.......
Von Jochens Antworten bzw. Lösungen bin ich immer wieder beeindruckt.....Super....großes Lob....... :D

_________________
Viele Grüße von Clio


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de