1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Thomasb

Beiträge von Thomasb

  • Array teilen

    • Thomasb
    • 20. Juni 2007 um 16:26

    hi,

    danke das funzt. Damit hätten wir ein Problem gelöst. Aber ich brächte aus jedem Teil den ersten und den letzen und nur durch ".." getrennt. Das wird vom externem Programm als von - bis angesehen.

    Thomas

  • Array teilen

    • Thomasb
    • 20. Juni 2007 um 15:29

    hi,

    meinst du so
    For $r = 1 to UBound($Txt1,1)/2
    FileWriteLine($PROTFILE, $txt1[$r] & @CRLF)
    Next

    und wie kann der zweite Teil ausgegeben werden und wie bekomme ich die Ausgabe in diesem Format 0001..1052 hin. Diese benötige ich so um sie im externen Programm über Send() wieder einzugeben. ?(

    Thomas

  • Array teilen

    • Thomasb
    • 20. Juni 2007 um 15:06

    Hi,

    ich habe für die Steuerung eines externen Programm ein kleines Script geschrieben. Es ruf in dem ext. Programm einen Rechnungsdruck auf, der über eine pdf Software(BroadGun) diese in einem pdf zusammen stellt. Nun schmiert die BroadGun Software mit aller regelmäßigkeit ab. Damit bricht alles ab. Nun bleibt mit nichts anderes übrig um die Größe zu verringen die RE Nummern in ein Array einzulesen. Doch wie kann ich es nun erreichen, das nur die Hälfte der im Array befindlichen RE Nummern an das externe Programm ausgegeben werden. Auch weis ich im Vorfeld nicht wieviel RE Nummern in der txt sind.In der txt Datei stehen sie untereinander von 0001 bis 2104 (können aber auch mehr sein) Sie sollen dann so ausgegeben werden Bsp.0001..1052. Nach erfolgter pdf Erstellung soll durch eine Schleife der Rest von 1053.. ausgegeben werden.
    Kann mir bitte jemand eine Hilfestellung geben?

    ThomasB

  • Datei kopieren

    • Thomasb
    • 5. Juni 2007 um 17:13

    Hi,

    danke es geht.

    MFG Thomasb

  • Datei kopieren

    • Thomasb
    • 4. Juni 2007 um 18:16

    Hallo,

    danke erstmal. Ich hoffe das ich es richtig gelöst habe. Die ersten Test waren eigentlich gut.

    Spoiler anzeigen
    [autoit]

    $var= @YEAR & @MON
    If StringInStr($frta[1], "ER2529") Then ; Eintrag ist vorhanden
    If StringInStr($frta[2], "K;380") Then
    If StringInStr($frta[2], $var , 34) Then

    [/autoit]

    Ich hoffe es passt.

    Mfg ThomasB

  • Datei kopieren

    • Thomasb
    • 4. Juni 2007 um 16:46

    Hallo,

    nun ist es ja festgeschrieben. Da diese Zeile eine sich ständig ändernde ist sprich sich auch Rechnungsnummern dort drin befinden weis ich nicht ob es so geht?

    ThomasB

  • Datei kopieren

    • Thomasb
    • 4. Juni 2007 um 16:19

    Hallo,

    das ist der Wert der ich brauche ;20070601; Auch hat es irgendwie noch nicht recht gefunkt. Ich übe aber noch.

    ThomasB

  • Datei kopieren

    • Thomasb
    • 4. Juni 2007 um 15:41

    Hallo,

    gut ich habe es so gelöst.

    Spoiler anzeigen
    [autoit]

    If StringReplace($frta[2], ";", ";") Then
    $var = @YEAR & @MON

    [/autoit]

    Nur zwei Frage habe ich noch wie bekomme ich den zweiten Wert(ist der wichtigere)
    K;380;D--01/9013088758;9;20070604;20070601;20070630;31 und wie drehe ich dann die Variabele so das wieder so hinbekomme "@YEAR & "\" & @MON & " " & @YEAR"

    MFG

    ThomasB


    geht doch noch nicht

  • Datei kopieren

    • Thomasb
    • 4. Juni 2007 um 14:14

    Hallo,

    ja gut kannst hier mal ein Beispiel machen wie das richtig geht, da es sich hier um fortlaufendes Datum handelt.

    mfg

    thomasb

  • Datei kopieren

    • Thomasb
    • 4. Juni 2007 um 13:10

    Hallo gemeinde,

    ich muss mal wieder eine kleine Frage stellen. Ich bekomme jeden Tag viele Eifact Rechnungen und die dazugehörigen EVNs. Meine Script läuft soweit gut.

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <date.au3>
    #include <array.au3>
    #include <string.au3>
    Opt("TrayIconDebug", 1) ;0=no info, 1=debug line info
    ;
    Global $pathMain = "C:\GLI_PROD\Mapping\EDI_Eingang\" & @MDAY & "." & @MON & "." & @YEAR & "_test" & ".txt"
    Dim $pfad = "C:\GLI_PROD\Mapping\EDI_Eingang\"
    Dim $string = _FileListToArray($pfad, "*.INH";) ; liest alle *.INH-Files in Array $string
    Dim $match, $frta
    Dim $arErgebnis[1]
    Dim $arErgebnis1[1]
    ;Dim $pathMain
    If Not IsArray($string) Then
    MsgBox(16, "", "Keine Inhouse Datei(en) gefunden.. EXIT!";)
    Exit
    EndIf
    For $i = 1 To $string[0] ; Dateiliste abarbeiten
    _FileReadToArray($pfad & $string[$i], $frta)
    If @error <> 0 Then
    MsgBox(4096, "Error", " Fehler beim Einlesen der Datei: " & $pfad & $string[$i] & @LF & "Fehler: " & @error)
    Else
    $match = _StringBetween($frta[2], "/", ";";) ; Wert in Zeile 2 auslesen
    If Not @error Then
    If StringInStr($frta[1], "ER2529";) Then ; Eintrag ist vorhanden
    If StringInStr($frta[2], "K;380";) Then
    _TAG ()
    _ArrayAdd($arErgebnis, "Datei: " & $string[$i] & " mit RE.-Nr.: " & $match[0])
    Sleep(1500)
    ElseIf StringInStr($frta[2], "K;130";) Then ; Eintrag ist vorhanden
    _TAG_EVN ()
    Sleep(1500)
    EndIf
    _FileWriteFromArray($pathMain, $arErgebnis, 1)
    EndIf
    Else
    ;
    MsgBox(4096, "", "In Datei: " & $string[$i] & " ist Nummer nicht enthalten.";)
    EndIf
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ;
    Func _TAG ()
    If FileExists("C:\GLI_PROD\Mapping\ELFE_\Rechnung\Rechnung\" & @YEAR & "\" & @MON & " " & @YEAR & "\";) Then ; Ordner vorhanden
    FileMove("C:\GLI_PROD\Mapping\EDI_Eingang\" & $string[$i], "C:\GLI_PROD\Mapping\ELFE_\Rechnung\Rechnung\" & @YEAR & "\" & @MON & " " & @YEAR & "\", 1)
    Else
    DirCreate("C:\GLI_PROD\Mapping\ELFE_\Rechnung\Rechnung\" & @YEAR & "\" & @MON & " " & @YEAR & "\";) ; Ordner anlegen mit Datum Jahr\Monat Jahr
    FileMove("C:\GLI_PROD\Mapping\EDI_Eingang\" & $string[$i], "C:\GLI_PROD\Mapping\ELFE_\Rechnung\Rechnung\" & @YEAR & "\" & @MON & " " & @YEAR & "\", 1)
    EndIf
    EndFunc ;==>_TAG
    Func _TAG_EVN ()
    If FileExists("C:\GLI_PROD\Mapping\ELFE_\EVN\EVN\" & @YEAR & "\" & @MON & " " & @YEAR & "\";) Then ; Ordner vorhanden
    FileMove("C:\GLI_PROD\Mapping\EDI_Eingang\" & $string[$i], "C:\GLI_PROD\Mapping\ELFE_\EVN\EVN\" & @YEAR & "\" & @MON & " " & @YEAR & "\", 1)
    Else
    DirCreate("C:\GLI_PROD\Mapping\ELFE_\EVN\EVN\" & @YEAR & "\" & @MON & " " & @YEAR & "\";) ; Ordner anlegen mit Datum Jahr\Monat Jahr
    FileMove("C:\GLI_PROD\Mapping\EDI_Eingang\" & $string[$i], "C:\GLI_PROD\Mapping\ELFE_\EVN\EVN\" & @YEAR & "\" & @MON & " " & @YEAR & "\", 1)
    EndIf
    EndFunc ;==>_TAG_EVN

    [/autoit]

    Nun habe ich aber das Problem, das während eines Monatszyklus das Datum in den Dateien wechselt.

    Spoiler anzeigen


    Auszug aus der Zeile Mai
    K;380;D--01/9005547731;9;20070501;20070501;20070531;31;;5608421124;;;;

    Spoiler anzeigen


    Auszug aus der Zeile Juni
    K;380;D--01/9005547854;9;20070601;20070601;20070630;31;;5608421124;;;;

    Wie kann ich es erreichen das das Datum ausgewertet wird und in den richtigen Monatsordner verschoben wird. Momentan verschiebe ich alles in ein und denselben Monatsordner.
    Vielleicht habt ihr ja ne Idee.

    MFg
    Thomas B

  • FilegetTime

    • Thomasb
    • 24. Mai 2007 um 17:02

    hi,
    ok
    ziel erkannt

    thomasb

  • FilegetTime

    • Thomasb
    • 24. Mai 2007 um 16:43

    hi,

    da die Dateien immer im gleichen Ordner liegen bleiben müssen habe ich ein Problem die richtige zuzuordnen. Da wäre es vieleicht gut diese über die Zeit abzuwickel oder nicht?

    Thomas

  • FilegetTime

    • Thomasb
    • 24. Mai 2007 um 16:15

    mahlzeit kollegen,

    habe da mal wieder ein kleines Problem. Über ein ftp bekomme ich zweimal täglich einmal um 09:00 und einmal um 18:00.

    Spoiler anzeigen
    [autoit]

    Func unrar($Fromfolder, $ext = "*.cdr.gz", $ToFolder = "", $copyFlag = 0)
    Local $count = 0
    If $ToFolder = "" Or $ToFolder = Default Then $ToFolder = "X:\Auftragsbearbeitung\CDR\" & @YEAR & "\" & @MON &" "& @YEAR & "\"
    Local $fileList = _FileListToArray($Fromfolder, $ext)
    If @error = 1 Then Return -1
    For $i = 1 To UBound($fileList) - 1
    If StringLeft(FileGetTime($Fromfolder & $fileList[$i], 1, 1), 8) = @YEAR & @MON & @MDAY Then
    Run("C:\Programme\WinRAR\Winrar.exe")
    Sleep(1500)
    Send("^O")
    Sleep(1500)
    Send("F:\Colt\" & $fileList[$i])
    Send("{Enter}")
    Sleep(1500)
    Send("{Down}")
    Sleep(1000)
    Send("{ALTDOWN}e{ALTUP}")
    Sleep(100)
    Send("X:\Auftragsbearbeitung\CDR\" & @YEAR & "\" & @MON &" "& @YEAR & "\")
    Send("{Enter}")
    Sleep(1500)
    Send("{Down}")
    Sleep(1000)
    Send("{ALTDOWN}e{ALTUP}")
    Sleep(1000)
    Send("X:\CDR`S Komplett\")
    Send("{Enter}")
    Sleep(1500)
    Send('!{F4}')
    $count += 1
    EndIf

    Next
    SetError(0, $count)
    Return 1

    [/autoit]


    Das Script habe ich hier aus dem Forum bekommen. Es läuft auch super. Nun aber zu meinem eigentlichen Problem.
    Wie kann es umgangen werden das wenn die Abenddatei entpackt wird auch die Frühdatei wieder entpackt wird. Kann man irgend wie eine Zeitabfrage mit einbauen (etwas so >12:00 Uhr).

    mfg ThomasB

  • ArrayProblem oder nicht?

    • Thomasb
    • 24. März 2007 um 17:12

    hi,

    danke mit dem Runden war ein guter Tip

    ThomasB

  • ArrayProblem oder nicht?

    • Thomasb
    • 24. März 2007 um 15:41

    Hi, peethebee,

    jupp daran hats gelegen. Dahätte ich wohl noch lange suchen können.

    :keks:
    Schönes WE

    ThomasB

  • ArrayProblem oder nicht?

    • Thomasb
    • 24. März 2007 um 15:29

    Hallo Leutz

    Ich weis nicht ob es sich um eine Problem mit der Array handelt oder das Problem wo anders zu suchen ist.
    Der Auszug aus meinem Script was per Mail verschickt wird.

    Spoiler anzeigen
    [autoit]

    Func _mail();==> Outlook Erfolgreich/Error
    Dim $aRecords, $zeiten, $inhalt, $FileList
    $Txt = "c:\Datensicherung\Timer.prob"
    ;
    _FileReadToArray($Txt, $aRecords);==> Inhalt der Timer.prob
    ;
    $FileList = _FileListToArray("c:\Datensicherung\", "*.fbk", 1);==> Pfadinhalt
    ;
    $Outlook2003 = @ProgramFilesDir & "\Microsoft Office\Office11\Outlook.exe"
    $PID = ProcessExists("Outlook.exe")
    $Addresse = "c:\Datensicherung\"
    $Ti = @HOUR & ":" & @MIN & ":" & @SEC
    $Address= ("xx@xx.de")
    $Subject= ("Tägliche Datensicherung vom " & _NowDate())
    ;
    For $i = 1 To $aRecords[0];==> Beginn der ersten Schleife für Timer.prob
    $zeiten &= $aRecords[$i] & @LF
    Next
    ;
    For $i = 1 To $FileList[0];==> Beginn der zweiten Schleife für Pfadinhalt
    $inhalt &= $FileList[$i] & @LF
    Next
    ;==> Ertsellung des E-Mail Body für Erfolg
    $Body = ("Die Tägliche Datensicherung wurde um " & $Ti & " erfolgreich erstellt." & @LF & @LF & _
    "Im Pfad " & $Addresse & " wurden folgende Dateien angelegt:" & @LF & _
    $inhalt & @LF & _
    "Die Laufzeiten der einzelnen Scripte betrugen:" & @LF & @LF & $zeiten & @LF & @LF & _
    "Freundliche Grüße" & @LF & @LF & " Administrator")
    ;==> Ertsellung des E-Mail Body für Misserfolg
    $Body_err = ("Die Tägliche Datensicherung wurde um " & $Ti & " erfolgreich erstellt." & @LF & @LF & _
    "Im Pfad " & $Addresse & " wurden folgende Dateien angelegt:" & @LF & _
    $inhalt & @LF & _
    "Die Laufzeiten der einzelnen Scripte betrugen:" & @LF & @LF & $zeiten & @LF & @LF & _
    "Freundliche Grüße" & @LF & @LF & " Administrator")
    ;
    If FileExists("T:\Datensicherung\") Then; ==> Misserfolg
    If $PID Then
    _INetMail($address, $subject, $Body_err)
    Sleep(5000)
    Send("!s")
    Else
    Run($Outlook2003)
    WinWaitActive("Posteingang - Microsoft Outlook")
    _INetMail($address, $subject, $Body_err)
    Sleep(5000)
    Send("!s")
    Sleep(1500)
    Send("!{F4}")
    EndIf
    Else ;==> Erfolg
    If $PID Then
    _INetMail($address, $subject, $Body)
    Sleep(5000)
    Send("!s")
    Else
    Run($Outlook2003)
    WinWaitActive("Posteingang - Microsoft Outlook")
    _INetMail($address, $subject, $Body)
    Sleep(5000)
    Send("!s")
    Sleep(1500)
    Send("!{F4}")
    EndIf
    EndIf
    EndFunc

    [/autoit]

    Hier der Inhalt der Timer.prob

    Spoiler anzeigen

    Tagesrohdaten von BT wurden nicht gefunden.
    Tagesrohdaten von Verizon wurden nicht gefunden.
    Tagesrohdaten von QSC f2z wurden nicht gefunden.
    Tagesrohdaten von QSC f3y wurden nicht gefunden.
    Tagesrohdaten wurden in 0.0333336173545334 Minuten erzeugt
    Die Löschung der alten CDR's & EVN's dauerte 5.26137632948694e-007 Minuten
    Die Datensicherung wurde in 0.0165667005164064 Minuten erstellt

    und hier das was per Mail versendet wurde.

    Spoiler anzeigen

    Die Tägliche Datensicherung wurde um 14:57:22 erfolgreich erstellt.

    Im Pfad c:\Datensicherung\ wurden folgende Dateien angelegt:
    adtg.fbk
    adtg2.fbk
    adtg3.fbk

    Die Laufzeiten der einzelnen Scripte betrugen:

    Tagesrohdaten von BT wurden nicht gefunden.
    Tagesrohdaten von Verizon wurden nicht gefunden.
    Tagesrohdaten von QSC f2z wurden nicht gefunden.
    Tagesrohdaten von QSC f3y wurden nicht gefunden.
    Tagesrohdaten wurden in 0.0333336173545334 Minuten erzeugt
    Die Löschung der alten CDR's

    Es wird einteil nicht mitübernommen. Woran kann es liegen?

    MFg

    ThomasB :hm:

  • Radio Button

    • Thomasb
    • 19. März 2007 um 17:02

    hi,

    wenn es so wäre ginge es. Sie sind alle auf eine Subform die immer den gleichen Namen hat. Somit ist es nicht so einfach wenn nicht die direkte ID angesprochen werden kann.
    Ansonsten habe ich das mit dem ControlClick verstanden.

    ThomasB

  • Radio Button

    • Thomasb
    • 19. März 2007 um 16:01

    hallo,

    Es handelt sich hier um ein ext. Programm(Navision) das Nachts mehrere Dateien einlesen soll. Nun kann ich die RadioButton nicht ansprechen, deshalb die Screenshots zum besseren Verständnis. In der Hilfe steht nur das mit ControlCommand man diese ansprechen kann. Das ist mein Problem, der Rest vor dem ControlCommand und danach funktioniert. Auch mit Mouseclick will nicht funktionieren da sich das Feld an unterschiedlichen Stellen öffnet.
    Das würde ich gerne erreichen.

    thomasb

  • Radio Button

    • Thomasb
    • 17. März 2007 um 19:31

    hallo Leutz,

    ich quäle mich hier mit der Aktivierung von RadioButton. Ich habe mal drei Bilder mit angehängt zum besseren Verständnis. Ich habe mich mit dem

    [autoit]

    ControlCommand

    [/autoit]

    befasst. Leider bekomme ich es nicht hin das einer aktiviert wird.

    [autoit]

    ControlCommand("ADTG-Microsoft Business Solutions-Navision","Import CDR's","1000000002","Check","")

    [/autoit]

    Wo liegt mein Fehler das es nicht klappen will? Hat wer noch einen Tip wie es geht?

    MFG

    ThomasB

    Dateien

    navi.jpg 18,14 kB – 0 Downloads Properties.jpg 56,43 kB – 0 Downloads
  • _FileWriteFromArray in E-Mail Body

    • Thomasb
    • 15. März 2007 um 06:37

    hi,

    ja eddy, es war zu diesem Zeitpunkt keine Datei vorhanden. Das hatte ich dann behoben dann gings. Allerdings mit $aRecords[1].. Bei dir ist eine Schleife drin, die ich jetzt erstmal teste. Ansonsten läuft es.

    :keks: :keks: :keks:

    Thomasb

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™