• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Informationen aus Text (Code) auslesen und in Excel importieren -> Pivottabelle

Psycho Mantis

Möchtegern-Universums-Zar

Registriert
14 Juli 2013
Beiträge
2.469
Ort
B / GC
Hallo Liebe Gemeinde,

ich habe auf Arbeit ein Problem das mich ziemlich nervt. Ich muss für diverse Veranstaltungsorte die Pläne erfassen. Ein Platz wird von einem anderen durch folgende 4 Kriterien unterschieden.
1. Level -> die übergeordnete Ebene. Z.B. Tribüne, Oberrang, Unterrang, Parkett usw...
2.Section -> der untergeordnete Berech. Z.B. Block 1, Block 2, Loge, Links, Rechts usw...
3.Seatnumber -> die eindeutige Platznummer des Sitzes. 1,2,3 usw..
4.Rownumber -> die Reihennummer in der der Platz steht. Mehrere Plätze können die gleiche Reihennummer haben, Bsp. von 1 - 10

Jeder Platz kommt also so genau einmal vor.

Mein Problem ist jetzt, das mein Programm keine Liste ausgibt, die mir das ganze schön als CSV für Excel bereit stellt. Ich muss per Mouseover jeden Platz prüfen, da werden mir dann Infos eingeblendet. manchmal wollen Kunden auch eine Liste von mir haben, damit sie mit ihren vergleichen können - und die Liste kann ich dann nicht liefern.
Ich hab also heute früh mal versucht die Datei in einem Texteditor zu öffnen -denn irgendwie müssen die Daten ja da drin stehen. Und ich bin auch fündig geworden.

