bestimmte Daten einer xml in Calc importieren

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: bestimmte Daten einer xml in Calc importieren

Re: bestimmte Daten einer xml in Calc importieren

von nel-son » Sa, 25.06.2011 10:32

OK, jetzt gehts. Ich danke dir nochmal ausdrücklich für deine Mühen.

Re: bestimmte Daten einer xml in Calc importieren

von Karolus » Mi, 22.06.2011 21:23

Hallo
Dann ändere mal in der "tags-zeile":
tags = [ "ChapterTime", "Start", "End", "(\d{2}:\d{2}:\d{2}\.\d{9})" ]
den hinteren Teil:
tags = [ "ChapterTime", "Start", "End", "(\d{2}:\d{2}:\d{2}\.\d{3,9})" ]
Gruß Karo

Re: bestimmte Daten einer xml in Calc importieren

von nel-son » Mi, 22.06.2011 21:13

Karolus hat geschrieben:Ich kann hier auch nicht mehr machen als eine dummy.xml nach deinen Angaben zusammenbauen und mit der testen...hier funktionierts :?
Schon klar, war auch kein Vorwurf.

Ich kanns gerade nicht testen, es könnte aber an den Nachkommastellen liegen. Punkte sind da definitiv drin, keine Kommas. Da man bei 25 Bildern pro Sekunde nur 2 Nachkommastellen braucht um ein spezielles Bld zu lokalisieren, könnte es sein, dass manche Programme weniger Stellen nutzen. Ich erinnere mich dunkel, dass manche Programme beim extrahieren 3 Stellen geschrieben haben (außer es wurden tatsächlich mehr benötigt).

Ich checks mal ab wenn ich wieder am Rechner sitze.

Re: bestimmte Daten einer xml in Calc importieren

von Karolus » So, 19.06.2011 17:58

