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

Beiträge von Donsen64

  • IP Adresse bzw. IP Adresse/Netzmaske im Text suchen

    • Donsen64
    • 4. August 2014 um 14:52

    Hallo,
    vielen Dank für die Antwort, das verbessert schon mal die Ausgabe auf:

    Zitat

    10.11.70.1
    10.11.71.0/24
    10.11.72.0 /24
    10.11.73.0 / 24
    10.11.74.0
    255.255.255.0
    10.11.75.0
    10.11.76.0
    10.11.77.0
    255.255.0.0
    10.11.78.0

    Alles anzeigen

    Auch vielen Dank für die zusätzlichen Hinweise! Die Funktion hat in der Zielumgebung einen Übergabewert. Habe ich nur hier im Forum so gemacht, um das einfacher zu halten. Im Original erfolgt da noch eine Beseitigung der Freizeichen und das Ergebnis wird in einer weiteren Funktion noch zusätzlich auf seine Richtigkeit geprüft.

    Was mir jetzt allerdings noch Kopfzerbrechen macht ist die Tatsache, das er die folgenden Schreibweisen nicht als IP/Netzmaske erkennt:

    Zitat

    10.11.74.0 255.255.255.0
    10.11.75.0/255.255.255.0
    10.11.76.0/ 255.255.255.0
    10.11.77.0/ 255.255.0.0
    10.11.78.0 / 255.255.255.0

    Könnte man die Erkennung auch mit einbauen?

    Gruß Ingo

  • IP Adresse bzw. IP Adresse/Netzmaske im Text suchen

    • Donsen64
    • 4. August 2014 um 10:35

    Hallo,
    ich hatte hier bereits eine ähnliche Frage gestellt. Nun haben sich aber weitere Herausforderungen ergeben. :P

    Ich möchte in einem Text nach allen IP Adressen bzw. mach IP Adressen mit Maske suchen. Dazu habe ich folgende Funktion:

    [autoit]

    #include <Array.au3>

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

    IP_oder_IP_Netze_aus_Zwischenablage()

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

    Func IP_oder_IP_Netze_aus_Zwischenablage()
    Local $aIP_Netze

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

    ;aus dem Text die IP Adresse bzw. IP Adresse/Netzmaske suchen und in Array ablegen
    $aIP_Netze = StringRegExp(ClipGet(), '(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?: ?/\d{1,2})?', 3)

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

    if @error Then ;wurde denn auch eine IP Adresse in der Zwischenablage gefunden?
    Msgbox(64, "Fehler", "Keine IP Netze in der Zwischenablage gefunden!")
    Return
    EndIf

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

    $aIP_Netze = _ArrayUnique($aIP_Netze) ;Doppelte Eintrage aus der Liste entfernen

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

    _ArrayToClip($aIP_Netze, 1) ;Ergebnis in die Zwischenablage

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

    MsgBox(0, "Ergebnis", "In der Zwischenablage wurden " & $aIP_Netze[0] & " IP Adressen mit Netzwerkmaske gefunden und als Liste zurück in die Zwischenablage kopiert." )
    EndFunc

    [/autoit]

    Wenn ich dieser Funktion aber folgendes gebe:

    Zitat

    ;~ 10.11.70.1
    ;~ 10.11.71.0/24
    ;~ 10.11.72.0 /24
    ;~ 10.11.73.0 / 24
    ;~ 10.11.74.0 255.255.255.0
    ;~ 10.11.75.0/255.255.255.0
    ;~ 10.11.76.0/ 255.255.255.0
    ;~ 10.11.77.0/ 255.255.0.0
    ;~ 10.11.78.0 / 255.255.255.0

    Alles anzeigen

    Kommt das folgende Ergebnis:

    Zitat

    10.11.70.1
    10.11.71.0/24
    10.11.72.0 /24
    10.11.73.0
    10.11.74.0
    255.255.255.0
    10.11.75.0/25
    5.255.255.0
    10.11.76.0
    10.11.77.0
    255.255.0.0
    10.11.78.0

    Alles anzeigen

    Hat jemand eine Idee wie ich das noch optimieren könnte? ;)

    Gruß Ingo

  • schnellere Alternative zu _ExcelWriteSheetFromArray

    • Donsen64
    • 2. August 2014 um 16:31

    Hallo,
    habe eine Lösung zum Fixieren der ersten Zeile gefunden. ;)

    Gruß Ingo

    [autoit]


    Local $oAppl
    Local $oWorkbook

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

    $oAppl = _Excel_Open() ;Excel Objekt anlegen
    $oWorkbook = _Excel_BookNew($oAppl) ;neue Arbeitsmappe erstellen

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

    ;in der Arbeitsmappe erste Zeile der ersten Tabelle einfrieren
    $oAppl.Workbooks(1).Activate
    $oAppl.ActiveWindow.FreezePanes = True

    [/autoit]
  • Prozesslisten (Arrays) vergleichen

    • Donsen64
    • 6. Mai 2014 um 11:33

    Hallo,
    das hast du recht. Allerdings kommt es zu Problemen wenn ich zwischendurch etwas zu mache. ;)

    [autoit]

    #include <Array.au3>

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

    Global $aListProcessStart
    Global $aListProcessEnd

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

    $aListProcessStart = ProcessList()
    MsgBox(1, "Etwas starten/stoppen", "Bitte etwas Starten oder Stoppen")
    Run(@WindowsDir & "\Notepad.exe", "", @SW_MAXIMIZE)
    $aListProcessEnd = ProcessList()

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

    _ArrayCompare2D($aListProcessStart, $aListProcessEnd, 1)

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

    Func _ArrayCompare2D(ByRef $aArrayA, ByRef $aArrayB, $iStartIndex=0)
    ;==================================================================================================
    ; Function Name: _ArrayCompare2D(ByRef $aArrayA, ByRef $aArrayB, $iStartIndex=0)
    ; Description:: Vergleich von 2 2D Arrays
    ; Parameter(s): $aArrayA das erste 2D Array
    ; $aArrayB das zweite 2D Array
    ; $iStartIndex Index ab dem der Vergleich begonnen werden soll
    ; Return Value(s): Erfolg 2D-Array mit den Unterschieden
    ; Fehler -1
    ; Note:
    ; Author(s): Donsen64
    ;==================================================================================================
    Local $a
    Local $b

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

    if UBound($aArrayA)-1 > UBound($aArrayB)-1 then
    $a = $aArrayA
    $b = $aArrayB
    Else
    $b = $aArrayA
    $a = $aArrayB
    endif

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

    for $i = ubound($a)-1 to 0 Step -1
    for $ii = ubound($b)-1 to 0 Step -1
    if $a[$i][1] = $b[$ii][1] then
    _ArrayDelete($a,$ii)
    _ArrayDelete($b,$i)
    endif
    next
    next

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

    _ArrayDisplay($aArrayA, "$aArrayA")
    _ArrayDisplay($aArrayB, "$aArrayB")
    _ArrayDisplay($a, "$a")
    _ArrayDisplay($b, "$b")
    EndFunc

    [/autoit]
  • Prozesslisten (Arrays) vergleichen

    • Donsen64
    • 6. Mai 2014 um 10:43

    Hallo vielen Dank für die Hinweise! Ich habe da mal etwas zusammengebaut. Aber leider scheitere ich schon daran, dass _ArrayUnique leider ein 1-dimensionales Array zurück gibt.

    Hat da jemand eine Idee?

    Gruß Ingo

    Spoiler anzeigen

    #include <Array.au3>

    Global $aListProcessStart
    Global $aListProcessEnd

    $aListProcessStart = ProcessList()
    Run(@WindowsDir & "\Notepad.exe", "", @SW_MAXIMIZE)
    $aListProcessEnd = ProcessList()

    _ArrayCompare2D($aListProcessStart, $aListProcessEnd, 1)

    Func _ArrayCompare2D(ByRef $aArrayA, ByRef $aArrayB, $iStartIndex=0)
    ;==================================================================================================
    ; Function Name: _ArrayCompare2D(ByRef $aArrayA, ByRef $aArrayB, $iStartIndex=0)
    ; Description:: Vergleich von 2 2D Arrays
    ; Parameter(s): $aArrayA das erste 2D Array
    ; $aArrayB das zweite 2D Array
    ; $iStartIndex Index ab dem der Vergleich begonnen werden soll
    ; Return Value(s): Erfolg 2D-Array mit den Unterschieden
    ; Fehler -1
    ; Note:
    ; Author(s): Donsen64
    ;==================================================================================================
    Local $aArrayAB
    Local $iArraysCols

    ;Beide Arrays zusammenführen
    $aArrayAB = $aArrayA
    $iArraysCols = UBound($aArrayB, 2)
    For $i=$iStartIndex To UBound($aArrayB)-1
    ReDim $aArrayAB[UBound($aArrayAB)+1][$iArraysCols]
    For $x=0 To $iArraysCols-1
    $aArrayAB[UBound($aArrayAB)-1][$x] = $aArrayB[$i][$x]
    Next
    Next
    $aArrayAB = _ArrayUnique($aArrayAB)

    _ArrayDisplay($aArrayA, "$aArrayA")
    _ArrayDisplay($aArrayB, "$aArrayB")
    _ArrayDisplay($aArrayAB, "$aArrayAB")

    EndFunc

  • Prozesslisten (Arrays) vergleichen

    • Donsen64
    • 5. Mai 2014 um 16:24

    Na zwei Arrays vergleichen ist glaube ich nicht so einfach. Ich müsste ja im ersten Schritt $aStart mit $aEnd vergleichen und dann $aEnd und $aStart.

    Ich hatte auch schon überlegt ob es eventuell besser ist die Arrays in Text zu konvertieren und dann nach Unterschieden zu suchen.

    Aber eventuell hat ja jemand bereits dafür eine Lösung gefunden bzw. erstellt. ;)

    Gruß Ingo

  • Prozesslisten (Arrays) vergleichen

    • Donsen64
    • 5. Mai 2014 um 15:41

    Hallo,
    ich habe ein Problem mit dem Vergleich von zwei Prozesslisten als Arrays die vom der Funktion ProcessList() erstellt wurde. Ich brauche eigentlich nur eine Liste der hinzugekommenen bzw. entfernten Processe. Also den Unterschied zwischen den zwei Arrays.

    Gruß Ingo

  • schnellere Alternative zu _ExcelWriteSheetFromArray

    • Donsen64
    • 24. April 2014 um 21:32

    Hallo,
    Das habe ich schon so probiert, leider funktioniert es mit den neuen Objekten nicht so wie mit den alten. Scheinbar basiert dein UDF auf einem anderen Grundobjekt.

    Gruß Ingo

  • schnellere Alternative zu _ExcelWriteSheetFromArray

    • Donsen64
    • 7. April 2014 um 07:46

    Hallo,
    Kann mir jemand sagen wie ich mit dem neuen UDF die erste Zeile der aktuellen Tabelle einfriere, so das dies immer sichtbar ist?

    Gruß Ingo

  • schnellere Alternative zu _ExcelWriteSheetFromArray

    • Donsen64
    • 6. April 2014 um 23:31

    Ok gut zu wissen.

    Ich habe aber auch festgestellt, dass es sich mit der alten Excel UDF nicht verträgt wenn ich beides in einem Programm verwende. Also werde ich auch noch die zweite Funktion auf deine neue UDF umstellen.

    Nochmals vielen Dank für diese Super Arbeit an alle Mitwirkenden. :rock:

    Gruß Ingo

  • schnellere Alternative zu _ExcelWriteSheetFromArray

    • Donsen64
    • 6. April 2014 um 21:03

    Hallo Water,
    na das nenne ich mal Geschwindigkeit! Super Arbeit!!! :rock:

    Gruß Ingo

  • schnellere Alternative zu _ExcelWriteSheetFromArray

    • Donsen64
    • 6. April 2014 um 17:42

    Hallo Water,
    dein neues Excel UDF hatte ich schon entdeckt. Leider kann ich keine Entsprechung zur _ExcelWriteSheetFromArray Funktion finde. Wie kann ich die denn ersetzen?

    Gruß Ingo

  • schnellere Alternative zu _ExcelWriteSheetFromArray

    • Donsen64
    • 6. April 2014 um 15:16

    Hallo,
    ich habe schon gesucht nach einer schnelleren Alternative zu dem orginalen Excel UDF _ExcelWriteSheetFromArray. Irgendwie finde ich da nicht so richtig etwas. Ich kann mich aber daran erinnen solch eine Alternative bereits gesehen zu haben. Denn das Original ist schon verdammt langsam.

    Gruß Ingo

  • IP Adressen und Maske in einem Text suchen

    • Donsen64
    • 19. Februar 2014 um 16:58

    Hallo,
    super das passt! Vielen Dank für die Schnelle Antwort!! :rock:

    Gruß Ingo

  • IP Adressen und Maske in einem Text suchen

    • Donsen64
    • 19. Februar 2014 um 15:26

    Hallo,
    ich habe ein Problem mit StringRegExp. Vielleicht kann mir jemand helfen mein Wunschergebnis zu bekommen.

    Wunschergebnis
    Row|Col 0
    [0]|10.2.3.10
    [1]|10.2.3.0/24
    [2]|10.2.3.0 /24

    [autoit]

    #include <Array.au3>

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

    Local $Text
    Local $aIPAddress
    Local $aIP_Netze
    Local $aIPAddress_und_Netze

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

    $Text = "Das ist ein Text mit dieser IP 10.2.3.10 und eineer IP mit Maske 10.2.3.0/24 und einer IP mit Maske hinter Freizeichen 10.2.3.0 /24 und ich brauche alles"

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

    MsgBox(1, "Test", $Text)

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

    ;IP Adressen in ein Array schreiben
    $aIPAddress = StringRegExp($Text, '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', 3)
    _ArrayDisplay($aIPAddress)
    ;~ Ergebnis:
    ;~ Row|Col 0
    ;~ [0]|10.2.3.10
    ;~ [1]|10.2.3.0
    ;~ [2]|10.2.3.0

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

    ;IP Adressen/Maske in ein Array schreiben
    $aIP_Netze = StringRegExp($Text, '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[/]\d{1,2}', 3)
    _ArrayDisplay($aIP_Netze)
    ;~ Ergebnis:
    ;~ Row|Col 0
    ;~ [0]|10.2.3.0/24

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

    $aIPAddress_und_Netze = StringRegExp($Text, '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\ [/]\d{1,2}', 3)
    _ArrayDisplay($aIPAddress_und_Netze)
    ;~ Ergebnis:
    ;~ Row|Col 0
    ;~ [0]|10.2.3.0 /24

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

    ;~ Wunschergebnis ist aber:
    ;~ Row|Col 0
    ;~ [0]|10.2.3.10
    ;~ [1]|10.2.3.0/24
    ;~ [2]|10.2.3.0 /24

    [/autoit]

    Gruß Ingo

  • Excel Tabelle Zellen einfärben

    • Donsen64
    • 21. Dezember 2012 um 16:08

    Hallo,
    habe ich irgendwie nicht gefunden. Vielen Dank.

    Sollte ja auch mit den Excel UDFs funktionieren.

    Gruß Ingo

  • Excel Tabelle Zellen einfärben

    • Donsen64
    • 21. Dezember 2012 um 14:48

    Hallo,
    kennt jemand eine Möglichkeit wie ich in einer Excel Tabelle einen Zellenbereich einfärben kann. Also die Hintergrundfarbe setzen kann.

    Gruß Ingo

  • reinen IE Textseite lesen

    • Donsen64
    • 11. Mai 2012 um 12:33

    Hallo,
    diese UDF Sammlung kannte ich noch nicht. Super Hinweis danke dafür.

    Leider konnte ich mein Problem auch damit nicht lösen. Von der Funktion _WinHttpSimpleSSLRequest bekomme ich immer nur einen Fehler "2 - could not send request" zurück. Warum er die Anfrage nicht senden kann konnte ich leider nicht feststellen. Wenn ich mir die gesendeten Daten ansehe scheint er etwas zu senden. Da es aber verschlüsselt ist kann ich nicht erkennen was sein Problem ist.
    Aber es ist auch nicht so schlimm, denn ich haben das jetzt so geändert, dass ich die Daten per Hand in die Zwischenablage kopiere und dann weiter Verarbeiten. Da diese Aktion nicht so oft ansteht ist das eine durchaus akzeptable Lösung.

    Wenn jemand für ein ähnliches Problem "Webseite völlig ohne HTML nur mit Text auslesen" eine Lösung gefunden hat bin ich natürlich für jeden Hinweis dankbar. Ich werde den Fall weiter beobachten.

    Vielen Dank an alle beteiligten!!!

    Gruß Ingo

  • reinen IE Textseite lesen

    • Donsen64
    • 8. Mai 2012 um 14:52

    Hallo Chip,
    du hattest Recht ohne Optionen funktioniert es. Aber leider kommt beim ersten Aufruf eine Fehlermeldung zum Zertifikat. Wenn ich die bestätige kommt er aber scheinbar durcheinander.

    Kann ich feststellen wenn der IE in einen Fehler gelaufen ist und entsprechend darauf reagieren?

    Gruß Ingo

  • reinen IE Textseite lesen

    • Donsen64
    • 7. Mai 2012 um 18:23

    Hallo,
    ja das hatte ich so auch probiert. Dann ist er aber nicht zurückgekommen und hat ewig gewartet. Ich werde mir das Morgen nochmal genauer ansehen.

    Gruß Ingo

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™