[src=text]<?xml version="1.0" encoding="UTF-8"?>
<mfxseatmap v="1"><physical v="1"><cinfo v="1" ao="1381142941651" cro="1381137889912" aby="Mfx.DE.********" cby="Mfx.********"><cdesc/></cinfo><phpr v="1"><levl v="1"><locs v="1"><loc v="1" c="de_DE"/><loc v="1" c="en_US"/></locs><le v="1" c="I"><txt v="1" t="Innenraum" loc="de_DE"/><txt v="1" t="Inner Area" loc="en_US"/></le><le v="1" c="T"><txt v="1" t="Tribüne" loc="de_DE"/><txt v="1" t="Tribune" loc="en_US"/></le></levl><secl v="1"><locs v="1"><loc v="1" c="de_DE"/><loc v="1" c="en_US"/></locs><se v="1" c="N"><txt v="1" t="Nord" loc="de_DE"/><txt v="1" t="North" loc="en_US"/></se><se v="1" c="S"><txt v="1" t="Stehplatz" loc="de_DE"/><txt v="1" t="Standing" loc="en_US"/></se></secl></phpr><pgs v="1"><np v="2" nr="1" wrn="true" nm="Tribüne Nord"><sgrps v="1"/><sg v="1"><s v="1" sn="1" rn="1" le="T" gy="17.5" gx="6.5" se="N" y="0" x="0"/><s v="1" sn="2" rn="1" le="T" gy="17.5" gx="19.5" se="N" y="0" x="1"/><s v="1" sn="3" rn="1" le="T" gy="17.5" gx="32.5" se="N" y="0" x="2"/><s v="1" sn="4" rn="1" le="T" gy="17.5" gx="45.5" se="N" y="0" x="3"/><s v="1" sn="5" rn="1" le="T" gy="17.5" gx="58.5" se="N" y="0" x="4"/><s v="1" sn="1" rn="2" le="T" gy="32.5" gx="6.5" se="N" y="1" x="0"/><s v="1" sn="2" rn="2" le="T" gy="32.5" gx="19.5" se="N" y="1" x="1"/><s v="1" sn="3" rn="2" le="T" gy="32.5" gx="32.5" se="N" y="1" x="2"/><s v="1" sn="4" rn="2" le="T" gy="32.5" gx="45.5" se="N" y="1" x="3"/><s v="1" sn="5" rn="2" le="T" gy="32.5" gx="58.5" se="N" y="1" x="4"/></sg></np><np v="2" nr="2" wrn="true" nm="Innenraum"><sgrps v="1"/><sg v="1"><s v="1" sn="1" rn="1" le="I" gy="17.5" gx="6.5" se="S" y="0" x="0"/><s v="1" sn="2" rn="1" le="I" gy="17.5" gx="19.5" se="S" y="0" x="1"/><s v="1" sn="3" rn="1" le="I" gy="17.5" gx="32.5" se="S" y="0" x="2"/><s v="1" sn="4" rn="1" le="I" gy="17.5" gx="45.5" se="S" y="0" x="3"/><s v="1" sn="1" rn="2" le="I" gy="32.5" gx="6.5" se="S" y="1" x="0"/><s v="1" sn="2" rn="2" le="I" gy="32.5" gx="19.5" se="S" y="1" x="1"/><s v="1" sn="3" rn="2" le="I" gy="32.5" gx="32.5" se="S" y="1" x="2"/><s v="1" sn="4" rn="2" le="I" gy="32.5" gx="45.5" se="S" y="1" x="3"/></sg></np></pgs><gfxs v="1"><venuegfx v="1"><gfx v="1"><cop v="1" pnr="1"><path dc="-16777216" v="1" a="0" p="M 135 145,L 230 145,L 230 295,L 135 295,L 135 145,Z" sw="1" fc="-5592406"/></cop><cop v="1" pnr="2"><path dc="-16777216" v="1" a="0" p="M 455 140,L 595 140,L 595 320,L 455 320,L 455 140,Z" sw="1" fc="-5592406"/></cop></gfx></venuegfx><np v="1" nr="1"><gfx v="1"/></np><np v="1" nr="2"><gfx v="1"/></np></gfxs></physical><stable v="1"><stpr v="1"><sol v="1"><so id="2" v="1" nr="1" pr="1" y="20" x="31"/><so id="1" v="1" nr="2" pr="2" y="20" x="31"/></sol><ftl v="1"/><pcl v="1"><prct v="1" nr="1" tc="-1" c="PK1" lt="1" fc="-16777088"><mltcs v="1"><mltc t="Preiskategorie 1" lc="de_DE"/><mltc t="Price Category 1" lc="en_US"/></mltcs></prct><prct v="1" nr="2" tc="-1" c="PK2" lt="2" fc="-5963776"><mltcs v="1"><mltc t="Preiskategorie 2" lc="de_DE"/><mltc t="Price Category 2" lc="en_US"/></mltcs></prct></pcl></stpr><pgs v="1"><np v="1" nr="1"><s v="1" so="2" pc="1" y="0" x="0"/><s v="1" so="2" pc="1" y="0" x="1"/><s v="1" so="2" pc="1" y="0" x="2"/><s v="1" so="2" pc="1" y="0" x="3"/><s v="1" so="2" pc="1" y="0" x="4"/><s v="1" so="2" pc="1" y="1" x="0"/><s v="1" so="2" pc="1" y="1" x="1"/><s v="1" so="2" pc="1" y="1" x="2"/><s v="1" so="2" pc="1" y="1" x="3"/><s v="1" so="2" pc="1" y="1" x="4"/></np><np v="1" nr="2"><s v="1" so="1" pc="2" y="0" x="0"/><s v="1" so="1" pc="2" y="0" x="1"/><s v="1" so="1" pc="2" y="0" x="2"/><s v="1" so="1" pc="2" y="0" x="3"/><s v="1" so="1" pc="2" y="1" x="0"/><s v="1" so="1" pc="2" y="1" x="1"/><s v="1" so="1" pc="2" y="1" x="2"/><s v="1" so="1" pc="2" y="1" x="3"/></np></pgs></stable></mfxseatmap>[/src]


Das nützt mir so noch gar nichts, bzw. Excel kann damit nichts anfangen, da alles in einer Zeile steht. Ich hab das auch erst mal gar nicht kapiert - vor allem weil es sich hierbei nur um 18 Plätze handelt. Normalerweise hab ich Stadien etc, mit 30k Plätzen
Also habe ich mir das ganze mal von Hand nach jedem > umgebrochen, und so aufgedröselt, dass ich ein System erkennen konnte.
In der Grafik sieht man nun folgendes:

Für die Level und Sections werden Daten erfasst. Einmal der Code "c" - welcher bis zu 4 Zeichen lang sein kann, und die Beschreibung als Text "t" die bis zu 28 Zeichen lang sein kann.
Dann werden die Sitznummern SN (bis zu 5 Stellen)und die Reihennummern RN (theoretisch auch 5, aber mehr als 3stellig ist mir nicht bekannt) erfasst und gelistet. Außerdem steht in jeder Zeile noch der Code "c" jeweils für Level und Section.
Die grau markierten Sachen sind irrelevant für meine Liste. (alles was wie Koordinaten aussieht, und die englischen Beschreibungstexte)