Hallo
Die Fehlermeldung besagt letzendlich das Suchmuster..., (nach deinen Angaben :

Code: Alles auswählen

<ChapterTimeStart>00:00:00.000000000</ChapterTimeStart> ....
<ChapterTimeEnd>00:02:01.121000000</ChapterTimeEnd>
...wird in deiner Datei nicht gefunden.
Ich kann hier auch nicht mehr machen als eine dummy.xml nach deinen Angaben zusammenbauen und mit der testen...hier funktionierts :?
was ist Bei deinen Zeitstempeln anders ?
- hast du konkret 9 Kommastellen hinter den Sekunden ?
- hast du evtl. Komma statt Punkt als Dezimaltrenner. ?
_ ?
Gruß Karo

Re: bestimmte Daten einer xml in Calc importieren

von nel-son » So, 19.06.2011 10:33

Alle Skripte wurden unter Markos aufgeführt und waren ausführbar, aber bis auf 1x hat keines funktioniert. Ichhab dir nochmal die Fehlermeldung hochgeladen. Auch der Pfad passt.

Wie gesagt, ich gebs auf. Ich danke dir trotzdem für deine Mühen.
Dateianhänge
ooo.jpg
ooo.jpg (116.9 KiB) 990 mal betrachtet

Re: bestimmte Daten einer xml in Calc importieren

von Karolus » So, 12.06.2011 19:14

Hallo
Wie müsste denn der Pfad korrekt aufgebaut sein, wenn eine xml unter D:\neu\neu.xml liegt?
Einfach:
pfad = "D:///neu/neu.xml"

Wenn bei dir das Script aufrufbar ist ( aus einem Calcdokument ! ) ... kommt wenigstens eine Fehlermeldung ...welche?

Gruß Karo

Re: bestimmte Daten einer xml in Calc importieren

von nel-son » So, 12.06.2011 17:54

Ich gebs auf, geht einfach nicht. Ich hab den Pfad 100.000mal überprüft, de rist absolut i.O. Auch alles andere ist i.O. keine Fehler, Skript wird einfach nicht ausgeführt, obwohl es unter Makro zu finden ist.

Wie müsste denn der Pfad korrekt aufgebaut sein, wenn eine xml unter D:\neu\neu.xml liegt? Ich hab alles nur erdenklichen Varianten mit "///", "//", "/", "\\\", "\\" und so weiter versucht. Alle Skripte wurden angezeigt, funktionierten aber nicht. Hab ich verschiedene xml-Dateien versucht. Alles ohne Erfolg.

Re: bestimmte Daten einer xml in Calc importieren

von Karolus » Sa, 04.06.2011 20:41

Hallo
Backslash → \
Slash → /
3 Slash hinter dem Lauwerksbuchstaben sind kein Schreibfehler, zumindest hier hat das funktioniert.
Macht es einen Unterschied ob ich die *.py in D: entpacke, ändere, speichere und in den Ordner python kopiere oder ob ich das Archiv in Scripts kopiere und dort entpacke? Ich hab beides versucht.
Nein, macht im Prinzip keinen Unterschied, hinterher muss nur eine Ordnerstruktur ...Scripts → python → timecatcher.py existieren.
Du kannst das Script über "→ Extras → Makros → Makros verwalten → Python" finden und ausführen ?
Wenn ja, ist der Teil doch in Ordnung - Scripts mit Syntaxfehlern werden in der Regel gar nicht zur Auswahl angeboten.
Bleiben eigentlich nur Probleme mit dem Pfad zur ...xml - da hat die erste Vesion aber auch schon mal funktioniert ?!

Gruß Karo

Re: bestimmte Daten einer xml in Calc importieren

von nel-son » Sa, 04.06.2011 18:24

Sorry, geht nicht.

Was meist du denn mit Backslash? Ich habs mit / und \ versucht, auch mit mehreren davon hinter dem Buchstaben (du hast da 3 gesetzt, ist das ein Schreibfehler?).

Macht es einen Unterschied ob ich die *.py in D: entpacke, ändere, speichere und in den Ordner python kopiere oder ob ich das Archiv in Scripts kopiere und dort entpacke? Ich hab beides versucht.

Re: bestimmte Daten einer xml in Calc importieren

von Karolus » Sa, 04.06.2011 16:55

Hallo
Ich hab das jetzt nochmal auf Windows getestet, und es funktioniert auch dort mit Pfadangaben in der Form:
r"C:///dein/pfad/zur/datei.xml"
Backslashes als Pfadtrenner sind offenbar nicht erforderlich!
Ich häng dir nochmal den gezipten Python-ordner an.

Gruß Karo
Dateianhänge
python.zip
(773 Bytes) 70-mal heruntergeladen

Re: bestimmte Daten einer xml in Calc importieren

von nel-son » Sa, 04.06.2011 14:12

Jetzt steh ich komplett auf dem Schlauch, jetzt geht gar nichts mehr weder mit dem ersten noch mit dem Zweiten Skript. Ich hab das vielleicht ein Dutzend mal versucht, mit verschiedenen Dateien, alle Möglichen Skript- und Pfad-Kombinationen. Hab alles x-mal auf Schreibfehler überprüft. Geht einfach nicht mehr. 1x hab ich eine xml direkt aus "D:" importieren können, dann nicht mehr. Es komt immer wieder die oben genannte Fehlermeldung.

Re: bestimmte Daten einer xml in Calc importieren

von Karolus » Mi, 01.06.2011 09:32

Hallo
Ersetze den Inhalt von timecatcher.py durch:

Code: Alles auswählen

import uno
import re

context = XSCRIPTCONTEXT
pfad = r"/hier/steht/der/pfad/zu/deinem.xml"

def makeDataArray( olist):
    rowsize = len( olist ) -1
    colsize = len( olist[0] )-1
    oDoc= context.getDocument()
    oSheet = oDoc.Sheets.getByIndex(0)
    oRange = oSheet.getCellRangeByPosition(0, 0, colsize , rowsize)
    oRange.setFormulaArray( olist )

tags = [ "ChapterTime", "Start", "End", "(\d{2}:\d{2}:\d{2}\.\d{9})" ]
rex = re.compile( """<{0}{1}>{3}</{0}{1}>.*?<{0}{2}>{3}</{0}{2}>""".format(*tags),  re.S)

                 
def catchtimes( ):
    with open( pfad ) as timefile:
        alltext = timefile.read()
    timelist = [ elem.groups() for elem in rex.finditer( alltext )]
    makeDataArray( tuple(timelist))


g_exportedScripts = catchtimes, 
Mit dem 'r' vor der Pfadangabe dürfte es auch keine Probleme mit '\n' im Pfad geben.

Gruß Karo

Re: bestimmte Daten einer xml in Calc importieren

von nel-son » Di, 31.05.2011 17:16

Ich dachte das Benutzerverzeichnis ist direkt in OpenOffice angegeben, habs jetzt gefunden.

Kann man das Skript so anpassen, dass immer die Start und die Ende-Zeit nebeeinander stehen und die entsprechend nächsten Start- udn Endezeiten eine Spalte tiefer? Also A1+B1, dann A2+B2, dann A3+A3.

Ich hatte Probleme beim importieren, wenn im Pfad Ordner drin waren. "d:\neu\name.xml" hat nicht funktioniert, aber "d:\name.xml" klappte. Hab mal einen Screenshot der Fehlermeldung angehangen.
Dateianhänge
skript.jpg
skript.jpg (101.98 KiB) 2544 mal betrachtet

Re: bestimmte Daten einer xml in Calc importieren

von Karolus » Mo, 30.05.2011 17:35

Hallo
Es gibt fünf Pfade die bis zum zweituntersten Verzeichnis gleich sind, nimm einen von denen gehe eine Verzeichnisebene nach oben und such den Ordner 'Scripts'.

Gruß Karo

Re: bestimmte Daten einer xml in Calc importieren

von nel-son » Mo, 30.05.2011 16:59

Weder finde ich unter dem Pfad etwas Richtung OpenOffice, noch wird mir unter Optionen ein Pfad zum Benutzerverzeichnis angezeigt. Ich sehe alles mögliche an Verzeichnissen (z. B. Arbeitsverzeichnis), aber kein Benutzerverzeichnis.

Ich habe keine portable drauf.

Nach oben