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

  • Bilderinformationen auslesen

    • BugFix
    • 24. Dezember 2010 um 09:45
    Zitat von mipez

    "Bildergröße entweder nach Höhe oder nach Breite"


    Erklärt immer noch nicht die Quelle!
    Was soll diese Ignoranz? Wenn sich schon jemand die Mühe macht und überhaupt auf deine wischi-waschi-Fragestellung eingeht, hat er es auch verdient, dass seine Rückfragen beantwortet werden.

    In wörtlicher Auslegung deiner Fragestellung würde ich antworten:
    Nimm es von der Wand und miss Höhe und Breite mit einem Lineal aus!

  • Rechenschritte verursachen Rundungsfehler

    • BugFix
    • 24. Dezember 2010 um 00:17

    Wenn es nur am Auffangen der Rundungsdifferenzen liegt - berechne die möglichen Produktmengen, wie im Bsp.
    Hoffe, du hast kein Problem mit der Verwendung von Arrays ;). Das verkürzt den Code deutlich.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    ; Kosten je Komponente [$Komp_A, $Komp_B, $Komp_C, $Komp_D]
    Local Const $aKomp[4] = [3,2,5,1]

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

    ; Anteil Komponenten je Produkt [Produkt1..3][$Komp_A, $Komp_B, $Komp_C, $Komp_D]
    Local Const $aProds[3][4] = [[2,1,5,3],[3,2,4,2],[1,1,4,3]]

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

    ; Array für mgl. Produktanzahl und Reste der Komponenten
    Enum $prod1, $prod2, $prod3
    Local $aAnzProd[3], $aReste[4]

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

    ; Bsp:
    ; Kunde hat 15*A, 12*B, 8*C, 8*D
    Local $aVorrat[4] = [15,12,8,8]
    Local $aTmp[4], $n, $diff

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

    ; mögliche Anzahl je Produkt aus vorhandenem Material ermitteln
    For $i = $prod1 To $prod3
    For $j = 0 To 3
    $n = Floor( $aVorrat[$j] / $aProds[$i][$j] )
    $diff = Mod( $aVorrat[$j] / $aProds[$i][$j] )
    If Floor( ($diff + $aReste[$j] + $aVorrat[$j]) / $aProds[$i][$j] ) <> $n Then
    $n = Floor( ($diff + $aReste[$j] + $aVorrat[$j]) / $aProds[$i][$j] )
    $diff = Mod( ($diff + $aReste[$j] + $aVorrat[$j]) / $aProds[$i][$j] )
    $aReste[$j] = $diff
    EndIf
    $aTmp[$j] = $n
    Next
    $aAnzProd[$i] = _ArrayMin($aTmp)
    Next

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

    #cs
    Die restliche Logik ist dir ja klar. Durch diese Methode der Anzahlermittlung
    gehen keine Rundungsmengen verloren.
    #ce

    [/autoit]
  • Rechenschritte verursachen Rundungsfehler

    • BugFix
    • 23. Dezember 2010 um 21:55

    Na dann verwende Int(Wert) (oder Floor(Wert)) um an die Ganzzahl zu kommen, speichere den Rest in einer Variablen und addiere bei jeweiliger Verwendung Reste hinzu. Wobei bei jeder Berechnung zu prüfen ist, ob die Restsumme in einer neuen Berechnung verwertet werden kann. (z.B. Restsumme ist 0,6 und neue Berechnung verlangt 5,4 ==> dann kannst du die 0,4 aus der Restsumme verwerten)

  • Minecraft Programm

    • BugFix
    • 23. Dezember 2010 um 16:55

    Ich gebe den Thread frei.
    Meines Erachtens eine reine Automatisierung, die keinerlei Vorteile im Spiel verschafft. Also eigentlich eine Anwendung von AutoIt ganz in den ursprünglichen Wurzeln von AutoIt.

  • Diskussion über Anfangsmoderation

    • BugFix
    • 23. Dezember 2010 um 14:54
    Zitat von anno2008

    Die Zahl der User die eigentlich gebleiben wären sinkt.


    Das sehe ich nicht so.
    Aktive User sind es ca. 200. Ich checke das in Intervallen, indem ich die User mit > 100 Posts anschaue und wer davon innerhalb der letzten 3 Monate auch online war. Es pendelt immer um 200. Und das sind die Leute, mit denen wir auch gern zusammen arbeiten. :rolleyes:

  • Diskussion über Anfangsmoderation

    • BugFix
    • 23. Dezember 2010 um 13:21

    Es passiert nun das, was ich befürchtet habe: Die räudige Bot-Diskussion kommt wieder hoch. :wacko:
    Es ist schwierig festzustellen, ob ein Thread Botpotential hat oder nicht. Ich versuche da recht moderat mit umzugehen und gebe Themen frei, solange sie nicht eineindeutig gegen die Regeln verstoßen. Sollte sich später trotzdem etwas in die falsche Richtung bewegen, wird dann eingegriffen.
    Da wir alle individuell verschieden sind, können unsere Standpunkte und Verfahrensweisen durchaus auch differenzieren. Das sehe ich jedoch nicht als so dramatisch an. Mag auch ab und an etwas Ärger aufkommen über einige Entscheidungen.

    Eines sollte aber immer bedacht werden:
    Eine von vornherein klare, sauber formulierte Fragestellung schützt auch vor Fehlinterpretationen unsererseits!

    Ich bitte auch all jene, die sich evtl. ungerecht behandelt fühlen, auch mal bei Mods/Admins nachzufragen ob das denn so OK war. Keiner von uns ist vor Fehlentscheidungen gewappnet. Und wir brechen uns keinen dabei ab, dieses auch zuzugeben, wenn dem so ist.
    Das bezieht sich allerdings nicht auf Entscheidungen, die klare Regelverstöße als Hintergrund haben und auch als solche deutlich erkennbar sind. Wer dann nochmal nachfragt ist echt zu heiß gebadet. ;)

  • Rechenschritte verursachen Rundungsfehler

    • BugFix
    • 23. Dezember 2010 um 12:17

    Meiner Meinung nach ist es entscheidend, in welcher Einheit a,b,c,d vorliegen (kg, m², m³, etc.). Denn von diesen Einheiten ausgehend kannst du kleinste Teilmengen festlegen und diese zur Berechnung heranziehen. Mit reinen Prozenten rechnen ist nicht sehr sinnvoll.
    Du gehst dann denn umgekehrten Weg von einer Kombination möglicher Teilmengen zur gewünschten Gesamtmenge. Somit bleiben Fehlmengen durch Rundungsdifferenzen außen vor.

  • Diskussion über Anfangsmoderation

    • BugFix
    • 23. Dezember 2010 um 12:05

    Ich halte das System für sehr sinnvoll. Wie Pee bereits sagte, ist vorab filtern effizienter als hinterher zu säubern.
    Vielleicht ist es technisch umsetzbar, dass diese Beiträge einen Status "in Moderation" erhalten, der für alle ersichtlich ist. Dann ist dem Threadersteller klar, dass dort noch drübergeschaut werden muß.
    Ich versuche immer, wenn ich neue Beiträge zur Moderation sehe, dieses auch zügig zu erledigen. Und ich denke, das tun alle Mods und PU's. Insofern sehe ich keinen Handlungsbedarf bezüglich Fristen oder Anzahl Threads.

    P.S. Dass wir zur Zeit recht wenig Bot-Probleme haben dürfte durchaus ein Erfolg dieses Systems sein.

  • Eingaben sperren bis auf Inputbox

    • BugFix
    • 22. Dezember 2010 um 16:44

    Hier eine Lösung. Solange das Fenster aktiv ist funktioniert die Tastatur. Will man tricksen und z.B. mit Alt+Tab rausspringen, so geht das - aber hinterher ist keine Tastatureingabe mehr möglich. :D
    Die Maus ist im Eingabefenster gefangen. Durch den Popup-Style läßt sich dieses auch nicht verschieben.

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>

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

    OnAutoItExitRegister('OnAutoItExit')

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

    Opt('MustDeclareVars', 1)
    Global $hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
    Global $hmod = _WinAPI_GetModuleHandle(0)
    Global $hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)
    Global $active = False

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

    Global $gui
    _Main()

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

    Func _Main()
    Local $input, $btn, $pos, $sRead, $sPass = 'Passwort'
    $gui = GUICreate('Passwort Eingabe', 180, 70, -1, -1, $WS_POPUP)
    $input = GUICtrlCreateInput('', 10, 10, 160, 20)
    $btn = GUICtrlCreateButton('OK', 10, 40, 40, 20)
    GUISetState()

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

    $pos = WinGetPos($gui)
    _MouseTrap($pos[0], $pos[1], $pos[0] + $pos[2], $pos[1] + $pos[3])

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

    While 1
    If BitAND(WinGetState($gui), 8) Then
    $active = True
    Else
    $active = False
    EndIf
    Switch GUIGetMsg()
    Case $btn
    $sRead = GUICtrlRead($input)
    If $sRead == $sPass Then
    _Exit()
    Else
    GUICtrlSetData($input, '')
    EndIf
    EndSwitch
    WEnd
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

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

    ;===========================================================
    ; callback function
    ;===========================================================
    Func _KeyProc($nCode, $wParam, $lParam)
    If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    If Not $active Then Return -1 ; Tastatureingabe außerhalb Input unmöglich
    Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndFunc

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

    Func OnAutoItExit()
    _WinAPI_UnhookWindowsHookEx($hHook)
    DllCallbackFree($hStub_KeyProc)
    EndFunc

    [/autoit]
  • Diskussion über Anfangsmoderation

    • BugFix
    • 22. Dezember 2010 um 14:11

    Das ist ganz simpel:
    - Ist dein Thread "sauber" (kein Verstoß gegen unsere Forenregeln), wird er aktiviert.
    - Verstößt du damit gegen die Regeln, wird der Thread gelöscht und du bekommst (je nach Grad des Verstoßes) nur 'ne PN oder was auf die Ohren (Verwarnung).
    "Regeln kenne ich nicht" - lassen wir nicht gelten. Denen stimmt jeder bei der Anmeldung zu.

    Erwarte aber nicht, dass wir hier nur auf der Lauer liegen um Threads freizuschalten. ;) Es kann durchaus auch mal etwas dauern. Etwas Geduld ist also nicht die schlechteste Lösung. ;)

  • Excel Feld leer oder nicht?

    • BugFix
    • 22. Dezember 2010 um 13:12

    Mal aus der Hüfte, ungetestet:

    Spoiler anzeigen
    [autoit]

    Func _WriteTimeToCell($sExcelPath, $sDate, $iTime)
    If StringRight($sExcelPath, 4) <> '.xls' Then $sPath &= '.xls'
    If Not FileExists($sExcelPath) Then Return SetError(1,0,0) ; Datei existiert nicht
    Local $oExcel = ObjGet('', "Excel.Application"), $fCreate = False, $address, $value
    If @error Then
    $oExcel = ObjCreate("Excel.Application")
    $fCreate = True
    EndIf
    With $oExcel
    .Visible = 0
    .Workbooks.Open($sExcelPath)
    $match = .ActiveWorkBook.Sheets(1).Range('A:A').Find($sDate)
    .Application.DisplayAlerts = False
    If Not IsObj($match) Then
    If $fCreate Then
    .Application.Quit
    Else
    .ActiveWorkBook.Close
    .Application.DisplayAlerts = True
    EndIf
    Return SetError(2,0,0) ; $sDate nicht gefunden
    EndIf
    $address = $match.Address(False, False)
    $value = .ActiveWorkBook.Sheets(1).Range($address).Offset(0, 1).Value
    .ActiveWorkBook.Sheets(1).Range($address).Offset(0, 1).Value = $value +$iTime
    .ActiveWorkBook.Save
    If $fCreate Then
    .Application.Quit
    Else
    .ActiveWorkBook.Close
    .Application.DisplayAlerts = True
    EndIf
    EndWith
    Return 1
    EndFunc

    [/autoit]
  • Excel Feld leer oder nicht?

    • BugFix
    • 21. Dezember 2010 um 18:00
    Zitat von danielsan85

    Nicht wenn sein skript das Feld anklickt und er garnicht dabei ist.


    :wacko: Ein Skript, das Excel-Zellen anklickt?! Das wäre ja, als ob man sich die Schuhe mit 'nem Spannkloben zubindet. :rofl:
    Sag lieber mal, was es überhaupt werden soll, dann läßt sich auch sinnvolle Hilfestellung geben.

  • Excel Sheet - very hidden setzen

    • BugFix
    • 20. Dezember 2010 um 23:17

    Hi,
    ich versuche krampfhaft einem Excel-Sheet die Property:
    Visible = xlSheetVeryHidden
    zu verpassen. Doch leider ohne Erfolg. Über das VBA-Interface (Alt+F11) kann ich das tadellos ausführen.
    Jemand 'ne Idee?

    Spoiler anzeigen
    [autoit]

    $oExcel = ObjCreate("Excel.Application")
    With $oExcel
    .SheetsInNewWorkbook = 1
    .Visible = 1
    .WorkBooks.Add
    .Workbooks.Sheets(1).Visible = 2 ; funzt nicht ($xlSheetVeryHidden = 2)
    EndWith

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

    ; auch diese Version tuts nicht
    $oExcel = ObjCreate("Excel.Application")
    With $oExcel
    .SheetsInNewWorkbook = 1
    .Visible = 1
    .WorkBooks.Add.Activate
    .ActiveWorkbook.Sheets(1).Visible = 2 ; funzt nicht ($xlSheetVeryHidden = 2)
    EndWith

    [/autoit]
  • Chatprogramm: Elephender Beta 1

    • BugFix
    • 18. Dezember 2010 um 15:53
    Zitat von deung

    Jeder der den Quellcode haben möchte kann sich bei mir Melden...


    :rofl: Du hast ja eine abartige Vorstellung von Open Source. Vielleicht verlangst du dann noch eine Versandkostenpauschale. :D
    Ich rate dir mal dringend, die Definition von Open Source nachzulesen.

  • mehrdimensionalen array vergleichen

    • BugFix
    • 17. Dezember 2010 um 17:49

    Verwende doch ein Wertesystem, das jeder Kombination einen fixen Wert zuweist. Dann brauchst du nur diesen einen Wert abgleichen.

  • Project Euler Mathe Rätsel durch Algorithmen lösen

    • BugFix
    • 17. Dezember 2010 um 14:53

    Ich glaub, ich hab ein generelles Verständnisproblem bei einigen Fragestellungen. Das ist teilweise so wischiwaschi formuliert, dass man mehrere Rechnungswege testen muß um dann herauszufinden, welches die Aufgabe war. :D
    (Hab 9 ausgelassen - mag keine Geometrie ;) und bin grad bei 11)

    Zitat

    dass man z.b nr 9 auch wunderbar durch nachdenken hinbekommt

    Das ist eigentlich nicht Sinn der Sache. Du sollst ja einen Alghoritmus finden, mit dem die Aufgabe rechnerisch gelöst wird. "Nachdenken" im Sinne von im Kopf Ergebnisvarianten kombinieren, kann zwar auch zum Ziel führen, liegt aber nicht im Sinne des Erfinders. ;)

  • Project Euler Mathe Rätsel durch Algorithmen lösen

    • BugFix
    • 17. Dezember 2010 um 12:53
    Zitat von bernd670

    Es geht wohl eher um die geraden Zahlen der Fibonacci-Reihe!


    Das kommt aber auch nicht hin. Dann würde die Aufgabe lauten: Summe aller geradzahligen Fibonacci-Elemente, wobei die Summe 4.000.000 nicht überschreiten darf.
    Geradzahlig Elemente mit Summe < 4 Mio sind: 2,8,34,144,610,2584,10946,46368,196418,832040 = 1.089.154 (nä. geradzahlig wäre 3.524.578 - somit drüber)
    Das Ergebnis wird aber als falsch gewertet.

    Edit: Die Fragestellung ist absolut mißverständlich. Da die Briten wohl zu faul sind Kommata zu verwenden, kann das "which" sowohl auf die Summe als auch auf das Einzelelement bezogen werden. Gemeint ist in diesem Fall das Einzelelement.
    Wie sagte Asterix so treffend: "Die spinnen, die Briten." :rofl:

  • Project Euler Mathe Rätsel durch Algorithmen lösen

    • BugFix
    • 17. Dezember 2010 um 09:35

    Ja, ist nicht schlecht. Ich finde aber z.B. schon Aufgabe 2 recht spaßig. Soll ich rechnen oder schätzen? "even-valued terms" würde ich als: "noch geschätzte Ausdrücke" übersetzen. Somit finde ich in dort keine sinnvolle Fragestellung. ?(

  • Label automatisch vergrößern

    • BugFix
    • 16. Dezember 2010 um 00:14

    Die Textgröße kannst du genau bestimmen mit meinem Tool TextMeter.
    Aber einfacher ist es das Label von vornherein in der Größe des längsten Eintrages zu erstellen. Den Platz mußt du sowieso frei halten, wenn du die Größe dynamisch anpassen willst.

  • SB Sprüche

    • BugFix
    • 12. Dezember 2010 um 18:13

    Das hier ist der beste Beweis: "Internet vergisst nichts" :D
    Kaum lass ich mal unkontrollierte Gedanken meine Lippen passieren, wird gleich alles dokumentiert. :wacko:

    Erweiterung für die Anmeldehinweise bei neuen Usern empfohlen:

    Code
    "Du hast das Recht in der SB zu schweigen. 
    Solltest du auf dieses Recht verzichten kann und wird alles, 
    was du dort von dir gibst, mit Sicherheit gegen dich verwendet werden."

    :rofl:

    Sammel mal schön weiter. :thumbup:

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™