Was ich jetzt also hinkriegen muss:
den Text automatisiert nach jedem ">" umbrechen zu lassen, damit Excel das als Zeilen erkennt
die relevanten Zeilen extrahieren, das graue filtern/bzw löschen
die Daten in Excel importieren, und eine Pivottabelle daraus generieren.

Mein Problem ist jetzt - ich habe von Programmierung, Scripten, Makros etc keine Ahnung. Ich bin schon stolz auf mich das ich die Datei einigermaßen interpretieren konnte :D
Ich brauche jetzt also hilfe, wie ich das Projekt am besten angehen kann, bzw was ich tun muss.

Folgende Überlegung habe ich dabei:
kann man das irgendwie automatisieren, dass die Datei als Textdokument geöffnet wird, und auch als solches gespeichert. (Im gleichen Ordner wie die Originaldatei)?
ginge das auch mit mehreren Dateien in einem Verzeichnis/Unterverzeichnis?
cool wäre das ganze als kleines Programm, da ich das meinen Kollegen geben könnte, die würden sich dann auch n haufen zeit sparen. Ich stelle mir das als simplen Konverter vor. Datei hinzufügen - Konvertieren drücken - txt wird gespeichert, Originaldatei bleibt unangetastet
Excel braucht dann sicherlich ein Makro oder eine Aktion. das die Textdatei dann immer nach den gleichen Mustern importiert und formatiert, bzw eine Pivottabelle daraus generiert.
Excel sollte dann aus der Datei rauslesen welcher Beschreibungstext zu welchem Code gehört, und den Code dann gleich durch den Beschreibungstext ersetzen. Also aus le="T" wird dann "Tribüne" usw....
Bei den Plätzen wärs dann gut, wenn ich eine "von bis"auflistung hätte, und ein weiteres Feld die Anzahl ausgibt. also zb auch mal von 5 bis 14 = 10 Plätze gesamt.

Klingt für mich erst mal unlösbar :D aber die Programmierer hier haben doch bestimmt eine Idee wie man das elegant lösen kann. Was muss ich tun?
Ich verstehe z.b. nicht wo die ganzen "v1" herkommen. Ein paar sind für mich nachvollziehbar, andere nicht. "v2" sagt mir gar nichts, ist aber trotzdem vergeben. nr=1 und nr=2 ist klar. jeder "Block wird auf einer eigenen Seite angelegt, und die sind durchnummeriert. Aber den Ausdruck np v="2" verstehe ich nicht, da er auch auf Seite 1 vorkommt.
Vielleicht erschließt sich ja jemandem von euch die Logik

Danke im Voraus.

xSpdQMa.png
 

Asseon

Draic Kin

Registriert
14 Juli 2013
Beiträge
10.353
Ort
Arcadia
also es handelt sich dabei um das Format xml

klar könnte man n Programm schreiben um das nach jeden ">" abzubrechen.
Aber das halte ich für wenig sinnvoll, sinnvoller wäre wohl das direkt nah csv umzuwandeln. wobei hier glaube ich noch die eine oder andere frage auftauchen dürfte.

ersteres ist ziemlich trivial letzteres erscheint mir derzeit auch nicht wirklich schwer aber dürfte wohl ein wenig länger dauern. unter anderem da ich nur selten mit xml arbeite.

so was wäre dir lieber?
 

Psycho Mantis

Möchtegern-Universums-Zar

Registriert
14 Juli 2013
Beiträge
2.469
Ort
B / GC
  • Thread Starter Thread Starter
  • #3
Hallo, danke für deine Antwort.

Also welche Schritte nötig oder Sinnvoll wären um Daten weiterverarbeiten zu können, weiß ich momentan noch gar nicht - bzw was alles geht.
Im Prinzip möchte ich aus dieser Zeile:
<s v="1" sn="1" rn="1" le="T" gy="17.5" gx="6.5" se="N" y="0" x="0"/>

sowas machen:

Tribüne | Nord | Reihe 1 | Platz 1
 

Asseon

Draic Kin

Registriert
14 Juli 2013
Beiträge
10.353
Ort
Arcadia
also soll einfach jeder platz mit allen relevanten Positionsmerkmalen in einer Zeile untergebracht werden, wobei die einzelnen Merkmale jeweils eine eigenen spalte sind.
Hab ich das soweit richtig verstanden?
 

