Psycho Mantis
Möchtegern-Universums-Zar
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
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 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.
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
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 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.