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

  • Ordner in Laufwerk suchen...

    • BugFix
    • 8. Juli 2007 um 09:40

    Also was jetzt?
    - du kennst den Ordnernamen
    - du weißt aber nicht auf welchem Laufwerk
    - du weißt nicht in welchem anderen Verzeichnis er sein könnte

    ==> also rekursiv ein Laufwerk nach dem anderen durchsuchen

    So gehts, nur noch in einer Schleife laufen lassen um alle Laufwerke zu durchsuchen.

    Spoiler anzeigen
    [autoit]

    #include <array.au3>

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

    $StartPfad = "C:\"
    $SuchOrdner = "ORDNER-NAME"

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

    $Daten = _GetFileList($StartPfad, "n",1) ; erzeugt Array mit allen Ordnernamen
    $ret = _ArraySearch($Daten, $SuchOrdner,1,0,0,True) ; durchsucht nach Ordner
    If $ret > 0 Then MsgBox(0, '', $Daten[$ret]) ; gibt den kpl.Pfad zurück

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

    ; AutoIt Version: 3.0
    ; Language: English
    ; Platform: Win9x/NT/XP
    ; Author: jos van der Zande
    ;
    ; Find files in directory and subdirectories and return it in an Array, all coded in Autoit3
    ;
    ;********************************************************************************
    ;Recursive search for filemask
    ;********************************************************************************

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

    Func _GetFileList($T_DIR,$T_MASK,$DIR_ONLY=0)
    Dim $N_DIRNAMES[200000] ; max number of directories that can be scanned
    Local $N_DIRCOUNT = 0
    Local $N_FILE
    Local $N_SEARCH
    Local $N_TFILE
    Local $N_OFILE
    Local $T_FILENAMES
    Local $T_FILECOUNT
    Local $T_DIRCOUNT = 1
    Local $FILEMASK
    ; check Filemask \ for empty File-Array by GetDirOnly
    If $FILEMASK = "n" Then $FILEMASK = "*.no"
    ; remove the end \ If specified
    If StringRight($T_DIR,1) = "\" Then $T_DIR = StringTrimRight($T_DIR,1)
    $N_DIRNAMES[$T_DIRCOUNT] = $T_DIR
    ; Exit if base dir doesn't exists
    If Not FileExists($T_DIR) Then Return 0
    ; keep on looping until all directories are scanned
    While $T_DIRCOUNT > $N_DIRCOUNT
    $N_DIRCOUNT = $N_DIRCOUNT + 1
    ; find all subdirs in this directory and save them in a array
    $N_SEARCH = FileFindFirstFile($N_DIRNAMES[$N_DIRCOUNT] & "\*.*")
    While 1
    $N_FILE = FileFindNextFile($N_SEARCH)
    If @error Then ExitLoop
    ; skip these references
    If $N_FILE = "." Or $N_FILE = ".." Then ContinueLoop
    $N_TFILE = $N_DIRNAMES[$N_DIRCOUNT] & "\" & $N_FILE
    ; if Directory than add to the list of directories to be processed
    If StringInStr(FileGetAttrib( $N_TFILE ),"D") > 0 Or _
    StringInStr(FileGetAttrib( $N_TFILE ),"D,H,S") > 0 Then
    $T_DIRCOUNT = $T_DIRCOUNT + 1
    $N_DIRNAMES[$T_DIRCOUNT] = $N_TFILE
    EndIf
    Wend
    FileClose($N_SEARCH) ; find all Files that mtach the MASK
    $N_SEARCH = FileFindFirstFile($N_DIRNAMES[$N_DIRCOUNT] & "\" & $T_MASK )
    If $N_SEARCH = -1 Then ContinueLoop
    While 1
    $N_FILE = FileFindNextFile($N_SEARCH)
    If @error Then ExitLoop
    ; skip these references
    If $N_FILE = "." Or $N_FILE = ".." Then ContinueLoop
    $N_TFILE = $N_DIRNAMES[$N_DIRCOUNT] & "\" & $N_FILE
    ; if Directory than add to the list of directories to be processed
    If StringInStr(FileGetAttrib( $N_TFILE ),"D") = 0 Or _
    StringInStr(FileGetAttrib( $N_TFILE ),"D,H,S") = 0 Then
    $T_FILENAMES = $T_FILENAMES & $N_TFILE & @CR
    $T_FILECOUNT = $T_FILECOUNT + 1
    ;MsgBox(0,'filecount ' & $T_FILECOUNT ,$N_TFILE)
    EndIf
    Wend
    FileClose($N_SEARCH)
    Wend
    If $DIR_ONLY = 0 Then
    $T_FILENAMES = StringTrimRight($T_FILENAMES,1)
    $N_OFILE = StringSplit($T_FILENAMES,@CR)
    Return( $N_OFILE )
    Else
    ReDim $N_DIRNAMES[$N_DIRCOUNT+1]
    $N_DIRNAMES[0] = $N_DIRCOUNT
    Return $N_DIRNAMES
    EndIf
    EndFunc ;==>_GetFileList

    [/autoit]
  • Brauche Hilfe: Farbereiche Pixelsearch

    • BugFix
    • 7. Juli 2007 um 22:35

    Parameter: shade-variation [optional]
    A number between 0 and 255 to indicate the allowed number of shades of variation of the red, green, and blue components of the colour. Default is 0 (exact match).

    Farbschattierung wird damit eingestellt.

  • wie absoluten Link aus relativem erstellen?

    • BugFix
    • 7. Juli 2007 um 22:31

    Oops, dann hab ich 'n Problem an meinem Desktop-PC. Da funzt das nicht, aber am Laptop schon.

    Danke.

  • wie absoluten Link aus relativem erstellen?

    • BugFix
    • 7. Juli 2007 um 22:01

    Bei meinem 'Guckloch' - Programm lese ich aus der Portalseite die Links zu den letzten Beiträgen aus.
    Das hat aber den Nachteil, dass sie relativ zur Portalseite adressiert sind und ich somit nur automatisert arbeiten kann, indem ich den IE verwende ( _IELinkClickByIndex() ).
    Ich würde gern bei Doppelklick auf einen Eintrag diesen im Standardbrowser öffnen. Kein Problem, wenn ich den absoluten Link habe.
    Daher meine Frage: Kann mir jemand sagen, wie ich zu den absoluten Links komme?

    zum Vergleich:
    relativer Link: 'http://www.autoit.de/thread.php?goto=lastpost&threadid=3174&sid='
    absoluter Link: 'http://www.autoit.de/thread.php?postid=22416#post22416'

  • Brauche Hilfe: Farbereiche Pixelsearch

    • BugFix
    • 7. Juli 2007 um 21:42
    Zitat

    oragne ist ja ffffff
    aber was ist helles organe oder dunkles orange?


    Suche im Board benutzen?....
    Ich hatte dazu mal ein Tool erstellt.

    ...und 0xffffff ist weiß !!!

  • "Guckloch"

    • BugFix
    • 4. Juli 2007 um 11:24

    Gute Idee, werde ich machen.
    Vielleicht auch nur Veränderungen einblenden.
    Mach ich die Tage mal.

  • "Guckloch"

    • BugFix
    • 4. Juli 2007 um 10:47

    Ja, hatte er. Nur war die Vorgehensweise eine andere.
    Hab jetzt bei mir noch eingefügt, dass Veränderungen zum letzten Check farbig hervorgehoben werden.

  • ich bin zu blöd!

    • BugFix
    • 4. Juli 2007 um 10:06

    Die Übertragung fehlt:

    [autoit]

    _IEFormSubmit ($oForm)

    [/autoit]
  • "Guckloch"

    • BugFix
    • 4. Juli 2007 um 09:52

    Hi,
    ich hatte es gestern schon mal kurz drin, wegen eines zu spät bemerkten Bugs aber wieder rausgenommen. :rolleyes:

    So, nun funzt es aber. Ähnlich, wie das Guckloch vom Browser. Aber mit der gesamten Liste der letzten Einträge und ohne sichtbares Browserfenster.
    Das Fenster mit der Tabelle wird nach jeder Aktualisierung (wenn vorher geschlossen) neu eingeblendet.
    Programmende mit <Alt+e>.

    Edit:

    Habe alle Anregungen übernommen. ;)
    - nach Programmstart wird die Tabelle mit den letzten 10 Einträgen gezeigt
    - per Checkbox wählbar:
    • nur einblenden, wenn Änderungen
    • nur Änderungen auflisten (bedingt automatisch den vorigen Punkt)

    - bei Anzeige der gesamten Liste, werden Änderungen zur letzten Abfrage farblich markiert
    - Aktualisierungsintervall kann über Inputfeld frei gewählt werden
    - mit Doppelklick auf Listeneintrag, wird dieser in einer zweiten IE-Objekt-Instanz aufgerufen; Aktualisierung läuft auf erster Instanz weiter
    - das IE-Fenster sollte zum Schließen per HotKey invisible gesetzt werden
    • beim Schließen des Fensters über Button oder Menü wird sonst auch das Objekt gelöscht
    • falls es doch passiert - kein Problem, Objekt wird neu erstellt (kostet nur etwas Zeit)

    - HotKeys:
    • 'Alt+c' IE-Fenster invisible setzen
    • 'Alt+s' GUI mit Liste in den Vordergrund holen
    • 'Alt+e' Programm beenden

    Edit: Sry, noch einen Bug gefunden. Einblenden nur bei Änderungen hatte noch nicht geklappt.

    Hab jetzt noch eine Version angehängt, in der der Beitrag im Standardbrowser geöffnet wird.

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=AutoItNews
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GUIConstants.au3>
    #Include <GuiListView.au3>
    #include <IE.au3>
    #include <file.au3>
    Opt("GUIOnEventMode", 1)
    AutoitSetOption("WinTitleMatchMode", 2)

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

    Global Const $WM_NOTIFY = 0x004E
    Global Const $NM_FIRST = 0
    Global Const $NM_DBLCLK = ($NM_FIRST - 3)
    Global $ListView1

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

    Dim $oIE = _IECreate ( "http://www.autoit.de/portal.php",0,0,1,-1)
    Dim $oIEshowLast = _IECreate ( "http://www.autoit.de/portal.php",0,0,1,-1)
    Dim $oTable, $oLinks, $IEtitle = 'AutoIt Forum - Deutsch'
    Dim $aTableData, $aOldData[1][1], $time = @HOUR & ':' & @MIN, $timeRefresh, $news = 1
    Dim $aLinks[10], $arItem[20], $arTmp[20][7], $titel = "Letzte Forenbeiträge "
    Dim $WhiteSmoke = 0xF5F5F5, $LightGray = 0xD3D3D3, $Coral = 0xFF7F50

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

    HotKeySet("!e", "_Ende")
    HotKeySet("!s", "_ShowGUI")
    HotKeySet("!c", "_CloseIE")

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

    $Form1 = GUICreate($titel & $time, 727, 367, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "AForm1Close")
    $ListView1 = GUICtrlCreateListView("Beitrag|Autor|Antworten/ Hits|Letzter", 16, 40, 694, 314)
    _GUICtrlListViewSetColumnWidth(-1,0,350)
    _GUICtrlListViewSetColumnWidth(-1,1,130)
    _GUICtrlListViewSetColumnWidth(-1,2,90)
    _GUICtrlListViewSetColumnWidth(-1,3,117)
    $cbIfNews = GUICtrlCreateCheckbox("Nur zeigen bei News", 16, 13, 130, 17)
    GUICtrlSetOnEvent(-1, "_IfNews")
    $cbOnlyNews = GUICtrlCreateCheckbox("Zeige nur News", 150, 13, 100, 17)
    GUICtrlSetOnEvent(-1, "_OnlyNews")
    GUICtrlCreateLabel("Aktualisierungs-Intervall in Sekunden:", 475, 13, 180, 17)
    $inTime = GUICtrlCreateInput(60, 660, 10, 50, 20, BitOR($ES_RIGHT, $ES_MULTILINE))

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

    GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")

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

    _show()
    $start = TimerInit()
    $begin = TimerInit()
    While 1
    If TimerDiff($begin) > $timeRefresh Then
    _IEAction($oIE, "refresh")
    _show()
    $begin = TimerInit()
    EndIf
    If TimerDiff($start) > 60000 Then
    $time = @HOUR & ':' & @MIN
    WinSetTitle($Form1, "", $titel & $time)
    $start = TimerInit()
    EndIf
    WEnd

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

    Func _Ende()
    Exit
    EndFunc

    Func AForm1Close()
    GUISetState(@SW_HIDE, $Form1)
    EndFunc

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

    Func _ShowGUI()
    GUISetState(@SW_SHOW, $Form1)
    EndFunc

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

    Func _IfNews()
    If (GUICtrlRead($cbOnlyNews) = 1) And (GUICtrlRead($cbIfNews) = 4) Then _
    GUICtrlSetState($cbOnlyNews, $GUI_UNCHECKED)
    EndFunc

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

    Func _OnlyNews()
    GUICtrlSetState($cbIfNews, $GUI_CHECKED)
    EndFunc

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

    Func _show()
    If _readData() = -1 Then
    _GUICtrlListViewDeleteAllItems($ListView1)
    _setData()
    $timeRefresh = GUICtrlRead($inTime)*1000
    If GUICtrlRead($cbIfNews) = 1 Then
    If $news > 0 Then GUISetState(@SW_SHOW, $Form1)
    Else
    GUISetState(@SW_SHOW, $Form1)
    EndIf
    EndIf
    EndFunc

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

    Func _readData()
    $news = 0
    $oLinks = _IELinkGetCollection ($oIE)
    _getLinks()
    $oTable = _IETableGetCollection ($oIE,17)
    $aTableData = _IETableWriteToArray ($oTable)
    If @error Then Return 0
    If UBound($aOldData) > 1 Then
    For $i = 1 To 10
    For $k = 1 To 10
    If $aOldData[2][$k] = $aTableData[2][$i] Then
    If $aOldData[6][$k] <> $aTableData[6][$i] Then
    $aTableData[0][$i] = 1 ; geänderter Eintrag
    $news += 1
    ExitLoop
    Else
    $aTableData[0][$i] = 2 ; unverändert
    EndIf
    EndIf
    Next
    Next
    For $i = 1 To 10
    If ($aTableData[0][$i] <> 1) Then
    If ($aTableData[0][$i] <> 2) Then
    $aTableData[0][$i] = 1 ; neuer Eintrag
    $news += 1
    EndIf
    EndIf
    Next
    EndIf
    $aOldData = $aTableData
    For $i = 1 To 10
    $aOldData[0][$i] = 0
    Next
    _Array2DMirror($aTableData)
    ReDim $arTmp[UBound($aTableData)-2][UBound($aTableData,2)]
    For $i = 1 To UBound($aTableData) -2
    For $k = 0 To UBound($aTableData,2)-1
    $arTmp[$i-1][$k] = $aTableData[$i][$k]
    Next
    Next
    $aTableData = $arTmp
    ReDim $arTmp[20][7]
    For $x = 1 To 6
    $k = 1
    If ($x = 2) Or ($x = 4) Or ($x = 6) Then
    For $i = 0 To 9
    $var = StringSplit($aTableData[$i][$x], @CRLF)
    $arTmp[$k-1][$x] = $var[1]
    $arTmp[$k][$x] = $var[3]
    $k += 2
    Next
    Else
    For $i = 0 To 9
    $arTmp[$k-1][$x] = $aTableData[$i][$x]
    $k += 2
    Next
    EndIf
    Next
    For $i = 0 To 18 Step 2
    $arTmp[$i+1][0] = $arTmp[$i][0]
    Next
    For $i = 0 To 9
    $k = 2*$i
    $arTmp[$k][1] = $aLinks[$i]
    $arTmp[$k+1][1] = $aLinks[$i]
    $arTmp[$k][0] = $aTableData[$i][0]
    $arTmp[$k+1][0] = $aTableData[$i][0]
    Next
    $aTableData = $arTmp
    Return -1
    EndFunc

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

    Func _getLinks()
    Local $i = 0, $k = 0
    ReDim $aLinks[10]
    For $oLink In $oLinks
    If StringInStr($oLink.href, '?goto=lastpost&threadid=',1) Then
    $aLinks[$i] = $k ; LinkIndex
    $i += 1
    EndIf
    $k += 1
    Next
    EndFunc

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

    Func _setData()
    Local $k = 0, $n = 0
    Select
    Case GUICtrlRead($cbOnlyNews) = 4
    ReDim $arItem[20]
    ReDim $aLinks[20]
    For $i = 0 To 19
    $k += 1
    If Mod($i, 2) = 0 Then
    $arItem[$i] = GUICtrlCreateListViewItem($aTableData[$i][2]&'|'&$aTableData[$i][4]&'|'&$aTableData[$i][3]& _
    ' / '&$aTableData[$i][5]&'|'&$aTableData[$i][6], $ListView1)
    Else
    $arItem[$i] = GUICtrlCreateListViewItem($aTableData[$i][2]&'|'&$aTableData[$i][4]&'|'&'|'&$aTableData[$i][6], $ListView1)
    EndIf
    If ($k = 1) Or ($k = 2) Then
    If ($aTableData[$i][0] = 1) And (Mod($k, 2) <> 0) Then
    GUICtrlSetBkColor($arItem[$i], $Coral)
    Else
    GUICtrlSetBkColor($arItem[$i], $WhiteSmoke)
    EndIf
    Else
    If $aTableData[$i][0] = 1 Then
    GUICtrlSetBkColor($arItem[$i], $Coral)
    Else
    GUICtrlSetBkColor($arItem[$i], $LightGray)
    EndIf
    EndIf
    If $k = 4 Then $k = 0
    $aLinks[$i] = $aTableData[$i][1]
    Next
    Case (GUICtrlRead($cbOnlyNews) = 1) And ($news > 0)
    ReDim $arItem[2*$news]
    ReDim $aLinks[2*$news]
    For $i = 0 To 19
    $k += 1
    If $aTableData[$i][0] = 1 Then
    If Mod($i, 2) = 0 Then
    $arItem[UBound($arItem)-1] = GUICtrlCreateListViewItem($aTableData[$i][2]&'|'&$aTableData[$i][4]&'|'&$aTableData[$i][3]& _
    ' / '&$aTableData[$i][5]&'|'&$aTableData[$i][6], $ListView1)
    Else
    $arItem[$i] = GUICtrlCreateListViewItem($aTableData[$i][2]&'|'&$aTableData[$i][4]&'|'&'|'&$aTableData[$i][6], $ListView1)
    EndIf
    If ($k = 1) Or ($k = 2) Then
    GUICtrlSetBkColor($arItem[$i], $WhiteSmoke)
    Else
    GUICtrlSetBkColor($arItem[$i], $LightGray)
    EndIf
    If $k = 4 Then $k = 0
    $aLinks[$n] = $aTableData[$i][1]
    $n += 1
    EndIf
    Next
    EndSelect
    EndFunc

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

    Func ListView_DoubleClick()
    $index = _GUICtrlListViewGetCurSel($ListView1)
    _IENavigate($oIEshowLast, "http://www.autoit.de/portal.php")
    If @error Then $oIEshowLast = _IECreate ( "http://www.autoit.de/portal.php",0,0,1,-1)
    _IELinkClickByIndex($oIEshowLast, $aLinks[$index])
    _IEAction($oIEshowLast, "visible")
    WinSetState($IEtitle, '', @SW_MAXIMIZE)
    EndFunc

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

    Func _CloseIE()
    _IEAction($oIEshowLast, "invisible")
    EndFunc

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

    Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGUI, $MsgID, $wParam
    Local $tagNMHDR, $event, $hwndFrom, $code
    $tagNMHDR = DllStructCreate("int;int;int", $lParam);NMHDR (hwndFrom, idFrom, code)
    If @error Then Return
    $event = DllStructGetData($tagNMHDR, 3)
    Select
    Case $wParam = $ListView1
    Select
    Case $event = $NM_DBLCLK
    ListView_DoubleClick ()
    EndSelect
    EndSelect
    $tagNMHDR = 0
    $event = 0
    $lParam = 0
    EndFunc ;==>WM_Notify_Events

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

    ;----------------------------------------------------------------------------------------------------------------------
    ; Function _Array2DMirror(ByRef $ARRAY)
    ;
    ; Description to mirror columns with rows in an 2D Array
    ;
    ; Parameter $ARRAY: 2D Array
    ;
    ; Return Succes -1 ByRef mirrored Array
    ; Failure 0 set @error
    ; @error = 1 given array is not array
    ;
    ; Author BugFix ([email='bugfix@autoit.de'][/email])
    ;----------------------------------------------------------------------------------------------------------------------
    Func _Array2DMirror(ByRef $ARRAY)
    If ( Not IsArray($ARRAY) ) Then
    SetError(1)
    Return 0
    EndIf
    Local $UBound2nd = UBound($ARRAY,2)
    If @error = 2 Then
    SetError(2)
    Return 0
    EndIf
    Local $arTMP[$UBound2nd][UBound($ARRAY)]
    For $i = 0 To UBound($ARRAY) -1
    For $k = 0 To UBound($ARRAY,2) -1
    $arTMP[$k][$i] = $ARRAY[$i][$k]
    Next
    Next
    $ARRAY = $arTMP
    Return -1
    EndFunc ;==>_Array2DMirror

    [/autoit]

    Dateien

    Guckloch.au3 8,6 kB – 305 Downloads
  • Problem mit dem Zufall...

    • BugFix
    • 4. Juli 2007 um 01:09

    Also warum deins nicht ging?

    Ganz simpel:
    - in Zeile 8 fügst du den Wert zum Array hinzu: _ArrayAdd($pruefen, $Nummer1[$i])
    - in Zeile 9 prüfst du ob dieser Begriff im Array enthalten ist: _check($Nummer1[$i])

    Also - falsche Reihenfolge!
    Die Duplikatsprüfung muß vor der Zuweisung erfolgen.

  • _Array2DMirror

    • BugFix
    • 4. Juli 2007 um 00:50

    Die Funktion _Array2DMirror(ByRef $ARRAY) spiegelt Zeilen und Spalten gegeneinander.
    Aus einem Array[2][12] wird also ein Array[12][2].

    Spoiler anzeigen
    [autoit]

    ;----------------------------------------------------------------------------------------------------------------------
    ; Function _Array2DMirror(ByRef $ARRAY)
    ;
    ; Description to mirror columns with rows in an 2D Array
    ;
    ; Parameter $ARRAY: 2D Array
    ;
    ; Return Succes -1 ByRef mirrored Array
    ; Failure 0 set @error
    ; @error = 1 given array is not array
    ; @error = 2 array is not 2D
    ;
    ; Author BugFix ([email='bugfix@autoit.de'][/email])
    ;----------------------------------------------------------------------------------------------------------------------
    Func _Array2DMirror(ByRef $ARRAY)
    If ( Not IsArray($ARRAY) ) Then
    SetError(1)
    Return 0
    EndIf
    Local $UBound2nd = UBound($ARRAY,2)
    If @error = 2 Then
    SetError(2)
    Return 0
    EndIf
    Local $arTMP[$UBound2nd][UBound($ARRAY)]
    For $i = 0 To UBound($ARRAY) -1
    For $k = 0 To UBound($ARRAY,2) -1
    $arTMP[$k][$i] = $ARRAY[$i][$k]
    Next
    Next
    $ARRAY = $arTMP
    Return -1
    EndFunc ;==>_Array2DMirror

    [/autoit]

    Dateien

    _Array2DMirror.au3 1,01 kB – 273 Downloads
  • Problem mit dem Zufall...

    • BugFix
    • 4. Juli 2007 um 00:25

    Hier mal ein funktionierendes Beispiel:

    [autoit]

    #include <array.au3>
    Dim $ar[5]=["otto","franz","paul","luise","anna"]

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

    MsgBox(0, '', _check("manfred") ) ; -1 da erfolg
    MsgBox(0, '', _check("luise") ) ; 0 da doppel
    MsgBox(0, '', _check("franz") ) ; 0 da doppel

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

    Func _Check($toSearch)
    If _ArraySearch($ar, $toSearch) = -1 Then
    _ArrayAdd($ar, $toSearch)
    Return -1
    Else
    Return 0
    EndIf
    EndFunc

    [/autoit]
  • Brauche einen Script

    • BugFix
    • 3. Juli 2007 um 13:36

    *nu-noch-mit-dem-kopf-schüttel*

    Falls du es nicht bemerkt hast, dies hier ist ein Forum zur Skriptsprache AutoIt.
    Hier kann man sich austauschen, Skripte vorstellen und bekommt Hilfe, wenn man nicht weiter weiß.

    Du möchtest aber keine Hilfe, sondern ein fertiges Produkt.
    Dafür ist mir meine Zeit zu schade. Wir machen das hier aus Idealismus. Und da kann man schon ein gewisses Maß an eigener Aktivität verlangen.

    Geh doch mal zu Saturn oder Media Markt und sag: "Ich möchte kein Geld aufwänden - aber schiebt mir mal 'ne Festplatte rüber." :rofl:

    (Der Vergleich hinkt nicht!)

  • was macht eigendlich die neue Hilfe Version ?

    • BugFix
    • 2. Juli 2007 um 21:34

    Es ist schon etwas aufgeteilt, ich hatte den Block 'txtlibfunctions' gewählt.
    Zu viele Übersetzer (jeder 1 File oder so) würde nicht sehr sinnvoll sein.
    Naja, ich tue mein Bestes. ;)

    Edit:
    Stimmt, häufig reicht nur übersetzen nicht, da mußt du die Funktion erst ausprobieren um den Sinn zu verstehen. Englisch ist nicht unbedingt immer einfach.

  • was macht eigendlich die neue Hilfe Version ?

    • BugFix
    • 2. Juli 2007 um 21:07

    Mühsam nährt sich das Eichhörnchen....

    Ich arbeite immer wieder mal dran. Aber wenn man es gründlich machen will, ist es doch recht zeitintensiv.
    Habe bisher 93 von 343 Files übersetzt.

  • SciTE: Schlüsselwörter für Abkürzungen

    • BugFix
    • 2. Juli 2007 um 20:56

    lol

    kam ein NochBesserWisser daher und sagte:
    Ganz eigentlich heisst es wohl "Back to the roots". :rofl:

  • SciTE: Schlüsselwörter für Abkürzungen

    • BugFix
    • 2. Juli 2007 um 15:25

    Hi,
    bei der Installation der neuesten SciTE-Version (Version 1.74) wird eine ziemlich 'schmalbrüstige' au3.keywords.abbreviations.properties angelegt.
    Dort sind längst nicht alle Keywords eingetragen.

    Ich habe hier ein Skript erstellt, dass alle vorhandenen Keywords aus der au3abbrev.properties ausliest und daraus die au3.keywords.abbreviations.properties neu erstellt.

    Edit: Auf Anregung von th.meger noch eine kurze Erläuterung.
    Es geht hierbei um Abkürzungen, die in SciTE verwendet werden um Code schneller schreiben zu können.
    So wird bei der Eingabe von for0 und anschließendem Leerzeichen daraus:
    For $i = 0 To

    Es können auch eigene Abkürzungen erstellt werden.
    Siehe auch hier: FAQ

    Es existiert eine Kopie der Abkürzungsdatei unter "..\Dokumente und Einstellungen\USER\abbrev.properties".
    Hier müssen gewünschte Änderungen vorgenommen werden.

    EDIT 2:
    Ich hab noch eine Änderung vorgenommen. Der Pfad verweist jetzt auf die Arbeitskopie im User-Ordner. Somit werden auch für alle eigenen Abkürzungen die Keywords übernommen.
    Wenn man dann mal wieder eigene Abkürzungen erstellt hat, braucht man einfach nur das Skript nochmals laufen lassen und alles ist eingebunden.


    EDIT 3 [17.11.2007]:
    Mit der aktuellen Version von SciTE wurde die abbrev.properties Datei etwas verändert. Sie enthält jetzt vor den eigentlichen Abkürzungen einen Block für Pfad- und Registryabkürzungen. Um das Ende dieses Blocks abzufragen habe ich den Code angepaßt. Somit sollte es auch für künftige Änderungen passen.
    Weiterhin habe ich noch einen Bug gefixt (die letzte Zeile wurde nicht in die Datei geschrieben, außer sie hatte die max. Länge).

    Spoiler anzeigen
    [autoit]

    #include <file.au3>

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

    Dim $Scite = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt", "InstallDir") & "\SciTe\"
    Dim $path = @HomeDrive & @HomePath & "\abbrev.properties"
    Dim $pathKeyAbb = $Scite & "au3.keywords.abbreviations.properties"
    Dim $startStr = '#endregion - ctrl+b', $start = False
    Dim $ar, $aAbbr[1]=[0], $var

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

    _FileReadToArray($path, $ar)
    For $i = 1 to $ar[0]
    If $ar[$i] == $startStr Then $start = True
    If $start And StringInStr($ar[$i], '=') Then
    $var = StringSplit($ar[$i], '=')
    ReDim $aAbbr[UBound($aAbbr)+1]
    $aAbbr[UBound($aAbbr)-1] = $var[1]
    $aAbbr[0] += 1
    EndIf
    Next

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

    FileMove($pathKeyAbb, $pathKeyAbb & '.BAK',1)
    Dim $fh = FileOpen($pathKeyAbb, 1), $line = 'au3.keywords.abbrev=', $count = 1
    FileWriteLine($fh, @LF & @LF)
    For $i = 1 To $aAbbr[0]
    If $count < 15 Then
    $line &= $aAbbr[$i] & ' '
    Else
    $line &= $aAbbr[$i] & ' \'
    FileWriteLine($fh, $line)
    $line = @TAB & ''
    $count = 0
    EndIf
    If $count < 15 And $i = $aAbbr[0] Then FileWriteLine($fh, $line)
    $count += 1
    Next
    FileClose($fh)
    MsgBox(0, '', 'Neue Abkürzungsdatei erstellt')

    [/autoit]

    Dateien

    NewAbbrevKey.au3 1,11 kB – 410 Downloads
  • Neue GUI im Skript aufrufen - wie?!

    • BugFix
    • 2. Juli 2007 um 13:32

    Oder so:

    [autoit]

    $PID = Run("Filename")
    SplashTextOn("", "BlaBla")
    ProcessWaitClose($PID)
    SplashOff()

    [/autoit]
  • Traymenü

    • BugFix
    • 2. Juli 2007 um 11:58

    Muß ich heute abend mal in Ruhe schauen.
    Ist doch recht komplex ;)

  • Traymenü

    • BugFix
    • 2. Juli 2007 um 09:31

    Erkläre mal genauer, wie sich das "nicht richtig laufen" darstellt ;)
    Ist etwas schwierig das selbst nachzustellen, ohne zu wissen wonach man sucht.

    Allgemeiner Tipp:
    Bitte, Bitte kein Call()
    Statt: call("_OldIniExist") nur _OldIniExist()

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™