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. CrazyCrac

Beiträge von CrazyCrac

  • IP Liste erstellen, mal gehts mal gehts nicht...

    • CrazyCrac
    • 28. Januar 2014 um 16:52

    Vielen Dank =)

    die Lösung kann so simpel sein...

  • IP Liste erstellen, mal gehts mal gehts nicht...

    • CrazyCrac
    • 24. Januar 2014 um 11:22

    Hallo zusammen,

    ich stehe momentan etwas auf dem Schlauch. Ich habe ein kleines Script gebastelt dessen Ziel es einen Angegebenen IP Adressbereich in eine IP Liste auf zu lösen (z.B. 192.168.0.1 - 192.168.0.10 in 192.168.0.1, 192.168.0.2, 192.168.0.3 usw.), dazu werden noch andere Angaben vom User eingegeben und in der Zieldatei verarbeitet.

    Mein Problem ist nun folgendes. Wenn ich den Adressbereich 192.168.0.1 - 192.168.0.10 angebe funktioniert alles wie gewollt.
    Gebe ich den Bereich192.168.0.90 - 192.168.0.110 gibt es Fehler....

    Durch verschiedene Tests habe ich heraus gefunden dass das Problem wohl in der Zeile 60 des Scripts liegt. Das Script erkennt hier beim ersten Beispiel dass 1 kleiner ist als 10, im zweiten Beispiel aber nicht das 90 kleiner ist als 110...

    Ich weiß nicht mehr weiter und hoffe das einer von euch meinen Denkfehler findet...

    Falls noch was fehlen sollte einfach Fragen.

    anbei der Quellcode...

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    $von = 0
    $bis = 0
    $server = 0
    $kunde = 0
    $while = 0
    $err = 1
    #Region ### START Koda GUI section ### Form=c:\scripte\ip liste erstellen\gui.kxf
    $Form1_1 = GUICreate("Form1", 177, 264, 1323, 317)
    $Adressbereichvon = GUICtrlCreateInput("Adressbereich von:", 16, 72, 145, 21)
    $Adressbereichbis = GUICtrlCreateInput("Adressbereich bis:", 16, 104, 145, 21)
    $FQDN = GUICtrlCreateCheckbox("FQDN", 16, 168, 57, 33)
    $Kundenname = GUICtrlCreateInput("Kundenname", 16, 8, 145, 21)
    $DNS = GUICtrlCreateInput("DNS Server", 16, 40, 145, 21)
    $Create = GUICtrlCreateButton("Liste erstellen", 16, 208, 145, 33)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While $while = 0
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Create
    $von = GUICtrlRead($Adressbereichvon)
    $bis = GUICtrlRead($Adressbereichbis)
    $server = GUICtrlRead($DNS)
    $kunde = GUICtrlRead($Kundenname)
    If _fddf($von) = 0 Then
    MsgBox(0,"FALSCHEINGABE","Der Startwert wurde nicht im korekten Format eingegeben (XXX.XXX.XXX.XXX)")
    $err = 1
    ElseIf _fddf($bis) = 0 Then
    MsgBox(0,"FALSCHEINGABE","Der Endwert wurde nicht im korekten Format eingegeben (XXX.XXX.XXX.XXX)")
    $err = 1
    ElseIf _fddf($server) = 0 Then
    MsgBox(0,"FALSCHEINGABE","Die ServerIP wurde nicht im korekten Format eingegeben (XXX.XXX.XXX.XXX)")
    $err = 1
    ElseIf $kunde = "" Then
    MsgBox(0,"FALSCHEINGABE","Es wurde kein Kunde angegeben")
    $err = 1
    Else
    MsgBox(0,"Eingabe akzeptiert","Liste wird erstellt")
    $err = 0
    EndIf
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    If $err = 0 Then $while = 1
    WEnd
    $von = StringSplit($von,".")
    $bis = StringSplit($bis,".")
    ;_arrayDisplay($von)
    ;_arrayDisplay($bis)
    FileWrite("IP Liste.txt","Kunde: " & $kunde & @CRLF & "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
    FileWrite("IP Liste.txt","DNS Server: " & $server & @CRLF)
    While 1
    FileWrite("IP Liste.txt","Client: " & $von[1] & "." & $von[2] & "." & $von[3] & "." & $von[4] & @CRLF)
    MsgBox(0,"",$von[4] < $bis[4])
    If ($von[4] < $bis[4]) Then
    $von[4] = $von[4] + 1
    Else
    ExitLoop
    EndIf
    WEnd
    FileWrite("IP Liste.txt","END OF FILE")
    Func _fddf ($ip)
    If StringRegExp($ip,"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})",0) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

    [/autoit]
  • Mehrfachausführung verhindern

    • CrazyCrac
    • 13. Juli 2012 um 14:57

    Genau das habe ich gesucht aber nirgends gefunden...
    Vielen Dank

  • Mehrfachausführung verhindern

    • CrazyCrac
    • 13. Juli 2012 um 14:16

    Hallo zusammen,


    ich bin gerade dabei ein Programm zu schrieben das wie folgt ablaufen soll:


    Das Programm wird Parallel zu einer weiteren Software gestartet.


    Alle 0,7 Sekunden wird überprüft ob von der anderen Software eine bestimmte

    Datei in ein bestimmtes Verzeichnis geschrieben wurde. Wenn die Datei

    auftaucht, wird die Datei verarbeitet.


    Nun kann es passieren das dass Parallel arbeitende Programm mehrfach gestartet

    wird. In diesem Fall wäre es sinnlos meine Software nochmals zu starten.


    Nun ist die Frage wie ich dies verhindern kann.


    Ich habe mir die Möglichkeit angesehen nach bestimmten Prozessnamen zu

    suchen.


    Lösen tut dies mein Problem leider nicht, da ich ja erst suche wenn ich mein

    Programm bereits gestartet habe somit Grundsätzlich ein Prozess mir dem eigenen

    Namen vorhanden sein wird.


    Hat jemand eine Idee?

  • RegEx und Arrays

    • CrazyCrac
    • 11. Juli 2012 um 09:57

    Langsam wird das ganze klarer...
    Vielen Dank für die Erläuterung.

  • RegEx und Arrays

    • CrazyCrac
    • 10. Juli 2012 um 10:32

    AspirinJunkie

    Vielen Dank, das Script tut genau dass was ich versuch habe zu erreichen. Ich versteh zwar die Logik dahinter gerade nicht...
    Aber da muss ich mich jetzt wohl durchdenken. =)

  • RegEx und Arrays

    • CrazyCrac
    • 10. Juli 2012 um 08:56

    Hallo zusammen,

    @raupy
    zu 1.
    eine Beispieldatei könnte wie folgt aussehen.

    Code
    4851111Uninteresanter Text
    8792242Text der auch nicht Interesant ist
    9871235Text den ich auch nicht brauche
    5586228Der Text den ich will
    0156228Noch einen Text den ich will

    zu 2.
    in der Schleife war so natürlich ein Fehler.
    Ich habe die Schleife nun leicht angepasst, und das Array $erg vorangehend deklariert.

    [autoit]

    While $groese>0
    $test=$tmp[$groese]
    $erg[0] = $erg[0] & StringRegExp($test,"(?<=\d\d\d6228).+",3)
    $groese = $groese-1
    WEnd

    [/autoit]

    Nun sollte doch meiner Logik nach aus dem ersten Feld des Arrays $tmp der höchste Index ausgelesen und in $groese geschrieben werden. (z.B. 5)
    danach wird geprüft ob $groese größer als 0 ist. Dies trifft beim ersten druchgang zu.
    Also wird der Wert aus $tmp beim Index $groese in $test geschrieben.
    danach wird der String mit dem Ausdruck verglichen, falls dieser Zutrifft wird das Ergebnis mit dem bisherigen Inhalt von $erg in das Array geschrieben?
    Was aber passiert ist, dass für jeden Durchgang eine 1 in das Array geschrieben wird...

    Gewollt wäre das jeweils NUR der Text in das Array geschrieben wird, wenn der RegEx eine Übereinstimmung findet.
    Wenn noch irgendwelche Infos fehlen, einfach Bescheid geben.

    $var
    Beide Patterns führen zum selben Ergebnis

  • RegEx und Arrays

    • CrazyCrac
    • 9. Juli 2012 um 16:32

    Hallo zusammen,


    ich bin seit einiger Zeit am Verzweifeln.

    Ich versuche gerade ein kleines Tool zu schreiben, das folgende Aufgabe erfüllen soll.

    Ich habe eine txt Datei, in der eine unbekannte Anzahl an Zeilen sind. Die Zeilen beginnen immer mit drei Zahlen, danach folgen 4 Ziffern gefolgt von einem Text.

    Ziel ist es, aus der Datei alle Texte aus den Zeilen die mit XXX6228 beginnen auszulesen. In jeder Quelldatei ist mindestens eine solche Zeile vorhanden. Maximal sind diese nicht begrenzt.

    Die Texte sollen mit einem Komma als Trennzeichen in eine neue Datei kopiert werden.

    Hinter meinem (Lösungs)Ansatz steckt folgende Logik:

    Die Quelldatei in ein Array einlesen-->Das Array Zeile für Zeile überprüfen und zutreffende Ergebnisse in die Zieldatei schreiben.

    Momentan habe ich das problem das der Reguläre Ausdruck nicht das was ich Suche zurück gibt.

    Hier mal der Entsprechende Quellcode:

    [autoit]

    #include

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

    #include

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

    $tmp=""

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

    $exit=0

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

    _FileReadToArray("C:\test\quelle.txt",$tmp)

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

    ;_FileWriteFromArray("C:\test\Gelesen.txt",$tmp,0)

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

    $groese = $tmp[0]

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

    While $groese>0

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

    $test=$tmp[$groese]

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

    $erg = StringRegExp($test,"(?<=\d\d\d6228).+",3)

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

    $groese = $groese-1

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

    WEnd

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

    _ArrayDisplay($erg)

    [/autoit]


    Kann mir irgendwer verraten was ich falsch mache?

  • Controll Click erkennt button nicht

    • CrazyCrac
    • 22. August 2011 um 15:22

    Jetzt tuts

    da befand sich das Problem mal wieder zwischen Stuhllehne und Tastatur.

    Vielen Dank =)

  • Controll Click erkennt button nicht

    • CrazyCrac
    • 22. August 2011 um 14:58

    Mein bisheriger Versuch ist

    [autoit]

    WinWaitActive ("Druckerinstallations-Assistent")

    [/autoit]

    allerdings habe ich auch schon ein

    [autoit]

    Sleep(5000)

    [/autoit]

    ausprobiert.

    Beides leider Erfolglos.

  • Controll Click erkennt button nicht

    • CrazyCrac
    • 22. August 2011 um 13:32

    Hallo zusammen,

    ich habe bereits seit einigen Stunden das Problem, dass ControllClick einen Button nicht erkennt bzw. Ich nicht die Daten liefere mit denen der Button erkannt wird.

    Ziel dieses Teil des Scriptes ist einen Drucker unter Windows XP einzurichten.
    Meine bisherige Vorgehensweiße ist folgende.

    Zuerst rufe ich den "Drucker hinzufüge Assistent" auf.

    [autoit]

    run ("rundll32 printui.dll,PrintUIEntry /il")

    [/autoit]

    Ab dann scheitert mein vorhaben schon. Ich schaffe es nicht AutoIt klarzumachen das es hier auf weiter klicken soll.
    Laut dem AutoIT Window Info Tool besitzt der Button folgende Werte:

    Titel: Button2
    Text: &Weiter >
    ID: 12324

    Wenn ich das richtig sehe, müsste somit der ControllClick Befehl wie folgt lauten:

    [autoit]

    ControlClick ("Button2" ,"&Weiter >",12324)

    [/autoit]

    Wenn ich das so Probiere passiert... Nichts...
    Was mache ich Falsch?

    Danke schonmal für die Hilfe

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™