Daten aus einer XML-Datei auslesen und auswerten

  • Hallo Leute,

    hier erstmal der XML-Code

    Meine Aufgabe ist es nun, die Toner-Daten auszulesen. Also sprich: Die Daten der Toner so auswerten, dass ich ausrechnen kann, welcher Tonner unter 10% Rest liegt und mir dieses ausgeben lassen.
    Ich muss gestehen, dass ich überhaupt keine Ahnung von dem Programm habe. Daher wende ich mich an euch in der Hoffnung, dass ihr mir vielleicht helfen könnt :)

    Danke im Voraus ^^

  • Entschuldigung hehe :)
    Aber trotzdem schon mal vielen vielen Dank, dass du mir helfen möchtest :klatschen:

    Folgendes ist die Aufgabe
    Es muss bei jedem der Drucker geprüft werden, wie viel % eine Tonerkassette noch beinhaltet.

    Kurze Erklärung
    C,-M,-Y,- und K-Name: Erklärt sich ja eigentlich von selbst.
    C, -M,- und K-Level: Die sind die Seiten, die mit der jeweiligen Kassette noch gedruckt werden können.
    C,-M,-Y,- und K-Max: Dies ist die Anzahl der Seiten, die maximal gedruckt werden können.

    Ausgabe
    In der Ausgabe sollte der Name des jeweiligen Druckers, dessen Kassette unter 10% ist, stehen.
    Und natürlich die Kassette ausgeführt werden, dessen Rest noch bei 10% oder niedriger ist.

    Diese Ausgabe soll dann per E-Mail versendet werden. Es reicht aber völlig, wenn diese Ausgabe in eine .txt Datei geschrieben wird.

    Wenn du noch weitere Infos oder Angaben brauchst, melde dich bitte

    Gruß Escpae :)

  • Ich hatte da mal was per SNMP bei unseren HP's ausgelesen, sollte aber bei vielen identisch möglich sein.
    Vielleicht besteht ja Interesse....

    Dateien

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Ich hatte da mal was per SNMP bei unseren HP's ausgelesen, sollte aber bei vielen identisch möglich sein.
    Vielleicht besteht ja Interesse....

    Vielen Dank für die Antwort aber ich kann mit dem beiden Skripts leider nicht viel anfangen, da ich nicht weiß, wie ich die umbauen soll. Vielleicht könntest du ja ein Skript erstellen, dass mir bei der oben genannten Fragen helfen kann :P

  • In der Datei 'Tonerfüllstände.au3' kannst Du in Zeile 5 die Namen/IP's deiner Drucker eintragen. Das war es eigentlich. Dir UDF 'SNMP_UDF.au3' wird bei der Ausführung (oder beim späteren Kompilieren) automatisch mit geladen (Zeile 3).

    Wenn Du aus betrieblichen Gründen die XML nutzen musst/willst, bleibt Dir nur das 'zerpflücken' der XML mit StringInStr() oder StringBetween() über.

    Für den Mailversand, solltest Du mal nach InetSmtpMailAttach() suchen ! Mit der Funktion senden wir unsere Logfiles per Anhang an den Mailserver.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • In der Datei 'Tonerfüllstände.au3' kannst Du in Zeile 5 die Namen/IP's deiner Drucker eintragen. Das war es eigentlich. Dir UDF 'SNMP_UDF.au3' wird bei der Ausführung (oder beim späteren Kompilieren) automatisch mit geladen (Zeile 3).

    Wenn Du aus betrieblichen Gründen die XML nutzen musst/willst, bleibt Dir nur das 'zerpflücken' der XML mit StringInStr() oder StringBetween() über.

    Für den Mailversand, solltest Du mal nach InetSmtpMailAttach() suchen ! Mit der Funktion senden wir unsere Logfiles per Anhang an den Mailserver.

    Leider muss ich zum Auswerten die XML-Datei benutzen. Deswegen fragte ich, ob mir jemand freundlicherweise ein Skript dafür basteln könnte :)

  • Wenn Du es fertig geliefert haben willst, gehörts es aber nicht unter Hilfe, sondern in Unterforum 'Programmieranfragen' !

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Wenn Du es fertig geliefert haben willst, gehörts es aber nicht unter Hilfe, sondern in Unterforum 'Programmieranfragen' !

    Tut mir leid. Ich habe mich noch nicht im Detail in diesem Forum umgeschaut. Vielleicht kann man den Beitrag ja dorthin verschieben :)

    • Offizieller Beitrag

    Naja, so umfangreich ist das nicht. Aber damit Du auch noch zu tun hast, ohne Speicherfunktion:

  • Naja, so umfangreich ist das nicht. Aber damit Du auch noch zu tun hast, ohne Speicherfunktion:

    Das ist echt nett von dir. Ich kenne mich nur leider zu wenig mit dem Programm aus, um selber eine Speicherfunktion einbauen zu können. Kannst du nicht so lieb und nett sein und mir die noch mit einbauen :klatschen:
    Trotzdem aber vielen lieben Dank für deine Mühe :klatschen:

    • Offizieller Beitrag

    Naja, mit "_FileWriteFromArray" muss nur eine Zeile (ok, 2 mit dem include) mehr rein:

    Edit: Ist das Limit eigentlich bei allen Druckern gleich (so wie in dem Beispiel)?

  • Oh ok nur 2 Zeilen. Aber das sind ja schon wieder Funktionen, die ich auch nicht kenne :D
    Kann man die Ausgabe evtl. noch dort hingehend verändern, dass einfach nur als Text bzw. als Hinweis geschrieben wird " Toner X hat unter 10% Tinte"?
    Weil das, was letzen Endes von diesem Skript hier ausgegeben wird, soll dann automatisch per E-Mail versendet werden. Ich versuche das dann evtl. noch so umzubauen, dass die Ausgabe nicht in eine Textdatei erfolgt, sondern direkt als E-Mail verschickt wird.

    Falls du mit Limit die max. Anzahl der Seiten, die gedruckt werden können meinst, dann ja, die liegen alle bei 7500.

    Gruß Escpape

    • Offizieller Beitrag

    Ich habe das max. Limit jetzt doch noch mit ausgelesen (falls sich das mal ändert).
    Außerdem noch den Standort, weil das wohl auch interessant sein könnte.
    Und das Ganze mit etwas Text aufbereitet:

  • Wow! Danke!!

    Kannst du mir evtl. eine kleine Sache noch verändern?
    Kann man anstatt "Farbe: ...." das Modell der Tonerkassette angeben? Denn derjenige, muss die dann nicht manuell aufschreiben, sondern hat sie direkt dort stehen :)

    Also man könnte ja evtl einmal oben schreiben, dass folgende Tonerkassetten fast leer sind oder bzw. deren Füllung unter 10% liegt und dann die Tonerkassetten samt Modell aufführen :)

    Gruß Escape

    • Offizieller Beitrag

    So?

  • Mahlzeit!

    Um der heiligen Vielfalt Willen und weil ich schon angefangen hatte, hier eine etwas andere Herangehensweise.
    Funktioniert mit den gegebenen Daten einwandfrei und wird auch keine Probleme machen, wenn sich die XML-Struktur nicht ändert.
    Zum Testen kannst du auch einfach den Inhalt der XML-Datei in die Zwischenablage kopieren und das Programm laufen lassen:

    Spoiler anzeigen


    Ich will Oscar nicht in die Parade fahren, aber wie gesagt, ich hatte es halt auch fertig.
    Also wieso nicht? :rolleyes:

    Beste Grüße, Friesel

    *edit*
    war noch ein kleiner Fehler drin, der verhinderte, dass die Toner Namen korrekt erkannt werden. Ist repariert ;)