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

  • vergleichen

    • BugFix
    • 28. Oktober 2007 um 17:40
    Zitat

    Original von .::Mignon::.
    @ xeno : ich hab da doch wohl oft genug betont auch schon in vorherigen posts.

    Nun laß mal die Luft raus. Wenn sowohl Xeno als auch ich dir sagen, dass deine Erklärung NICHT ausreichend ist, brauchst du nicht anfangen zu gnatzen.
    Wir sind wahrlich keine Anfänger und versuchen aus jeder noch so vagen Problembeschreibung etwas herauszukitzeln.
    Da dies bei dir nicht das gewünschte Ergebnis bringt, wird wohl deine Problemschilderung eben nicht ausreichen.

  • vergleichen

    • BugFix
    • 28. Oktober 2007 um 15:23

    Hmm, also ich versteh nicht, was du meinst.

    Schreib es doch mal in Pseudo-Code:
    - nimm erste Zahl String1
    - zähle, wie oft diese Zahl im String1 ist
    - nun nimm erste Zahl String2
    - zähle, wie oft diese Zahl im String2 ist
    - wenn die Anzahl gleich ist, gib die größere von beiden zuerst aus

    Das mal als Bsp. Ich hab nämlich echt keinen Plan, was du nun wirklich willst. ?(

  • programm schließt erst nach 15sek

    • BugFix
    • 28. Oktober 2007 um 15:08
    Zitat

    und das sleep is ja nur da um den prozessor zu schonen.


    Bei GUIGetMsg völlig überflüssig. Diese Funktion führt selbst zu einer Lastreduzierung.
    Wie Junkie schon sagte, OnEvent-Mode - dann ist Sleep OK, aber im GUIGetMsg-Mode bremst es.

    Die Festlegung des Modus erfolgt direkt nach den Includes. GUIGetMsg-Mode ist default und braucht deshalb nicht deklariert werden.
    Ansonsten:

    [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit]
  • vergleichen

    • BugFix
    • 28. Oktober 2007 um 14:54

    die anzahl spielt keine rolle, einfach alle strings zu einem string verketten und fertig ;)

  • Switch Case <> Syntax ?

    • BugFix
    • 28. Oktober 2007 um 14:40
    Zitat

    Xenobiologist
    BugFix wieso sagst du, dass es nicht geht?

    ;) weil größer oder kleiner halt nicht geht.
    Aber:

    Zitat

    BugFix
    Bereichsabfragen hingegen sind möglich.


    Also: Case Wert1 To Wert2 :P

  • vergleichen

    • BugFix
    • 28. Oktober 2007 um 11:54

    Hier bekommst du aus allen gegebenen Zahlen
    - sortiert nach Häufigkeit (fallend)
    - bei gleicher Häufigkeit, diese sortiert nach Größe (fallend)

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    Dim $arTMP[1][2], $count=1
    $str1 = '23,45,67,23,768,45,878,34,67,34 / 34'
    $str2 = '45,23,57,34,789,46,78,345,768,89,34 / 12'

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

    $str = $str1 & $str2
    $str = StringReplace($str, '/', ',')

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

    $arSplit = StringSplit($str, ',')
    _ArrayDelete($arSplit, 0)
    For $i = 0 To UBound($arSplit) -1
    $arSplit[$i] = Number(StringStripWS($arSplit[$i], 8))
    Next
    _ArraySort($arSplit)

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

    For $i = 0 To UBound($arSplit) -1
    If $i < UBound($arSplit)-1 Then
    If $arSplit[$i] = $arSplit[$i+1] Then
    $count += 1
    Else
    ReDim $arTMP[UBound($arTMP)+1][2]
    $arTMP[UBound($arTMP)-1][1] = $arSplit[$i]
    $arTMP[UBound($arTMP)-1][0] = $count
    $count = 1
    EndIf
    Else
    If $count <> 1 Then $count += 1
    ReDim $arTMP[UBound($arTMP)+1][2]
    $arTMP[UBound($arTMP)-1][1] = $arSplit[$i]
    $arTMP[UBound($arTMP)-1][0] = $count
    $count = 1
    EndIf
    Next
    _ArraySort_2ary($arTMP, 0, 1)

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

    _ArrayDisplay($arTMP)

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

    ; $arTMP[$i][0] = Häufigkeit
    ; $arTMP[$i][1] = Wert

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

    ;----------------------------------------------------------------------------------------------------------------------
    ; Function _ArraySort_2ary(ByRef $ARRAY [, $DIM_1ST=0 [, $DESCENDING=0 [$REVERSE=False]]])
    ;
    ; Description sort an 2D-Array 2-ary
    ; BaseIndex is 0
    ; sort the whole array
    ;
    ; Parameter $ARRAY: Array to sort
    ; optional $DIM_1ST: MainSortIndex; 1st Dim. [0] or last occurence in 2nd Dim.[all other values] (default 0)
    ; optional $DESCENDING: Sort ascending[0]/descending[1] (default 0)
    ; optional $REVERSE: Sort 2nd Dimension reverse to 1st Dimension (default False)
    ;
    ; Return Succes -1 ByRef 2-ary sorted Array
    ; Failure 0 set @error
    ; @error = 1 given array is not array
    ; @error = 2 given array has only 1 dimension
    ;
    ; Requirements By using numeric entry, be sure that type is "number" for correct sort
    ; Works with any occurences in 2nd Dimension
    ;
    ; Author BugFix ([email='bugfix@autoit.de'][/email])
    ;----------------------------------------------------------------------------------------------------------------------
    Func _ArraySort_2ary(ByRef $ARRAY, $DIM_1ST=0, $DESCENDING=0, $REVERSE=False)
    If ( Not IsArray($ARRAY) ) Then
    SetError(1)
    Return 0
    EndIf
    Local $FIRST = 0, $LAST, $tmpFIRST, $sortYES = 0
    Local $UBound2nd = UBound($ARRAY,2)
    If @error = 2 Then
    SetError(2)
    Return 0
    EndIf
    If $DIM_1ST <> 0 Then $DIM_1ST = $UBound2nd-1
    Local $arTmp[1][$UBound2nd]
    _ArraySort($ARRAY,$DESCENDING,0,0,$UBound2nd,$DIM_1ST)
    If $REVERSE Then
    Switch $DESCENDING
    Case 0
    $DESCENDING = 1
    Case 1
    $DESCENDING = 0
    EndSwitch
    EndIf
    For $u = 0 To $UBound2nd-1
    For $i = 0 To UBound($ARRAY)-1
    If $sortYES = 0 Then
    If $u > 0 Then
    If ( $i < UBound($ARRAY)-1 ) And ( $ARRAY[$i][$u] = $ARRAY[$i+1][$u] ) And _
    ( $ARRAY[$i][$u-1] = $ARRAY[$i+1][$u-1] )Then
    $sortYES = 1
    $FIRST = $i
    EndIf
    Else
    If ( $i < UBound($ARRAY)-1 ) And ( $ARRAY[$i][$u] = $ARRAY[$i+1][$u] ) Then
    $sortYES = 1
    $FIRST = $i
    EndIf
    EndIf
    ElseIf $sortYES = 1 Then
    If ( $i = UBound($ARRAY)-1 ) Or ( $ARRAY[$i][$u] <> $ARRAY[$i+1][$u] ) Then
    $sortYES = 0
    $LAST = $i +1
    ReDim $arTmp[$LAST-$FIRST][$UBound2nd]
    $tmpFIRST = $FIRST
    For $k = 0 To UBound($arTmp)-1
    For $l = 0 To $UBound2nd-1
    $arTmp[$k][$l] = $ARRAY[$tmpFIRST][$l]
    Next
    $tmpFIRST += 1
    Next
    $tmpFIRST = $FIRST
    Switch $DIM_1ST
    Case 0
    If $u = $UBound2nd-1 Then
    _ArraySort($arTmp,$DESCENDING,0,0,$UBound2nd,$UBound2nd-1)
    Else
    _ArraySort($arTmp,$DESCENDING,0,0,$UBound2nd,$u+1)
    EndIf
    For $k = 0 To UBound($arTmp)-1
    For $l = 1 To $UBound2nd-1
    $ARRAY[$tmpFIRST][$l] = $arTmp[$k][$l]
    Next
    $tmpFIRST += 1
    Next
    Case $UBound2nd-1
    If $u = $UBound2nd-1 Then
    _ArraySort($arTmp,$DESCENDING,0,0,$UBound2nd,$UBound2nd-1)
    Else
    _ArraySort($arTmp,$DESCENDING,0,0,$UBound2nd,$UBound2nd-1-$u-1)
    EndIf
    For $k = 0 To UBound($arTmp)-1
    For $l = 0 To $UBound2nd-2
    $ARRAY[$tmpFIRST][$l] = $arTmp[$k][$l]
    Next
    $tmpFIRST += 1
    Next
    EndSwitch
    EndIf
    EndIf
    Next
    $sortYES = 0
    Next
    Return -1
    EndFunc ;==>_ArraySort_2ary

    [/autoit]
  • Switch Case <> Syntax ?

    • BugFix
    • 27. Oktober 2007 um 21:13

    Select verwenden, damit geht das.

  • Switch Case <> Syntax ?

    • BugFix
    • 27. Oktober 2007 um 20:58

    Das geht so nicht.
    Bei Switch wird nur eine Variable nach unterschiedlichen Werten unterschieden. Im Gegensatz zu Select, wo verschiedene Variablen abgefragt werden können. Es ist auch nicht möglich mit Switch > oder < zu vergleichen, Bereichsabfragen hingegen sind möglich.

  • vergleichen

    • BugFix
    • 27. Oktober 2007 um 17:45

    Ansatz:
    - mit StringReplace alle '/' durch ',' ersetzen
    - dann mit StringSplit($str, ',') aufdröseln
    - Array sortieren
    - dann Element für Element durchgehen
    wenn Element = voriges Element dann $tmp +=1
    sonst
    $arTemp[$i][0] = $Element
    $arTemp[$i][1] = $tmp

    Somit hast du im TempArray die Werte und deren Häufigkeit.
    Nach Häufigkeit sortieren - fertig.

    Ist jetzt nicht 100% exakt aber die Richtung stimmt. ;)

  • Router zwischenschalten

    • BugFix
    • 27. Oktober 2007 um 17:36

    Also:
    - nicht jeder WLAN-Router verfügt auch über eine Repeaterfunktion
    - die es können sind zu 90% 'Bandbreitenhalbierer', da sie ja nun abwechselnd über eine Antenne empfangen und senden müssen
    - häufig steht für die Repeaterfunktion nur das WEP-Protokoll zur Verfügung

    Wenn du die Möglichkeit hast, den 2.ten Router an den ersten anzukabeln, kannst du volle Bandbreite und Leistung abschöpfen.
    Folgende Anschlußvariante:

    Router mit DSL-Anschluß
    ||
    LAN-Ausgang
    ||
    an WAN-Eingang zweiter Router

    Konfiguration 2.ter Router:
    - Zugangsdaten: statische IP (IP des ersten Routers)
    IP-Range des zweiten Routers unterschiedlich zu erstem Router

    Das muß nicht zwingend funktionieren, einige Router sperren sich gegen solch eine Verwendung ;).

    Also Viel Glück.

  • Desktop2HTML

    • BugFix
    • 27. Oktober 2007 um 17:25

    Mal als Tipp um die Datenmenge runterzuschrauben:
    Setz nur die Werte, die sich ändern. Ansonsten vergrößerst du den Bereich für den der letzte Wert gilt. So kannst du zumindest gleichgefärbte Bereich innerhalb einer Pixelzeile zusammenfassen.

  • vergleichen

    • BugFix
    • 27. Oktober 2007 um 17:18

    Frage nicht beantwortet:
    Zahl oder Ziffer?

    Schreib doch mal was rauskommen soll!

  • FAQ

    • BugFix
    • 27. Oktober 2007 um 17:07

    Array Tutorial

    Hi,

    da doch ziemlich oft Fragen zu Arrays gestellt werden, das richtige Verständnis aber wohl nicht unbedingt entsteht, habe ich mal versucht ein Tutorial zum Thema Array zu verfassen.

    Ich habe mich für den Anfang etwas kurz gehalten, man könnte ja problemlos seitenweise zu dem Thema referieren ;).
    Es ist gedacht als Einstiegshilfe für all jene, die schon bei dem Wort Array das Grauen kriegen :D
    Daraus resultierende Fragen könnt ihr mir gerne zukommen lassen, ich werde das Tut dann um eine FAQ erweitern.

    Also viel Spaß.

    Array Tutorial

    EDIT 31.10.07

    Inhalt aktuell

    Code
    • 1-D Array
        • Deklaration
        • Wertzuweisung
        • Array als Rückgabewert einer Funktion
        • Prüfen auf Inhalt
        • Prüfen auf Existenz
        • Vergleichscode ohne/mit Array
    • 2-D Array
        • Deklaration
        • Wertzuweisung
        • 2D Array als Rückgabewert einer Funktion
    • Array statisch oder dynamisch
    Alles anzeigen
  • Button klick -> FileOpenDialog

    • BugFix
    • 27. Oktober 2007 um 13:45

    Button Klick erzeugt ein Ereignis.
    Entweder mit von dir definierter Funktion (OnEvent-Mode) oder GUIGetMsg liefert die Button-ID.
    Das wertest du aus und läßt damit FileOpenDialog öffnen.
    Die Beschriftung wechselst du mit GUICtrlSetData. Hinterlege den Status in einer Variablen, die du einfach hin- und herschaltest 0/1 und je nach Zustand deinen Text switchst.

  • GUI wie bei Steam

    • BugFix
    • 27. Oktober 2007 um 00:11
    Zitat

    Original von Xenobiologist
    Hi,

    und da ich nicht spiele musste ich erstmal gucken, was Steam überhaupt ist. :rolleyes:

    So long,

    Mega


    Ich dachte, dass ist 'ne Gebrauchsanleitung für ein Dampfbügeleisen - etwa nicht? :rofl:

    [/OT]

  • Splash - GUI Generator

    • BugFix
    • 27. Oktober 2007 um 00:08

    Sag mal bitte welche Fehler du bekommst.
    Und welches BS du verwendest.
    Ich habe XP Pro und kann keinen der von PeeTheBee benannten Fehler reproduzieren. Pee verwendet Vista.

  • Input auf Eingabe prüfen

    • BugFix
    • 26. Oktober 2007 um 21:04
    [autoit]

    If (GUICtrlRead($input) = $user) And (GUICtrlRead($input2) = $password) Then

    [/autoit]
  • Input auf Eingabe prüfen

    • BugFix
    • 26. Oktober 2007 um 20:43

    Tze Tze..
    If GUICtrlRead($input &$input2) = $user &$password Then
    Da hast du die Syntax aber gewaltig verbogen :rofl:

  • GUI wie bei Steam

    • BugFix
    • 26. Oktober 2007 um 20:38

    Am Besten finde ich: kuhl :rofl:

  • Variablen einlesen

    • BugFix
    • 26. Oktober 2007 um 10:15
    Zitat

    Original von Baruse
    na gut, aber für meinen Zweck ist das doch gar nicht brauchbar:
    ich definiere einerseits Variablen, die (für mich) einen logischen Namen haben
    (z.B. $_save für "Sicherheit")
    Mit diesen Arrays muß ich nun aber die Zeilennummer abfragen:
    $var[1][1]
    das führt aber den Sinn einer Variable ad absurdum - was nun, wenn ich zwischen zwei Variablen eine weitere einfüge?
    Dann stimmt gar nix mehr;
    ich spiel das mal weiter:
    [var]
    $_pro="Projekte"
    $_war="Wartung"
    $_tool="Tools"
    $_brow="Browser"
    $_back="Backup"
    $_graf="Grafik"
    $_save="Sicherheit"
    $_opt="Optimierung"
    $_desk="WinDesktop"
    $_short=$_war & "\" & $_pro & "\Copy_Shortcuts"
    $_temp=$_war & "\" & $_pro & "\Tempfolder"

    $var[11][1] ergibt nun den für mich nicht brauchbaren String
    $_war & "\" & $_pro & "\Tempfolder"

    Arbeite ich hingegen mit #include, dann kommt hier richtig
    Wartung\Projekte\Tempfolder heraus.

    Alles anzeigen

    Sorry, aber ich muß das mal so kraß sagen: Du hast noch nicht die Grundlagen von Programmabläufen verstanden.
    Frag dich mal, was ist eine Variable (oder frag die Hilfe, Google,Wiki, etc.) und dann lies deine obige Behauptung (..führt....ad absurdum).
    Aus einem gespeicherten Wert (wie es die INI macht) kann nur das herauskommen, was du hineinschreibst.
    Wenn du schreibst:
    $_temp=$_war & "\" & $_pro & "\Tempfolder"
    kann niemals
    Wartung\Projekte\Tempfolder
    herauskommen.

    Es sei denn du schreibst das mit INIWrite, dann wird deine Variable in die entsprechenden realen Werte umgesetzt.

    Eine Variable nimmt unterschiedliche Werte entgegen und speichert sie. Aber sie kann nicht erahnen, wie und in welcher Form du Werte vor dem Speichern ändern möchtest.

    Auch hier gilt: 90 % der Fehler entstehen 60 cm vorm Monitor

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™