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

  • Dateien auslesen und an Excel übergeben

    • BugFix
    • 25. Mai 2011 um 17:29
    Zitat von Xethria

    War ich schon so lange nicht mehr da? Die Hilfe war auch mal besser.


    He he ;) nur nicht zu Sachen hinreißen lassen, die du später bereust. :P
    Du hast doch sicher schon bemerkt, dass 90% der Excel-Fragen von mir beantwortet werden, anscheinend verlassen sich da auch die andren drauf. :D
    Und ich habe deinen Thread erst heute auf dem Schirm (manchmal hat man auch noch andere Dinge zu tun :whistling: ).
    Ich werde es mir jetzt mal anschauen. Ich hoffe du kannst solange noch aushalten...


    So, habs dir mal zusammengeschossen ;)

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Excel.au3>
    Local $pathTXT = "PFAD_TXT_DATEI"
    Local $a
    _FileReadToArray($pathTXT, $a)

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

    Local $pathXLS = "PFAD_EXCEL_DATEI"
    Local $oExcel = _ExcelBookNew(0) ; oder _ExcelBookOpen(), falls vorhanden

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

    For $i = 1 To $a[0]
    Select
    Case StringInStr($a[$i], 'Hostname:', 1)
    $ret = StringRegExp($a[$i], '(?:: )(\w+)', 1)
    $oExcel.Range("A1").Value = $ret[0]
    Case StringInStr($a[$i], 'Betriebssystemname:', 1)
    $ret = StringRegExp($a[$i], '(?:: )([\w ]+)', 1)
    $oExcel.Range("B1").Value = $ret[0]
    Case StringInStr($a[$i], 'Ursprüngliches Installationsdatum:', 1)
    $ret = StringRegExp($a[$i], '(?:: )(\d{2}\.\d{2}\.\d{4}, \d{2}:\d{2}:\d{2})', 1)
    $oExcel.Range("C1").Value = $ret[0]
    Case StringInStr($a[$i], 'Systemhersteller:', 1)
    $ret = StringRegExp($a[$i], '(?:: )([\w .-]+)', 1)
    $oExcel.Range("D1").Value = $ret[0]
    Case StringInStr($a[$i], 'Systemmodell:', 1)
    $ret = StringRegExp($a[$i], '(?:: )([\w .-]+)', 1)
    $oExcel.Range("E1").Value = $ret[0]
    ExitLoop
    Case Else
    ContinueLoop
    EndSelect
    Next

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

    _ExcelBookSaveAs($oExcel, $pathXLS) ; oder _ExcelBookSave($oExcel), falls Datei vorhanden
    _ExcelBookClose($oExcel)

    [/autoit]
  • IsNumber mit String, der nur Zahlen enthält

    • BugFix
    • 25. Mai 2011 um 14:36

    Prüfe mit

    [autoit]

    IsNumber(Number($variable))

    [/autoit]

    - allerdings ist Number fehlerhaft, deshalb besser mit _Number() arbeiten.

  • FileGetSize überschreibt alten Wert!

    • BugFix
    • 24. Mai 2011 um 23:17

    Ich kann aus der Funktion nicht den Sinn deiner If-Statements entnehmen, deshalb sind diese jetzt evtl. nicht korrekt.
    Aber es kam ja nur drauf an das Return einzusetzen

    [autoit]


    $Rueckgabe = _ende() ; Variable $Rueckgabe nimmt den Wert auf

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

    func _ende()
    $groese = FileGetSize($Zeichen & ".txt")/1048576
    If $groese > 5 Then
    $Zeichen += 1
    if $Zeichen = 21 Then $Zeichen = 8
    $groese += 5
    Return $groese
    endif
    EndFunc

    [/autoit]
  • FileGetSize überschreibt alten Wert!

    • BugFix
    • 24. Mai 2011 um 23:06

    Gib das Ergebnis aus der Funktion mit: Return $groesse zurück und fange diese Rückgabe in einer Variablen auf oder schreib es in eine INI-Datei, oder, oder... was du willst. ;)

  • Sructures

    • BugFix
    • 23. Mai 2011 um 23:00
    Zitat von Omasgehstock14

    Aber ich verstehe nicht ganz was du meins autoit versteht serwohl datentypen wie UINT oder INT, UINT64. warum soll ich dann alles in long unändern.

    Sollst du nicht ändern, ich habe einfach die Struktur, wie gefunden, kopiert.

    Zitat von Omasgehstock14

    Und kann ich so die EFLStruct in die INSTRTYPE -Struct ablegen.??

    Das geht so:

    [autoit]

    $tEFLStruct = DllStructCreate( _
    'BYTE OF_;' & _
    'BYTE SF_;' & _
    'BYTE ZF_;' & _
    'BYTE AF_;' & _
    'BYTE PF_;' & _
    'BYTE CF_;' & _
    'BYTE TF_;' & _
    'BYTE IF_;' & _
    'BYTE DF_;' & _
    'BYTE NT_;' & _
    'BYTE RF_;' & _
    'BYTE alignment;')
    $pEFLStruct = DllStructGetPtr($tEFLStruct)

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

    $tINSTRTYPE = DllStructCreate( _
    'long Category;' & _
    'long Opcode;' & _
    'char Mnemonic[16];' & _
    'long BranchType;' & _
    $pEFLStruct & ';' & _
    'long AddrValue;' & _
    'long Immediat;' & _
    'long ImplicitModifiedRegs;')

    [/autoit]
  • Buttons Färben ohne Control ID

    • BugFix
    • 23. Mai 2011 um 22:39

    Raupi lag eigentlich richtig, guckst du: http://www.autoitscript.com/forum/topic/10…post__p__762592

  • Sructures

    • BugFix
    • 23. Mai 2011 um 21:53

    Du kannst nur die Typen verwenden, die Autoit auch zuläßt (s. Hilfe zu DllStructureCreate - oder mein Tut). Du mußt also Datentypen aufbröseln, bis sie in Autoit abgebildet werden können.
    INSTRTYPE sieht ja so aus:
    struct INSTRTYPE {
    long Category;
    long Opcode;
    char Mnemonic[16];
    long BranchType;
    EFLStruct Flags;
    long long AddrValue;
    long long Immediat;
    long ImplicitModifiedRegs;
    };
    Da mußt du dann noch EFLStruct zerlegen:
    struct EFLStruct {
    BYTE OF_;
    BYTE SF_;
    BYTE ZF_;
    BYTE AF_;
    BYTE PF_;
    BYTE CF_;
    BYTE TF_;
    BYTE IF_;
    BYTE DF_;
    BYTE NT_;
    BYTE RF_;
    BYTE alignment;
    };
    ;)

  • externe Verschlüsselung einbinden

    • BugFix
    • 23. Mai 2011 um 21:09
    Zitat von msp-holzwurm

    Flippen die vom TÜV schon aus, wenn die Autoit hören ???


    Das kann dir völlig latte sein. Der TÜV hat da keinerlei Kriterien festzulegen. Zumindest vermute ich aus deinem Text, dass es sich hier um Qualitätsmanagement handelt. Die Regeln dafür legst du in deinem QM-Handbuch selbst fest. Der TÜV prüft nur, ob du dich im Betrieb auch an deine Vorgaben hältst. Natürlich gibt es auch allgemeingültige Vorgaben, aber die beziehen sich nicht auf solche detaillierten Probleme.

  • AutoIt 3.3.7.xx Beta verfügbar

    • BugFix
    • 23. Mai 2011 um 20:06

    Was mich freut:

    Zitat

    - Fixed #1517: _GUICtrlListView_simpleSort with checkbox.

    Aber gleichzeitig ärgert mich dass wiedermal ItemParam vergessen wurde. Habe es zwar schonmal mit Lösung vorgeschlagen, aber damit es nun auch mal Beachtung findet habe ich ein Ticket erstellt. Vielleicht ist dann ja in der nächsten Stable eine SimpleSort, die alle enthaltenen Infos mitsortiert.

  • Code effizienter gestalten

    • BugFix
    • 23. Mai 2011 um 12:41

    Habs nur grob überschaut, aber übergib doch mal an meine Schnittmengenfunktion das Array zweimal. Könnte auf das hinauslaufen, was du möchtest.

  • Probleme mit WinWaitActive

    • BugFix
    • 23. Mai 2011 um 12:35
    Zitat von oxi

    Oder habe ich Dich falsch verstanden ?


    Absolut, KEINE Option sollst du setzen, dann gilt standardmäßig, dass der exakte Fenstertitel verlangt wird.
    Ob ein prüfbarer Text enthalten ist, kannst du mit dem Autoit-Window-Infotool herausfinden.

  • For-Schleife bei Fehler überspringen

    • BugFix
    • 23. Mai 2011 um 12:31
    Zitat von Aquaplant

    Bisher habe ich leider noch keine Möglichkeit entdeckt (die nicht mit enormer Arbeit verbunden ist).


    Nur ein Befehl:

    [autoit]

    ContinueLoop

    [/autoit]

    ;)

  • Probleme mit WinWaitActive

    • BugFix
    • 23. Mai 2011 um 09:37
    Zitat von oxi

    ) prüfen der Text des Fensters -> geht nicht ( bekomme immer Timeout)


    Tja, das liegt daran, dass "Möchten Sie die Änderungen an Unbenannt speichern?" KEIN Text des Fensters ist. Auch wenn es blöd klingt, dieser Text gehört nicht zum Fenster und ist deshalb nicht nutzbar. Dieses Fenster enthält als einzigen Text die Inhalte der Controls:
    &Speichern
    &Nicht speichern
    Abbrechen
    Wenn du danach in Verbindung mit dem Fensternamen (Editor) fragst, sollte es klappen.
    Du kannst allerdings den Text auch ganz weglassen (Leerstring verwenden), wenn du nach dem genauen Fensternamen fragst, also keine Opt() für 'WinTitleMatchMode' setzt. Denn diese Abfrage hat den Fensternamen "Editor" im Gegensatz zum Notepad selbst, das "Unbenannt - Editor" heißt.

  • Kalender

    • BugFix
    • 22. Mai 2011 um 16:41

    Ändern der Hintergrundfarbe ist meines Wissens nicht möglich. Du kannst aber Tage markieren, indem sie fett geschrieben werden.
    Standardmäßig ist das recht umständlich, da eine Maske erstellt werden muß, die die markierten Tage darstellt. Deshalb habe ich dazu die entsprechende Funktion (_GUICtrlMonthCal_SetDayState) umgearbeitet:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiMonthCal.au3>
    #include <WindowsConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    GUICreate("Month Calendar Set Day State", 400, 300)
    Local $hMonthCal = GUICtrlCreateMonthCal("", 4, 4, -1, -1, BitOR($WS_BORDER, $MCS_DAYSTATE), 0x00000000)

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

    __GUICtrlMonthCal_SetDayState($hMonthCal, '1,5,6,8,12,22,23,24,30', ',')

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

    GUISetState()

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

    Sleep(1500)
    __GUICtrlMonthCal_SetDayState($hMonthCal, '1,2,3,12,13,14,29,30', ',')
    Sleep(1500)
    __GUICtrlMonthCal_SetDayState($hMonthCal, '11', ',')
    Sleep(1500)
    __GUICtrlMonthCal_SetDayState($hMonthCal, '') ; unset all

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

    ; same with array
    Sleep(1500)
    Local $a[9] = [1,5,6,8,12,22,23,24,30]
    __GUICtrlMonthCal_SetDayState($hMonthCal, $a)

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

    Sleep(1500)
    Local $b[8] = [1,2,3,12,13,14,29,30]
    __GUICtrlMonthCal_SetDayState($hMonthCal, $b)

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

    Sleep(1500)
    Local $c[1] = [11]
    __GUICtrlMonthCal_SetDayState($hMonthCal, $c)

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

    Sleep(1500)
    Local $d[1] = ['']
    __GUICtrlMonthCal_SetDayState($hMonthCal, $d)

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: __GUICtrlMonthCal_SetDayState
    ; Description ...: Sets the day states for all months that are currently visible
    ; Syntax.........: _GUICtrlMonthCal_SetDayState($hWnd, $sDays [, $sDelim = Default])
    ; Parameters ....: $hWnd - Handle to control
    ; $s_a_Days - An delimited string or an array of days, whose state to set, with '' unset all
    ; $sDelim - Delimiter in $sDays, by default char from Opt('GUIDataSeparatorChar')
    ; Return values .: Success - True
    ; Failure - False
    ; Author ........: Paul Campbell (PaulIA)
    ; Modified.......: Gary Frost (gafrost), BugFix
    ; Remarks .......: You must create the calendar control with the $MCS_DAYSTATE style if you want to use this function
    ; Related .......:
    ; Link ..........:
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func __GUICtrlMonthCal_SetDayState($hWnd, $s_a_Days, $sDelim = Default)
    If $Debug_MC Then __UDF_ValidateClassName($hWnd, $__MONTHCALCONSTANT_ClassName)
    Local $iRet

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

    Local $iMasks = _GUICtrlMonthCal_GetMonthRangeSpan($hWnd, True)
    Local $tBuffer = DllStructCreate("int;int;int")
    Local $pBuffer = DllStructGetPtr($tBuffer)
    ;==================================================== BugFix changes:
    Local $aMasks[$iMasks]
    If $sDelim = Default Then $sDelim = Opt('GUIDataSeparatorChar')
    If (( Not IsArray($s_a_Days) ) And ($s_a_Days = '') ) Or _
    (( IsArray($s_a_Days) ) And ($s_a_Days[0] = '') ) Then
    $aMasks[1] = '0x0'
    Else
    Local $aDays
    If (Not IsArray($s_a_Days)) Then
    $aDays = StringSplit($s_a_Days, $sDelim, 2)
    Else
    $aDays = $s_a_Days
    EndIf
    Local $aHex[8] = [0,0,0,0,0,0,0,0], $pos, $mask = ''
    For $i = 0 To UBound($aDays) -1
    Select
    Case $aDays[$i] < 5
    $pos = 0
    Case $aDays[$i] < 9
    $pos = 1
    Case $aDays[$i] < 13
    $pos = 2
    Case $aDays[$i] < 17
    $pos = 3
    Case $aDays[$i] < 21
    $pos = 4
    Case $aDays[$i] < 25
    $pos = 5
    Case $aDays[$i] < 29
    $pos = 6
    Case Else
    $pos = 7
    EndSelect
    $aDays[$i] -= $pos * 4
    $aHex[$pos] += 2 ^ ($aDays[$i]-1)
    Next
    For $i = 0 To UBound($aHex) -1
    $mask = Hex($aHex[$i], 1) & $mask
    Next
    $aMasks[1] = '0x' & $mask
    EndIf
    ;====================================================
    For $iI = 0 To $iMasks - 1
    DllStructSetData($tBuffer, $iI + 1, $aMasks[$iI])
    Next
    If IsHWnd($hWnd) Then
    If _WinAPI_InProcess($hWnd, $_mc_ghMCLastWnd) Then
    $iRet = _SendMessage($hWnd, $MCM_SETDAYSTATE, $iMasks, $pBuffer, 0, "wparam", "ptr")
    Else
    Local $iBuffer = DllStructGetSize($tBuffer)
    Local $tMemMap
    Local $pMemory = _MemInit($hWnd, $iBuffer, $tMemMap)
    _MemWrite($tMemMap, $pBuffer)
    $iRet = _SendMessage($hWnd, $MCM_SETDAYSTATE, $iMasks, $pMemory, 0, "wparam", "ptr")
    _MemFree($tMemMap)
    EndIf
    Else
    $iRet = GUICtrlSendMsg($hWnd, $MCM_SETDAYSTATE, $iMasks, $pBuffer)
    EndIf
    Return $iRet <> 0
    EndFunc ;==>__GUICtrlMonthCal_SetDayState

    [/autoit]
  • TimeStamp - erweitert zu kleiner Versionsverwaltung für (.au3 und .lua) alle Typen

    • BugFix
    • 21. Mai 2011 um 18:12
    Zitat von Paule

    Ich habe in der SciteUser.properties eine Variable AutoInc=1 gesetzt.


    So rum kann man es auch lösen. ;)
    Es gibt ja grundsätzlich 2 sinnvolle Wege:
    1. Sichern, wenn ich es bewußt will und dieses per Marker mitteilen
    2. Immer sichern und nur, wenn ich es nicht will einen Marker dafür setzen (z.B. Debugzeile eingefügt)

    Ich hatte mich nun für Weg 1 entschieden, aber natürlich ist dein Gedanke genauso nützlich, wobei ich auf jeden Fall mir die Möglichkeit einbauen würde, dass nicht gesichert wird.

  • Zufall Script

    • BugFix
    • 21. Mai 2011 um 09:58

    Ich hatte dazu mal diese Variante erstellt:

    [autoit]

    Func _GetRandomStr($len)
    Local $aChar = StringSplit('01234AaÄäBbCcDdEeFfGgHhIiJjKkLlMmNnOoÖöPpQqRrSsßTtUuÜüVvWwXxYyZz56789','')
    Local $str = ''
    For $i = 1 To $len
    $str &= $aChar[Random(1,$aChar[0],1)]
    Next
    Return $str
    EndFunc

    [/autoit]
  • Letzter Fenstertitel ermitteln

    • BugFix
    • 19. Mai 2011 um 19:12

    Hilfe lesen :D

    [autoit]

    WinGetTitle("[ACTIVE]")

    [/autoit]
  • Pfad zur Include-Datei selbst (innerhalb des Includes)

    • BugFix
    • 19. Mai 2011 um 18:11
    Zitat von ip_trainer

    Kann man innerhalb einer Include-Datei den Pfad zu einem Unterverzeichnis relativ zur Include-Datei bestimmen? Ich möchte nämlich in dieser Include-Datei ein Bild anzeigen, welches unabhängig vom Pfad der Include-Datei sein soll.

    Ja was denn nun? - Hü oder Hott. Relativ und absolut zur selben Zeit wird wohl nix werden :D

  • ListViewItems deaktivieren

    • BugFix
    • 19. Mai 2011 um 17:18

    Ich verstehe nicht ganz, was du vorhast. Was verstehst du unter "deaktivieren" ?

  • Assoziatives oder zweidimensionales Array

    • BugFix
    • 18. Mai 2011 um 20:09

    Ja, dieses "AssocArray" war nicht so gelungen. :rolleyes:
    Aber schau dir mal die StrucList an. Eine Symbiose aus Struktur und Array. Vielleicht ist das für dich nutzbar.

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™