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

  • Andockbare GUI

    • BugFix
    • 26. Mai 2009 um 16:39

    Guck das mal an: DockIt

  • Ordner Read

    • BugFix
    • 26. Mai 2009 um 16:26

    Ich denke, es könnte hilfreich sein, wenn du mal sagst, WAS das Skript überhaupt tun soll. ;)

  • Fenster: Rahmen berechnen

    • BugFix
    • 26. Mai 2009 um 16:18

    Dafür gibt es in AutoIt _WinApi_GetSystemMetrics(Index).
    Ich hatte dafür dann eine Funktion erstellt, die wahlweise alle möglichen Parameter in eine MsgBox oder Commandline ausgibt ohne die Funktion auszuführen, bzw. ein Array mit allen Parametern zurückgibt. _GetSystemMetrics (kpl. in einem Aufruf)

  • RegExp - ArrayPattern

    • BugFix
    • 25. Mai 2009 um 23:04
    Zitat von bernd670

    oder hab ich da was falsch verstanden!


    Ja, hast du . ;)
    Ich will nur die Variablen innerhalb des Arrays selektieren. - Im vorigen Post blau dargestellt.

  • Playlist.xspf

    • BugFix
    • 25. Mai 2009 um 22:09

    Ich dachte, du hast ein Array-Problem. Hier ist aber nur ein Problem in deiner Logik. Ich kenne ja nicht die Daten, die eingelesen werden, insofern kann ich nicht feststellen, wo dein Problem liegt.

  • Playlist.xspf

    • BugFix
    • 25. Mai 2009 um 21:56

    Probier mal:

    [autoit]

    ; nach dem Split eine Fehlerabfrage einfügen
    $arSelect = StringSplit($sSelect, '|')
    If @error Then Exit MsgBox(0, 'Fehler', 'Kein Split möglich)

    [/autoit][autoit]

    For $i = 1 to $arSelect [0]
    ; besser:
    For $i = 1 to UBound($arSelect) -1

    [/autoit]
  • 2D Array Zeilen hinzufügen

    • BugFix
    • 25. Mai 2009 um 18:17
    Zitat von anfänger

    Ich möchte aber 1 Zeile mit ca. 60 Spalten einfügen.

    Und genau das tust du nicht. ;)
    Du hast 61 Trenner und somit 62 Felder! Deshalb funktioniert es nicht.

  • Fragen zur Textausrichtung und Positionierng von Buttons und Tabs disablen

    • BugFix
    • 24. Mai 2009 um 09:10

    Hab das Bsp. von eukalyptus mal etwas verändert. Farbsetzung für die TabItem in einem globalen Array und Fonteinstellung für das aktive Tab.

    Spoiler anzeigen
    [autoit]

    #include <FontConstants.au3>
    #include <TabConstants.au3>
    #include <WinAPI.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiTab.au3>

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

    Global Const $ODT_TAB = 101
    Global Const $ODS_SELECTED = 0x0001
    Global Const $ODA_DRAWENTIRE = 0x1
    Global Const $ODS_FOCUS = 0x0010

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

    Global $aColTabItem[2] = [0x11AADD,0xEEBB99] ; TabItem-Color

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

    $hGUI = GUICreate("Draw Tab", 300, 200)
    $hTab = GUICtrlCreateTab(10, 10, 280, 180, $TCS_OWNERDRAWFIXED)
    $TabItem_1 = GUICtrlCreateTabItem("TabItem 1")
    GUICtrlCreateLabel("", 10, 33, 277, 155)
    GUICtrlSetBkColor(-1, 0xDDAA11)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $TabItem_2 = GUICtrlCreateTabItem("TabItem 2")
    GUICtrlCreateLabel("", 10, 33, 277, 155)
    GUICtrlSetBkColor(-1, 0x99BBEE)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateTabItem("")

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

    GUISetState()

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

    GUIRegisterMsg($WM_DRAWITEM, "WM_DRAWITEM")

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

    _GUICtrlTab_SetCurSel($hTab, 1)
    _GUICtrlTab_SetCurSel($hTab, 0)

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

    Do
    Until GUIGetMsg() = -3

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

    Func WM_DRAWITEM($hWnd, $Msg, $wParam, $lParam)
    Local $DRAWITEMSTRUCT = DllStructCreate("uint cType;uint cID;uint itmID;uint itmAction;uint itmState;" & _
    "hwnd hItm;hwnd hDC;dword itmRect[4];dword itmData", $lParam)
    If DllStructGetData($DRAWITEMSTRUCT, "cType") <> $ODT_TAB Then Return $GUI_RUNDEFMSG
    If DllStructGetData($DRAWITEMSTRUCT, "itmAction") <> $ODA_DRAWENTIRE Then Return $GUI_RUNDEFMSG
    Local $itmID = DllStructGetData($DRAWITEMSTRUCT, "itmID")
    Local $hDC = DllStructGetData($DRAWITEMSTRUCT, "hDC")

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

    Local $iTextColor, $itmText, $iBrushColor = $aColTabItem[$itmID]

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

    DLLCall("gdi32.dll","int","SetBkMode", "hwnd", $hDC, "int", 1)

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

    Local $iBrush = DLLCall("gdi32.dll","hwnd","CreateSolidBrush", "int", $iBrushColor)
    $iBrush = $iBrush[0]

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

    Local $iBrushOld = _WinAPI_SelectObject($hDC, $iBrush)
    DLLCall("user32.dll","int","FillRect", "hwnd", $hDC, "ptr", DllStructGetPtr($DRAWITEMSTRUCT, "itmRect"), "hwnd", $iBrush)
    Local $tBuffer = DllStructCreate("char[256]")
    DllStructSetData($tBuffer, 1, "Item" & $itmID)
    $itmText = DllStructGetData($tBuffer, 1)

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

    DllStructSetData($DRAWITEMSTRUCT, "itmRect", DllStructGetData($DRAWITEMSTRUCT, "itmRect", 1) + 10, 1)
    DllStructSetData($DRAWITEMSTRUCT, "itmRect", DllStructGetData($DRAWITEMSTRUCT, "itmRect", 2) + 5, 2)

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

    DllCall("user32.dll", "int", "DrawText", "hwnd", $hDC, "str", $itmText, "int", StringLen($itmText), _
    "ptr", DllStructGetPtr($DRAWITEMSTRUCT, "itmRect"), "int", $DT_LEFT)

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

    _WinAPI_SelectObject($hDC, $iBrushOld)
    _WinAPI_DeleteObject($iBrush)

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

    ;~ Hier wird der Font des aktiven Tabs gesetzt: Param1 (14)=Schriftgröße, Param5 (600)=width, letzter=Fontname
    Local $hFont = _WinAPI_CreateFont(14,0,0,0,600,False,False,False,$DEFAULT_CHARSET,$OUT_DEFAULT_PRECIS, _
    $CLIP_DEFAULT_PRECIS,$DEFAULT_QUALITY,0,'Arial')
    _WinAPI_SelectObject($hDC, $hFont)
    _WinAPI_DeleteObject($hFont)

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

    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • Array Problem

    • BugFix
    • 23. Mai 2009 um 20:35

    Wozu die Trennzeichen im String?

    [autoit]

    $String = StringSplit(" ,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z",",")

    [/autoit]


    einfacher:

    [autoit]

    $String = StringSplit(" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ","")

    [/autoit]

    ;)

  • Einfalls- + Ausfallswinkel

    • BugFix
    • 23. Mai 2009 um 20:29
    Zitat von Fisch

    lol, wenn $anstieg 1.4 ist, ist da ein Bug..


    Ist nur ein zusammehgezimmertes Funktionsbeispiel. Der Fehler ist sicher, dass die Linie direkt auf eine Eckposition trifft, das wird hier bisher nicht abgefragt. - Ist halt nur ein Funktionsbeispiel. ;)

  • Ordner nach Anzahl löschen

    • BugFix
    • 23. Mai 2009 um 10:29

    - Hauptordner erstellen
    - Backup ausführen und Backup-Ordner im Hauptordner erstellen
    - Titel des Backup-Ordners unbedingt sortierbar: JJJJMMTT.. oder JJMMTT.. oder JJJJ-MM-TT.. oder ähnlich
    - mit _FileListToArray(Hauptordner) die Backup-Ordner in ein Array schreiben
    - wenn Anzahl (Array[0]) größer 5 dann
    - - Array aufsteigend sortieren (Achtung: Array[0] enthält Zähler - nicht mitsortieren)
    - - Array[1] = ältestes Element, mit DirRemove() löschen

  • _GUICtrlListView_GetItemText verträgt sich nicht mit _GUICtrlListView_GetSelectedIndices ?!?

    • BugFix
    • 23. Mai 2009 um 10:09
    Zitat von NoName

    Wenn ich den Rückgabewert von _GUICtrlListView_GetSelectedIndices(...) in einer MsgBox ausgebe, kommt aber auch der richtige Indexwert!


    Diese Funktion arbeitet sowohl mit ID als auch mit Handle, _GUICtrlListView_GetItemText() erfordert aber zwingend das Handle.
    Deshalb ist es ratsam, den von Raupi gezeigten Weg immer zu gehen.
    Zum Erstellen des ListView würde ich allerdings nur selten die UDF _GUICtrlListView_Create() benutzen.
    Die Standardfunktion bietet nämlich den Handlingvorteil, durch mit Trennzeichen versehenen String, in einem Befehl Item und SubItem zu erstellen. So kann man diesen String wunderbar in einer Datei speichern, um daraus schnell das LV zu befüllen.

  • Einfalls- + Ausfallswinkel

    • BugFix
    • 23. Mai 2009 um 00:55

    Übrigens brauchst du keine Winkel berechnen. Wenn du den Anstieg der Geraden beim Berühren der Wand negierst, hast du automatisch den korrekten Winkel. Siehe mein kleines Bsp., die Linie kannst du stundenlang laufen lassen. Irgendwann ist dann das gesamte Feld bemalt. :D
    Zum Testen kannst du in der Schleife den Counter für die Seitenberührungen nach Bedarf setzen.
    Den Anstieg kann man mit der Variablen $anstieg ändern. Je größer der Wert, desto flacher der Winkel gegen die Horizontale.

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    Opt('MustDeclareVars', 1)

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

    _Main()

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

    Func _Main()
    Local $hGUI, $hGraphics, $aBorder[4] = [20,380,20,280] ; left,right,top,bottom
    Local $x = 205, $y = 145, $count = 0, $vector1 = -1, $vector2 = 1
    Local $anstieg = 1.2 ; Je größer der Wert, desto flacher der Winkel gegen die Horizontale

    $hGUI = GUICreate("Zeichnen", 400, 300)
    GUISetState()
    _GDIPlus_Startup ()
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND ($hGUI)
    While $count < 200
    _GDIPlus_GraphicsDrawRect ($hGraphics, 20, 20, 360, 260)
    _GDIPlus_GraphicsDrawLine ($hGraphics, $x, $y, $x+$anstieg*$vector2, $y+1*$vector1)
    $x += $anstieg*$vector2
    $y += 1*$vector1
    Select
    Case $x <= $aBorder[0]
    $vector2 *= -1
    $count += 1
    WinSetTitle($hGUI, '', 'Seitenberührung: ' & $count)
    Case $x >= $aBorder[1]
    $vector2 *= -1
    $count += 1
    WinSetTitle($hGUI, '', 'Seitenberührung: ' & $count)
    Case $y <= $aBorder[2]
    $vector1 *= -1
    $count += 1
    WinSetTitle($hGUI, '', 'Seitenberührung: ' & $count)
    Case $y >= $aBorder[3]
    $vector1 *= -1
    $count += 1
    WinSetTitle($hGUI, '', 'Seitenberührung: ' & $count)
    EndSelect
    Sleep(5)
    WEnd

    Do
    Until GUIGetMsg() = -3

    _GDIPlus_GraphicsDispose ($hGraphics)
    _GDIPlus_ShutDown ()
    EndFunc ;==>_Main

    [/autoit]

    So sieht es dann bei Anstieg 1.2 nach 200 Bandenberührungen aus:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • ExcelMore.au3

    • BugFix
    • 22. Mai 2009 um 22:27

    Hi,
    ist erst ein Anfang und wahrlich nicht so umfangreich, wie die ArrayMore.au3. ;)
    Ich werde hier erweiterte Funktionen zur Excel-UDF posten.

    Inhalt aktuell:

    _ExcelSheetOrderByName()
    sortiert Excel-Tabellenblätter nach deren Namen auf-/absteigend
    (erfordert #Include <Array.au3>)

    _ExcelBookGetWidth()
    gibt die letzte beschriebene Zeile und/oder Spalte zurück (durchgängig belegt)

    __ExcelBookNew()
    modifizierte Version der _ExcelBookNew
    Neben dem Standardparameter $fVisible ist hier der Parameter $iSheetsStartup enthalten, über den festgelegt wird, wieviel Sheets das neue Dokument enthält.

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ; Function Name: _ExcelSheetOrderByName($oExcel, $iDesc=0)
    ; Description:: Order ExcelBook-Sheets by name ascending (default) or descending
    ; Parameter(s): $oExcel - Excel object opened by a preceding call to _ExcelBookOpen() or _ExcelBookNew()
    ; $iDesc - order descending on=1/off=0 (default)
    ; Requirement(s): #Include <Array.au3>
    ; Return Value(s): On Success - Returns 1
    ; On Failure - Returns 0 and sets @error=1 - Specified object does not exist
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _ExcelSheetOrderByName($oExcel, $iDesc=0)
    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    If $iDesc <> 1 Then $iDesc = 0
    Local $aList = _ExcelSheetList($oExcel)
    _ArraySort($aList, $iDesc)
    Local $pos = 1
    For $i = 0 To UBound($aList) -1
    If $i = 0 Then
    _ExcelSheetMove($oExcel, $aList[$i], $pos, True)
    Else
    _ExcelSheetMove($oExcel, $aList[$i], $pos, False)
    $pos += 1
    EndIf
    Next
    Return 1
    EndFunc ;==>_ExcelSheetOrderByName

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

    ;==================================================================================================
    ; Function: _ExcelBookGetWidth($oExcel [, $iTyp=1 [, $iHeader=1 [, $sCol='A']]])
    ; Description: Gibt die letzte belegte Zeile und/oder Spalte einer Tabelle zurück
    ; Syntax: _ExcelBookGetWidth($oExcel, $iTyp=1, $iHeader=1, $sCol='A')
    ; Parameter(s): $oExcel - Referenz eines geöffneten Excel Objekts
    ; $iTyp - 1=letzte Spalte (Standard); 2=letzte Zeile; 3=Spalte|Zeile
    ; $iHeader - Nummer der Zeile, in der die letzte Spalte gesucht wird
    ; $sCol - Buchstabe der Spalte, in der die letzte Zeile gesucht wird
    ; Return Value(s): Erfolg - letzte Spalte und/oder Zeile
    ; Ist die Zeile oder Spalte leer, wird '0' zurückgegeben
    ; Fehler - 0 und setzt @error:
    ; @error=1 - Objekt existiert nicht
    ; @error=2 - $iTyp oder $iHeader außerhalb des Wertebereichs (1 - 65536)
    ; @error=3 - $sCol außerhalb des Wertebereichs (A - IV)
    ; Requirement(s): $iHeader bzw. $sCol sind durchgängig bis zum letzten Zeilen-/Spaltenelement belegt
    ; Author(s): BugFix ( [email='bugfix@autoit.de'][/email] )
    ;==================================================================================================
    Func _ExcelBookGetWidth($oExcel, $iTyp=1, $iHeader=1, $sCol='A')
    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    If $iTyp < 1 Or $iHeader < 1 Or $iTyp > 65536 Or $iHeader > 65536 Then Return SetError(2, 0, 0)
    $sCol = StringUpper($sCol)
    If StringLen($sCol) = 2 Then
    Local $str = StringSplit($sCol, '')
    If Asc($str[1]) < 65 Or Asc($str[1]) > 73 Then Return SetError(3, 0, 0)
    If Asc($str[2]) < 65 Or Asc($str[2]) > 90 Or _
    (Asc($str[1]) = 73 And Asc($str[2]) > 86) Then Return SetError(3, 0, 0)
    ElseIf StringLen($sCol) > 2 Then
    Return SetError(3, 0, 0)
    EndIf
    If Asc($sCol) < 65 Or Asc($sCol) > 90 Then Return SetError(3, 0, 0)
    Local $sColOut, $iRowOut
    Select
    Case $iTyp = 1 Or $iTyp = 3
    For $i = 65 To 90
    If $oExcel.Activesheet.Range(Chr($i) & $iHeader).Value = '' Then
    If $i = 65 Then
    $sColOut = 0
    Else
    $sColOut = Chr($i-1)
    EndIf
    ExitLoop
    EndIf
    If $i = 90 Then
    For $j = 65 To 73
    For $k = 65 To 90
    If $j = 73 And $k = 87 Then
    $sColOut = Chr($j) & Chr($k-1)
    ExitLoop
    EndIf
    If $oExcel.Activesheet.Range(Chr($j) & Chr($k)).Value = '' Then
    If $k = 65 Then
    $sColOut = Chr($j)
    Else
    $sColOut = Chr($j) & Chr($k-1)
    EndIf
    ExitLoop
    EndIf
    Next
    Next
    EndIf
    Next
    ContinueCase
    Case $iTyp = 2
    For $i = 1 To 65536
    If $oExcel.Activesheet.Range($sCol & $i).Value = '' Then
    $iRowOut = $i -1
    ExitLoop
    EndIf
    Next
    EndSelect
    Switch $iTyp
    Case 1
    Return $sColOut
    Case 2
    Return $iRowOut
    Case 3
    Return $sColOut & '|' & $iRowOut
    EndSwitch
    EndFunc ;==>_ExcelBookGetWidth

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

    Func __ExcelBookNew($fVisible = 1, $iSheetsStartup = 1)
    ; modified by BugFix
    Local $oExcel = ObjCreate("Excel.Application")
    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    If Not IsNumber($fVisible) Then Return SetError(2, 0, 0)
    If $fVisible > 1 Then $fVisible = 1
    If $fVisible < 0 Then $fVisible = 0
    If $iSheetsStartup < 1 Then $iSheetsStartup = 1
    With $oExcel
    .SheetsInNewWorkbook = $iSheetsStartup
    .Visible = $fVisible
    .WorkBooks.Add
    .ActiveWorkbook.Sheets(1).Select ()
    EndWith
    Return $oExcel
    EndFunc

    [/autoit]

    DL bisher: 8

  • Einfalls- + Ausfallswinkel

    • BugFix
    • 22. Mai 2009 um 22:04
    Zitat von Bio Drink

    ja schon aber der Winkel verändert sich ständig


    Aber doch nicht von allein! Da passiert doch nur, was du programmierst. Also sind doch Richtung und somit Winkel bekannt.
    Ich verstehe wirklich nicht dein Problem. Oder weißt du nicht, was du programmierst? ;)

  • Einfalls- + Ausfallswinkel

    • BugFix
    • 22. Mai 2009 um 20:48
    Zitat von Bio Drink

    UPS, doch noch nicht ganz...
    Mein Problem ist, wie findet autoit diese Zahlen heraus ?
    Da habe ich irgendwie ein sehr großes Problem :D :rofl:

    mfg Bio

    Du zeichnest doch alles selber, also hast du eine Funktion, die deine Gerade innerhalb eines von dir festgelegten Bereiches grafisch darstellt. Demzufolge hast du Richtungsvektor und damit auch den Winkel.

  • csv to excel

    • BugFix
    • 22. Mai 2009 um 20:43
    Zitat von subzero007

    eine idee wie ich die agenten aus eine ini einlesen kann?


    Äh.. mit IniWrite und IniRead arbeiten?

    Hast du denn das andere gelöst?

  • XML-Datei: Bereiche Ersetzen (_StringBetween?)

    • BugFix
    • 22. Mai 2009 um 17:26

    Geht leider nicht in einem Rutsch, aber geht:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    Local $inCategory = 'Category3'
    Local $inKey = '33XDA377C'
    Local $replValue = 'ABCDEFGHIJK'

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

    Local $text = _
    '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' & @CRLF & _
    '<Root>' & @CRLF & _
    '<Category1>' & @CRLF & _
    '<499A844EOSJ40 value="9OAIBF9849574EB4240AB2ASD18DE9EF03605BB14C639541ECF721A6B8B4C6"/>' & @CRLF & _
    '<2E2345B37DE50 value="A8ASD3CA6E22E5B2242E61CDE1EAASDF97CB56C1565D03CE50DASF968428AS6"/>' & @CRLF & _
    '</Category1>' & @CRLF & _
    @CRLF & _
    '<Category2>' & @CRLF & _
    '<ZD8BF85F64 value="46FB045CD8B7GFF85E6BCDA5D382SAD922FFDA40F85FA9F92"/>' & @CRLF & _
    '</Category2>' & @CRLF & _
    @CRLF & _
    '<Category3>' & @CRLF & _
    '<ADO4B1AS4B3C value="48594229B26143B12B3C5C3C7CE11B46F67EA7C6A375C7CE"/>' & @CRLF & _
    '<33XDA377C value="D2656ED543F36DB3D7C5B5456700AA876924E8D8975AEAA9"/>' & @CRLF & _
    '<2A731C3ASDB7 value="9640EAD3A1C3DE39455F5C2D70554D2798D0B5A63999C8EF"/>' & @CRLF & _
    '</Category3>' & @CRLF & _
    '</Root>'

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

    Local $patternCategories = '<(?:Category\d+)>\r\n(?:<(?:[\w\d]+)\s+value="(?:[\w\d]+)"/>\r\n)*(?:</Category\d+>)(?:\r\n)+'
    Local $patternDetail = '<[\w\d]+\s+value="[\w\d]+"/>'
    Local $patternReplace = '(<)(' & $inKey & ')(\s+value=")([\w\d]+)("/>)'

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

    ; Match auf alle Categories, je Category ein Arrayelement
    Local $MatchCat = StringRegExp($text, $patternCategories, 3)

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

    ; innerhalb gesuchter Categorie alle key=value -Paare selektieren
    Local $aPair
    For $i = 0 To UBound($MatchCat) -1
    If Not StringInStr($MatchCat[$i], $inCategory) Then ContinueLoop
    $aPair = StringRegExp($MatchCat[$i], $patternDetail, 3)
    ExitLoop
    Next

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

    ; Schlüssel suchen und Wert ersetzen
    Local $sTmp = '<' & $inCategory & '>'
    For $j = 0 To UBound($aPair) -1
    If StringRegExp($aPair[$j], $patternReplace) Then
    $aPair[$j] = StringRegExpReplace($aPair[$j], $patternReplace, '$1$2$3' & $replValue & '$5')
    EndIf
    $sTmp &= $aPair[$j] & @CRLF
    Next
    ; korrigierten String zurückschreiben in Categorie
    $MatchCat[$i] = $sTmp & '</' & $inCategory & '>' & @CRLF

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

    ; alle Categories zurückschreiben
    $sTmp = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' & @CRLF & '<Root>' & @CRLF
    For $i = 0 To UBound($MatchCat) -1
    $sTmp &= $MatchCat[$i] & @CRLF
    Next

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

    ; zurückschreiben in Datei - hier in Console
    ConsoleWrite($sTmp & @CRLF & '</Root>' & @CRLF)

    [/autoit]
  • ListView Probleme

    • BugFix
    • 22. Mai 2009 um 14:10
    Zitat von Sen

    Einziges Problem: Wie kann ich den Eintrag dann mit GUICtrlDelete den Eintrag löschen? (Man bekommt ja immer nur die Eintrags Nr)

    Na du bist ja ein Scherzkeks :rofl: - Was benötigt denn _GUICtrlListView_DeleteItem() zum Löschen.... den Index ahhhhh ;)
    Zum Löschen von markierten Item(s) kannst du aber auch gleich _GUICtrlListView_DeleteItemsSelected() verwenden.

  • kann man Tastendrücke abfangen?

    • BugFix
    • 22. Mai 2009 um 14:06
    Zitat von Commander21

    why illegal un gg die boardregeln?


    Was bedeutet, jede Taste abfangen? ==> Keylogging! Nun verstanden?

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™