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

Beiträge von BugFix

  • Verschlüsselung

    • BugFix
    • 11. Oktober 2008 um 22:50
    Zitat von Pinguin94

    Kann mir wer das mitm Array erklären ( hab ich noch nie verstanden :D). Wie wird das denn benutzt und so?


    Schau mal in meine Signatur ==> Array-Tut

  • Dringend hilfe gesucht

    • BugFix
    • 11. Oktober 2008 um 21:21
    Zitat von thastony

    doch das ist erlaubt, dafür gibts es sogar einen extra abteil ;) http://www.autoit.de/index.php?page=Board&boardID=34

    glaube jedoch nicht, dass du eine antwort finden wirst fang doch einfach an und sag wo du probleme kriegst...


    Lies bitte die Forenregeln, Bots sind hier tabu.
    Wir hatten sie früher im verlinkten Bot-Forum geführt - aber da lauter Scriptkiddys, die ihr Seelenheil im Manipulieren von Spielen sehen, plötzlich unser Forum überschwemmten, haben wir uns generell dagegen entschieden.

  • INI sortieren nach 11. Stelle

    • BugFix
    • 11. Oktober 2008 um 21:12

    Der Wunsch ist zwar sehr seltsam :D - aber auch dieser wird erfüllt:

    [autoit]

    #include <array.au3>
    #cs
    [section]
    schlüssel_A_bla=1
    schlüssel_Z_bla=2
    schlüssel_V_bla=3
    schlüssel_B_bla=4
    schlüssel_O_bla=5
    schlüssel_E_bla=6
    schlüssel_Q_bla=7
    schlüssel_R_bla=8
    schlüssel_B_bla=9
    #ce
    ;~ $arINI = IniReadSection($INI, 'section')
    ;~ liefert:
    Local $arINI[10][2] = [ _
    [9], _
    ['schlüssel_A_bla',1], _
    ['schlüssel_Z_bla',2], _
    ['schlüssel_V_bla',3], _
    ['schlüssel_B_bla',4], _
    ['schlüssel_O_bla',5], _
    ['schlüssel_E_bla',6], _
    ['schlüssel_Q_bla',7], _
    ['schlüssel_R_bla',8], _
    ['schlüssel_X_bla',9]]

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

    Local $ar2Sort[UBound($arINI)-1][4]
    For $i = 1 To UBound($arINI) -1
    $ar2Sort[$i-1][0] = StringLeft($arINI[$i][0], 10)
    $ar2Sort[$i-1][1] = StringMid($arINI[$i][0], 11, 1)
    $ar2Sort[$i-1][2] = StringRight($arINI[$i][0], StringLen($arINI[$i][0])-11)
    $ar2Sort[$i-1][3] = $arINI[$i][1]
    Next
    _ArraySort($ar2Sort, 0, 0, 0, 1)
    _ArrayDisplay($ar2Sort)
    Local $arINIWrite[UBound($ar2Sort)][2]
    For $i = 0 To UBound($ar2Sort) -1
    $arINIWrite[$i][0] = $ar2Sort[$i][0] & $ar2Sort[$i][1] & $ar2Sort[$i][2]
    $arINIWrite[$i][1] = $ar2Sort[$i][3]
    Next
    ;~ Array zurückschreiben
    ;~ IniWriteSection($INI, 'section', $arINIWrite, 0)

    [/autoit]
  • Frage zu Bitand (Variablen zusammenfassen)

    • BugFix
    • 11. Oktober 2008 um 20:04
    Zitat von nuts

    Ich möchte eine Funktion für mehrere Variablen anwenden.
    Eigentlich dachte ich mit Bitand schaffe ich es, leider funktioniert das ganze nicht.
    Im Beispiel wird die Funktion nur auf Variable 1 angewendet.


    Ich verstehe nicht, was du machen möchtest.
    Wenn du 2 Variablen in der Funktion verwenden möchtest, solltest du auch 2 übergeben.
    Bit-Operationen kannst du verwenden, wenn Konstanten eingesetzt werden, so wie das z.B. bei Styles für Controls der Fall ist.
    Mehr über Bit-Operationen: s. Tut in meiner Signatur.

  • Array für Beginner

    • BugFix
    • 11. Oktober 2008 um 17:09

    Erstmal das Array richtig deklarieren ;)

    [autoit]

    Local $beispiel[5][5] = [[00,01,02,03,04], _
    [10,11,12,13,14], _
    [20,21,22,23,24], _
    [30,31,32,33,34], _
    [40,41,42,43,44]]

    $beispiel[3][1] = 31

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

    ; 1.) ... die Ausgabe in eine MsgBox?
    MsgBox(0, '', $beispiel[3][1])

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

    ; 2.) ... den Wert von 31 z. B. auf 37 abändern?
    $beispiel[3][1] = 37

    [/autoit]
  • Schnittmengen und Differenzmengen ermitteln

    • BugFix
    • 11. Oktober 2008 um 15:32

    Hi,
    es kommt häufiger vor, dass wir 2 verschiedene Mengen haben, die untersucht werden müssen auf gemeinsame oder unterschiedliche Elemente (Vergleichen von Arrays oder Strings).
    Mit der Funktion _GetIntersection( ) werden aus 2 gegebenen Mengen,
    - die als 1D-Array oder Trennzeichenbasierter String übergeben werden
    - die Schnittmenge (gemeinsame Elemente)
    - die Differenzmenge 1 (nur in Menge 1 enthaltene Elemente) und
    - die Differenzmenge 2 (nur in Menge 2 enthaltene Elemente) ermittelt.
    - mehrfach vorkommende Elemente werden nur 1-mal ausgegeben
    - mehrfach vorkommende Elemente der Differenzmengen werden wahlweise kpl. oder 1-mal ausgegeben
    - der Vergleich ist Case-Sensitiv, also [9] <> '9'
    - Rückgabe erfolgt in einem 2D-Array ([n][0]=Schnittmenge; [n][1]=Diff1; [n][2]=Diff2)

    EDIT: Differenzmengen wahlweise komplett oder einmalig zurückgeben

    EDIT 14.10.2008
    - für $Delim wird als Standard 'Default' verwendet und damit das Trennzeichen aus Opt("GUIDataSeparatorChar")
    - gefixed: Fehler bei Verwendung von @CRLF alsTrennzeichen

    _GetIntersection( )
    [autoit]

    #include <array.au3>
    Local $1 = '1,1,2,3,3,3,4,4,5,6,7'
    Local $2[10] = ['5','5','5','8','8','9','12','12','3','1']

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

    Local $ret = _GetIntersection($1, $2, 0, ',')
    If IsArray($ret) Then _ArrayDisplay($ret)

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

    Local $ret = _GetIntersection($1, $2, 1, ',')
    If IsArray($ret) Then _ArrayDisplay($ret)

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

    ;==================================================================================================
    ; Function Name: _GetIntersection($Set1, $Set2 [, $GetAll=0 [, $Delim=Default]])
    ; Description:: Aus 2 gegebenen Mengen werden ermittelt
    ; - die Schnittmenge (Elemente, die in beiden Mengen enthalten sind)
    ; - die Differenzmenge 1 (Elemente, die nur in Menge 1 vorkommen)
    ; - die Differenzmenge 2 (Elemente, die nur in Menge 2 vorkommen)
    ; Parameter(s): $Set1 Menge 1 (1D-Array od. Trennzeichenbasierter String)
    ; $Set2 Menge 2 (1D-Array od. Trennzeichenbasierter String)
    ; optional: $GetAll 0 - mehrfach vorhandenen Elemente der Differenzmengen werden einmalig ausgegeben (Standard)
    ; 1 - mehrfach vorhandenen Elemente der Differenzmengen werden komplett ausgegeben
    ; optional: $Delim Trennzeichen für String (Standard 'Default' nutzt Zeichen aus Opt("GUIDataSeparatorChar"))
    ; Return Value(s): Erfolg 2D-Array [i][0]=Schnittmenge
    ; [i][1]=Differenzmenge 1
    ; [i][2]=Differenzmenge 2
    ; Fehler -1 @error als Array übergebene Menge ist kein 1D-Array
    ; Note: Der Vergleich ist Case-Sensitiv! - Ein Array-Element [9] ist also <> String '9'!!
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetIntersection(ByRef $Set1, ByRef $Set2, $GetAll=0, $Delim=Default)
    Local $o1 = ObjCreate("System.Collections.ArrayList")
    Local $o2 = ObjCreate("System.Collections.ArrayList")
    Local $oUnion = ObjCreate("System.Collections.ArrayList")
    Local $oDiff1 = ObjCreate("System.Collections.ArrayList")
    Local $oDiff2 = ObjCreate("System.Collections.ArrayList")
    Local $tmp, $i
    If $GetAll <> 1 Then $GetAll = 0
    If $Delim = Default Then $Delim = Opt("GUIDataSeparatorChar")
    If Not IsArray($Set1) Then
    If Not StringInStr($Set1, $Delim) Then
    $o1.Add($Set1)
    Else
    $tmp = StringSplit($Set1, $Delim, 1)
    For $i = 1 To UBound($tmp) -1
    $o1.Add($tmp[$i])
    Next
    EndIf
    Else
    If UBound($Set1, 0) > 1 Then Return SetError(1,0,-1)
    For $i = 0 To UBound($Set1) -1
    $o1.Add($Set1[$i])
    Next
    EndIf
    If Not IsArray($Set2) Then
    If Not StringInStr($Set2, $Delim) Then
    $o2.Add($Set2)
    Else
    $tmp = StringSplit($Set2, $Delim, 1)
    For $i = 1 To UBound($tmp) -1
    $o2.Add($tmp[$i])
    Next
    EndIf
    Else
    If UBound($Set2, 0) > 1 Then Return SetError(1,0,-1)
    For $i = 0 To UBound($Set2) -1
    $o2.Add($Set2[$i])
    Next
    EndIf
    For $tmp In $o1
    If $o2.Contains($tmp) And (Not $oUnion.Contains($tmp)) Then $oUnion.Add($tmp)
    Next
    For $tmp In $o2
    If $o1.Contains($tmp) And (Not $oUnion.Contains($tmp)) Then $oUnion.Add($tmp)
    Next
    For $tmp In $o1
    If $GetAll Then
    If Not $oUnion.Contains($tmp) Then $oDiff1.Add($tmp)
    Else
    If Not $oUnion.Contains($tmp) And Not $oDiff1.Contains($tmp) Then $oDiff1.Add($tmp)
    EndIf
    Next
    For $tmp In $o2
    If $GetAll Then
    If Not $oUnion.Contains($tmp) Then $oDiff2.Add($tmp)
    Else
    If Not $oUnion.Contains($tmp) And Not $oDiff2.Contains($tmp) Then $oDiff2.Add($tmp)
    EndIf
    Next
    Local $UBound[3] = [$oDiff1.Count,$oDiff2.Count,$oUnion.Count], $max = 1
    For $i = 0 To UBound($UBound) -1
    If $UBound[$i] > $max Then $max = $UBound[$i]
    Next
    Local $aOut[$max][3]
    If $oUnion.Count > 0 Then
    $i = 0
    For $tmp In $oUnion
    $aOut[$i][0] = $tmp
    $i += 1
    Next
    EndIf
    If $oDiff1.Count > 0 Then
    $i = 0
    For $tmp In $oDiff1
    $aOut[$i][1] = $tmp
    $i += 1
    Next
    EndIf
    If $oDiff2.Count > 0 Then
    $i = 0
    For $tmp In $oDiff2
    $aOut[$i][2] = $tmp
    $i += 1
    Next
    EndIf
    Return $aOut
    EndFunc ;==>_GetIntersection

    [/autoit]
  • Integer + String ?

    • BugFix
    • 10. Oktober 2008 um 22:56

    Zu deiner Frage ein klares Jein. :rofl:
    Also eigentlich Nein, aber wenn du sicherstellen möchtest, dass z.B. nur mit numerischen Werten gearbeitet wird kannst du definitiv festlegen: $var = Number($var), oder auch mit IsNUmber($var) prüfen. (analog bei den anderen Typen - s. Funktionen in der Hilfe)

  • Integer + String ?

    • BugFix
    • 10. Oktober 2008 um 22:45

    In AutoIt gibt es nur den Variablentyp Variant.
    Somit wird durch die Operation die entsprechende Variablenform automatisch gewählt.
    Wenn du eine Verkettung willst, einfach den & - Operator verwenden.

  • Windows Fenster erweitern

    • BugFix
    • 10. Oktober 2008 um 22:43

    Aichi, Aichi...
    du machst es uns nicht leicht. ;(
    Eine Variable ist ein Container, die hat immer denselben Namen - aber den Inhalt kannst du tauschen.

    [autoit]

    $Variable = 1000 ;<== jetzt enthält der Container mit dem Namen $Variable die Zahl "1000"
    MsgBox(0,'', $Variable) ;<== und hier fragst du den Inhalt des Containers mit Namen $Variable ab
    $Variable = "Das ist doch easy!" ;<== nun enthält der Container den String "Das ist doch easy!"
    ; Durch Zuweisung eines neuen Inhaltes wird der alte Inhalt aus der Variablen entfernt.

    [/autoit]

    Lies mal Grundlagenliteratur zur allgemeinen Programmierung. ;)

  • kann man umgewandelte .exe scripte wieder in AutoIT Datein umwandeln?

    • BugFix
    • 10. Oktober 2008 um 21:46
    Zitat von td1000

    ohh ha, naja also eher nich zu öffnen, danke für die infos

    aber wenn ich nen programm habe was da was macht, kann man ja das erklären und dann kann man ja die ganzen befefehle rausbekommen denk ich mal oder?


    also danke für die infos ;)

    Ich dachte, dass dir aus pee's Äußerungen klargeworden ist, welchen Standpunkt wir in Bezug auf RE vertreten. Insofern sind weitere Erörterungen über das Ob und Wie der eventuellen Möglichkeiten auch nicht erwünscht.

    [Topic Closed]

  • Client-Server-Verbindung? Oder FTP?

    • BugFix
    • 10. Oktober 2008 um 18:29
    Zitat von L3viathan2142

    Okay, ich zeige hiermit Reue... :whistling:
    Eine letzte Frage: Wie kann man so Dateien übertragen?


    Die Datei "zerhackstückeln" :D in überschaubare Pakete (so 8.192 Byte groß) und diese senden.

  • Array1(AD Auswertung) mit Array2(iniFile Section) vergleichen

    • BugFix
    • 10. Oktober 2008 um 00:17

    Also, wenn ich das jetzt richtig verstanden hab, suchst du sowas:

    [autoit]

    #include <array.au3>
    Local $arAD[6] = [ _
    'CN=UVW_GROUP,CN=Users,DC=d,DC=d,DC=d,DC=d', _
    'CN=ITSC_Helpdesk,OU=Groups,OU=ITSC,OU=_OE,DC=d,DC=d,DC=d,DC=d', _
    'CN=SophosAdministrator,OU=Users,OU=_Admins,DC=d,DC=d,DC=d,DC=d', _
    'CN=Account Operators,CN=Builtin,DC=d,DC=d,DC=d,DC=d', _
    'CN=BANKING_GROUP,CN=Builtin,DC=d,DC=d,DC=d,DC=d', _
    'CN=Administrators,CN=Builtin,DC=d,DC=d,DC=d,DC=d']
    Local $arGroupUser[4][2] = [ _ ; Auslesen INI
    [3], _
    ['UVW_GROUP','\YD$\'], _
    ['ALG_GROUP','\Daten$'], _
    ['BANKING_GROUP','\elba5']]
    Local $arMap[1]
    For $i = 0 To UBound($arAD) -1
    $arTmp = StringSplit($arAD[$i], ',')
    $search = StringTrimLeft($arTmp[1], 3)
    $indx = _ArraySearch($arGroupUser, $search)
    If Not @error Then _ArrayAdd($arMap, $arGroupUser[$indx][1])
    Next
    _ArrayDisplay($arMap) ; mit dem Array kannst du dann das Mapping ausführen

    [/autoit]
  • Programme

    • BugFix
    • 9. Oktober 2008 um 22:08

    Wichtige Kommandos?
    Welche Funktionen du verwendest hängt ganz von deinem Weg zum Ziel ab. Z.B. kannst du aus einem String Daten mit _StringBetween oder aber auch mit StringRegExp filtern. Unterschiedliche Wege, die zum selben Ziel führen können.
    Man kann nicht einfach 'losprogrammieren'. Du brauchst erst mal ein Konzept, mußt dir über den logischen Ablauf im Klaren sein. Wenn das steht, setzt du es um in Programmcode. ;)

  • Keys aus einer ini auslesen und vergleichen

    • BugFix
    • 9. Oktober 2008 um 12:28

    Bei so nettem Dankeschön, helfen wir doch immer wieder gern. :)

  • Prozentanzeigeformel für Variable Zeitangaben...

    • BugFix
    • 9. Oktober 2008 um 12:25

    Prozentrechnung ;)

    [autoit]

    #include <GUIConstants.au3>
    #include <ProgressConstants.au3>

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

    Local $SleepDiff, $SleepTime = 10 *1000

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

    $gui = GUICreate('')
    $Progress = GUICtrlCreateProgress(10,10,200,20,$PBS_SMOOTH)
    $label = GUICtrlCreateLabel('', 220, 13, 40, 17)
    GUISetState()

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

    $SleepTimer = TimerInit()
    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Or $SleepDiff = 100 Then Exit
    $SleepDiff = TimerDiff($SleepTimer)/$SleepTime*100 ; Prozentrechnung ;)
    If $SleepDiff > 100 Then $SleepDiff = 100
    GUICtrlSetData($label, StringFormat("%0.2f %%", $SleepDiff) )
    GUICtrlSetData($Progress, $SleepDiff)
    WEnd

    [/autoit]
  • Konvertertool - Ordner übergreifend sauber Dateien suchen und auflisten

    • BugFix
    • 9. Oktober 2008 um 11:46
    Zitat von fachinformadiga

    weil als ich mal alle 17,500 Dokumente "einlesen" lies hatte er ab 3997 den Pfad vorne zum zähler ins Kästchen geschrieben, anzeige fehler oder bug?!


    Weder noch :D - ist limitiert in der ArrayDisplay-Funktion durch die Variable: $iLVIAddUDFThreshold = 4000.

  • Konvertertool - Ordner übergreifend sauber Dateien suchen und auflisten

    • BugFix
    • 8. Oktober 2008 um 23:29
    Zitat von fachinformadiga

    da die Pfade von Computerprofis angelegt wurden sehen sie ca so aus: /Kunde Berater 34/Daten des Kunden, Beratung offen!/


    :P Das ist doch schon ein Widerspruch in sich. Wenn jemand solche Pfade erstellt, hat er das Recht verwirkt sich Profi zu nennen. :rofl:
    Nur, weil man etwas machen kann, heißt es noch lange nicht, dass man es auch tun muss.
    Und Sonderzeichen in Ordner- oder Dateinamen sind einfach krank. :wacko:

  • Keys aus einer ini auslesen und vergleichen

    • BugFix
    • 8. Oktober 2008 um 23:18

    Hi,
    ist nicht sehr kompliziert:

    [autoit]

    $INI = 'Dateipfad_Deiner.INI'
    $arSections = IniReadSectionNames($INI)
    $Free = ''
    For $i = 1 To UBound($arSections) -1
    If IniRead($INI, $arSections[$i], 'Available', -1) = 0 Then $Free &= $arSections[$i] & ','
    Next
    If StringLen($Free) > 0 Then
    $Free = StringTrimRight($Free, 1)
    Else
    $Free = 'Keine'
    EndIf
    MsgBox(0, '', 'Freie Speicherplätze: ' & $Free)

    [/autoit]
  • GUICtrlCreateListView aktualisieren / oder Inhalt löschen

    • BugFix
    • 8. Oktober 2008 um 23:04

    Es gibt kein "altes" oder "neues" Listview-Control. Es wird nur unterschiedlich generiert.
    Die LV-Form in der UDF gibt ein Handle zurück - alle weiteren Funktionen der UDF erfordern dieses.
    Um alle UDF-Funktionen mit dem "alten" LV nutzen zu können:

    [autoit]

    $ListView = GUICtrlCreateListView(....) ; gibt ID zurück
    $hListView = GUICtrlGetHandle($ListView) ; gibt das Handle zurück

    [/autoit]


    Ich handhabe das grundsätzlich so, und hatte bisher keinerlei LV-Probleme.

  • Wörter zählen

    • BugFix
    • 7. Oktober 2008 um 23:41

    Du hast ja soooo recht :D - an die Negation durch Großbuchstaben denke ich nie, bin irgendwie auf die Kleinen orientiert. :rofl:

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™