Psycho Mantis

Möchtegern-Universums-Zar

Registriert
14 Juli 2013
Beiträge
2.469
Ort
B / GC
  • Thread Starter Thread Starter
  • #5
Genau. Am ende soll daraus eine Tabelle werden die etwa so aussieht:


LevelSectionReihePlatz
TribüneNord11
TribüneNord12
TribüneNord13
InnenraumStehplatz21
InnenraumStehplatz22


Kann man das ganze auch so gestalten, das man sagt - Mach eine Zeile pro Stuhlreihe, und trag den ersten und den letzen Platz ein?
Dann würde man sich in einem 30k Stadion eine Menge Zeilen sparen. Zb ein Block mit 30 Reihen und je 20 Plätzen, könnte dann pro Reihe in einer Zeile Stehen, statt 20 Zeilen pro Reihe.
 

Psycho Mantis

Möchtegern-Universums-Zar

Registriert
14 Juli 2013
Beiträge
2.469
Ort
B / GC
  • Thread Starter Thread Starter
  • #7
Das wäre natürlich der Hammer. Könntest du mir dann auch erklären was du warum machst? So in Groben Zügen und die wichtigsten Vokabeln - ich beschäftige mich dann selbst autodidaktisch detailliert damit um das zu verstehen/lernen. :T
 

Psycho Mantis

Möchtegern-Universums-Zar

Registriert
14 Juli 2013
Beiträge
2.469
Ort
B / GC
  • Thread Starter Thread Starter
  • #9
Brauchst du eigentlich mal eine Originaldatei von mir?
 

Asseon

Draic Kin

Registriert
14 Juli 2013
Beiträge
10.353
Ort
Arcadia
ach verdammt ja klar brauch ich die wollte ich eig gestern schon geschrieben haben

das kommt davon wenn man so verplant ist wie ich -.-
 

Psycho Mantis

Möchtegern-Universums-Zar

Registriert
14 Juli 2013
Beiträge
2.469
Ort
B / GC
  • Thread Starter Thread Starter
  • #11
kurzes Feedbackt von mir: Asseon hat mir ein wunderbares Tool programmiert, mit dem ich an alla meine benötigten Informationen auf Knopfdruck komme, ohne vorher die Datei in einem anderem Programm zu öffnen und langwierig die Informationen einzeln aus zu werten.
Vielen Dank dafür. Läuft prima.
 

accC

gesperrt

Registriert
14 Juli 2013
Beiträge
5.250
Für die meisten Programmiersprachen gibt es libs zum Parsen von xml-files.


Für PHP gibt es bspw. SimpleXML, JavaScript kann direkt auf XML arbeiten (siehe XML Parser) etc.

Da XML Dokumente gewöhnlich recht simpel aufgebaut sind, sollte sich das Dokument recht gut verarbeiten und dann in Form einer csv wieder aufbereiten lassen.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.754
Ort
in der Zukunft
vielleicht könnte man ja noch den Quellcode + das Programm hier zur Verfügung stellen - ich weiß ich mag das auch ab und an nicht wenn man den Code nicht so *schön* geschrieben hat ;D
Aber wäre eine Idee wenn andere was daran lernen möchten, oder um auch selber was zu lernen in dem andere das ganze kommentieren...
 

Psycho Mantis

Möchtegern-Universums-Zar

Registriert
14 Juli 2013
Beiträge
2.469
Ort
B / GC
  • Thread Starter Thread Starter
  • #14
ping mal asseon an, ob er das machen würde. das programm selber nützt niemandem etwas, da es speziell für mein dateiformat geschrieben wurde. es handelt sich bei mir um eigens programmierte inhouse software, die nur bei uns im unternehmen eingesetzt wird.
 

Asseon

Draic Kin

Registriert
14 Juli 2013
Beiträge
10.353
Ort
Arcadia
so hier einmal der code.
ist nicht die aktuellste Version aber deckt den den hier erfragten Funktionsumfang ab ;)

der relevante code ist in der Datei "converter.py" der Rest ist Design\GUI Code

oh und wer Rechtschreibfehler findet, besonders in den docstrings, darf diese gerne behalten :p
 

Anhänge

  • stmp2csv.tar.gz
    4 KB · Aufrufe: 264
Oben