Anfängerfragen

  • Hallo liebe Gemeinde,

    ich habe absolut keine Ahnung vom programmieren :( und habe folgende Herausforderung.

    Ich habe ein Verzeichniss indem automatisch XML Dateien von einem Telematik Dienst erstellt werden. Ich muss nun in diese XML Dateien reinschauen und nach bestimmten kreterien suchen. Wenn Kreterium 1 erfüllt is, muss die Datei in ein anderes Verzeichniss verschoben werden. Ist Kreterium 2 oder 3 erfüllt muss die Datei in ein anderes Verzeichniss verschoben werden, ist kein Kreterium erfüllt soll die Datei gelöscht werden.

    Ist dieses mit Autoit möglich? Und gibt es hierfür irgendwo Beispiele?

    Vielen

    Dank

    Gruß

    Marco

  • Hallo mgertzen

    Herzlich willkommen im Forum.

    Ja, das geht mit AutoIt. Ohne deine Kriterien zu kennen, ist mein Rat nicht eindeutig. Wenn die Kriterien ganz plump sind, reicht:

    _FileListToArray (um die Dateien in einem Verzeichnis(bereich) aufzulisten.

    FileRead (um den Inhalt zu lesen)

    StringInString, (um deine Kriterien zu prüfen) - Wenn die komplexer auszulesen sind, dann google mal nach "AutoIt XML auslesen.

    FileMove/FileDelete (um die Dateien zu verschieben/zu löschen - je nach dem welchen Fall du vorfindest.)

    Du kannst dir zu jedem dieser Befehle die Beispiele in der Hilfe ansehen und natürlich nach den einzelnen Schritten hier auch im Forum etwas finden.

    Grüße autoiter

  • Die Kriterien sind eigentlich das Wichtigste. Alles andere sollte ohne Probleme möglich sein aber ohne die Kriterien zu kennen, können wir nicht wirklich sinnvolle Beispiele geben.

    Bild1: Ich beim debuggen

  • Hi General Kaboom,

    also hier mal auszüge aus der XML Datei.

    <Customer>

    <BusinessPartnerNumber>19001</BusinessPartnerNumber>

    <ExternalBusinessPartnerNumber>XYZ</ExternalBusinessPartnerNumber>

    <Name1>Name 1</Name1>

    <Name2>LName2</Name2>

    <Name3 />

    <Name4 />

    <Address>

    <CheckFields>

    <CheckField>

    <Value>false</Value>

    <Number>1</Number>

    </CheckField>

    <CheckField>

    <Value>false</Value>

    <Number>2</Number>

    </CheckField>

    <CheckField>

    <Value>false</Value>

    <Number>3</Number>

    </CheckField>

    <CheckField>

    <Value>false</Value>

    <Number>4</Number>

    </CheckField>

    <CheckField>

    <Value>false</Value>

    <Number>5</Number>

    </CheckField>

    <CheckField>

    <Value>false</Value>

    <Number>6</Number>

    </CheckField>

    <CheckField>

    <Value>false</Value>

    <Number>7</Number>

    </CheckField>

    <CheckField>

    <Value>false</Value>

    <Number>8</Number>

    </CheckField>

    <CheckField>

    <Value>false</Value>

    <Number>9</Number>

    </CheckField>

    <CheckField>

    <Value>true</Value>

    <Number>10</Number>

    </CheckField>

    Die erste Bedingung wäre wenn die die Business Partner Nummer = 19001 ist, dann soll es in Verzeichniss X verschoben werden. In Verzeichniss y soll es verschoben werden wenn Check field Number 9 oder 10 Value true haben.

    Ich hoffe das ist Verständlich.

    Gruß

    Marco

  • Die erste Bedingung wäre wenn die die Business Partner Nummer = 19001 ist, dann soll es in Verzeichniss X verschoben werden. In Verzeichniss y soll es verschoben werden wenn Check field Number 9 oder 10 Value true haben.

    Und was soll passieren wenn der Partner richtig (Nummer = 19001) aber auch eine der beide Checkfield Nummern zutreffen?

    Das ganze sollte sich relativ schnell und problemlos lösen lassen. Schau dir dazu _FileListToArray, FileMove/FileDelete, For ... next, FileOpen + FileRead, verschiedene String* -Funktionen (hier vor allem _StringBetween) an.

    Wenn das Verzeichnis live überwacht und sofort verschoben/gelöscht werden soll, ist auch das möglich: afair hat Oscar sowas schon einmal für Druckaufträge gemacht.

    mfg (auto)Bert

  • Dann kannst du das wirklich sehr einfach umsetzen. _StringBetween ist hier vllt. oversized, weil du ja wirklich nur wissen willst, ob die Business Partner Nummer 19001 lautet. Da kannst du auch einfach nach dem FileRead in dem String mit StringInStr nach 19001 inkl. der Tags suchen.

    Grüße autoiter

  • Ich war mal so frei... im Archiv im Anhang ist nochmals das Script und drei Testdateien... XMLFILE_1.xml wird nach X, XMLFILE_2.xml nach Y verschoben, XMLFILE_3.xml wird gelöscht.

    pasted-from-clipboard.png