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

  • Teamspeak-Zusatzprogramm // Brauche Hilfe beim Tray-Menü

    • BugFix
    • 17. September 2008 um 12:43
    Zitat von rajah of persia

    Ich komme allerdings mit der Autoit-Hilfe nicht weiter und konnte hier im Forum auch nichts dazu finden. Kann mir da jemand helfen?


    X( Willst du uns veräppeln? Schau dir mal die vielen Ergebnisse zur Suchanfrage "Traymenü" an: http://www.autoit.de/index.php?form=Search&searchID=86485&highlight=traymen%C3%BC

  • OnEvent Menü funktioniert nicht

    • BugFix
    • 17. September 2008 um 12:40

    zu 2.
    Doppelklick-Event (s. Hilfe zu TrayGetMsg ;) )

    [autoit]

    Case $msg = $TRAY_EVENT_PRIMARYDOUBLE

    [/autoit]

    zu 3.
    Wie bereits richtig erwähnt, mußt du GUISetState() und nicht WinSetState() verwenden.

  • Rekursive Datei/Ordner Auflistung per Objekt

    • BugFix
    • 16. September 2008 um 22:57

    grml :huh: du hast schon wieder recht - ist ja unheimlich.

  • Mathematikproblem

    • BugFix
    • 16. September 2008 um 19:01

    Das kriegst du mit StringFormat hin

    [autoit]

    ConsoleWrite(StringFormat('%.3f', 24) & @CRLF)

    [/autoit]
  • Dateiendungen aus der Registrierungsdatenbank auslesen und arrays löschen

    • BugFix
    • 16. September 2008 um 18:56

    Ob Windoof das kann, weiß ich gar nicht. Sonst brauchte man ja in Windows nicht die blöden Endungen zur File-Erkennung.
    Und wenn der Header nicht sauber geschrieben ist, hat man auch Pech beim Auslesen.
    Welche Bytes genau dafür zuständig sind weiß ich adhoc nicht - aber GIDF :D

  • Mathematikproblem

    • BugFix
    • 16. September 2008 um 18:11

    Meinst du so?

    [autoit]

    MsgBox(0, "Test" , Round($input5, 3))

    [/autoit]
  • StringSplit-Ausgabe zusammenfügen

    • BugFix
    • 16. September 2008 um 17:26

    Ich bin zwar ein absoluter Array-Freak, aber wozu mit der Speckseite nach dem Schwein werfen? :D
    Hier tut es eine Stringoperation allemal. Ist schneller und auch weniger Code. ;)

  • StringSplit-Ausgabe zusammenfügen

    • BugFix
    • 16. September 2008 um 17:14

    Nicht splitten, nur den Rest abschneiden:

    [autoit]

    Dim $var = "C:\Dokumente und Einstellungen\MaxMuster\Anwendungsdaten\Mozilla\Firefox\Profiles\test.default"
    $var = StringTrimRight($var, StringLen($var)-StringInStr($var, '\', 1, -1)+1)
    ConsoleWrite($var & @crlf)

    [/autoit]
  • Konvertertool - Ordner übergreifend sauber Dateien suchen und auflisten

    • BugFix
    • 16. September 2008 um 15:01
    Zitat von chrisatack

    mal ne frage wäre es so nicht schneller? u einfacher?

    Haben wir schon ausprobiert, als ich damals die Funktion erstellt habe. Bei kleineren Verzeichnistiefen kann deine Methode schneller sein, aber bei großen Verzeichnistiefen und vielen Dateien/Ordner ist die Objektvariante unschlagbar.

  • Informationen aus Fenster auslesen

    • BugFix
    • 16. September 2008 um 14:56

    Wäre sinnvoll, wenn du dir die Daten des Editfeldes, statt des Listview anzeigen läßt.
    Denn du sagst ja, dass du aus dem LV lesen kannst.

    Ich nehme mal an, dass das untere Ctrl ein Edit ist. Somit kannst du so vorgehen:

    [autoit]

    ControlCommand ( "title", "text", "controlID", "GetLineCount", "" ) ; gibt die Zeilenzahl aus dem Edit
    ; für jede Zeile:
    ControlCommand ( "title", "text", "controlID", "GetLine", "line#" ) ; Text der Zeile

    [/autoit]
  • Datei Verschlüsselung

    • BugFix
    • 16. September 2008 um 14:44

    "BitXOR"
    Ich empfehle mein Bit-Tut - s. Signatur. Ich glaube, dann packst du das auch.
    Ansonsten bemühe auch mal WiKi. Mod ist dort auch erwähnt. :)

  • Konvertertool - Ordner übergreifend sauber Dateien suchen und auflisten

    • BugFix
    • 16. September 2008 um 14:41

    Ja, nochmals Danke Oscar - dein klarer Blick hat mir geholfen. :)
    Habe die Funktion entsprechend korrigiert und auch bei den Skripten aktualisiert.

  • Konvertertool - Ordner übergreifend sauber Dateien suchen und auflisten

    • BugFix
    • 16. September 2008 um 14:24

    Ja, du hast schon recht. Aber wenn ich vom letzten Array-Eintrag nur 1 Zeichen abschneide wird @CRLF entfernt. Schneide ich 2 ab, verschwindet auch der \ bei Ordnerausgabe, bei Dateiausgabe paßt es wieder. Seltsames Verhalten.

    ERledigt: Lag am Splitten.

  • Konvertertool - Ordner übergreifend sauber Dateien suchen und auflisten

    • BugFix
    • 16. September 2008 um 14:08

    Ja, da hatte ich vergessen das letzte Trennzeichen abzuschneiden ;) .
    So geht es:

    Spoiler anzeigen
    [autoit]

    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles,1), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    If $aOut[0] <> 0 Then $aOut[$aOut[0]] = StringTrimRight($aOut[$aOut[0]], 1)
    Return $aOut
    Else
    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc

    [/autoit]

    Oscar : Das Problem ist der nicht beschnittene letzte Arraywert - und @CRLF wird dort mit Länge 1 entfernt, für den String brauchts aber Länge 2 - seltsam ;) .

  • Rekursive Datei/Ordner Auflistung per Objekt

    • BugFix
    • 16. September 2008 um 13:11

    Ja stimmt - bei der Stringausgabe habe ich ja auch abgeschnippelt. :D
    Am Besten ich erweitere die Auswahl auf 2 weitere Trenner ( | und ; ) und dann sollte das reichen.

  • Rekursive Datei/Ordner Auflistung per Objekt

    • BugFix
    • 16. September 2008 um 11:28

    Hi Oscar,
    habe deinen Beitrag hierzu erst jetzt bemerkt.

    zu 1.
    Danke, das paßt.

    zu 2.
    Ich habe es mal so getestet - aber dann geht mir ein (gewollter) Effekt verloren. Als Trenner habe ich dann nur @CR/LF. Ich wollte aber auch die Möglichkeit bieten Trenner frei zu wählen (z.B. '|').
    Aber vermutlich wird Arrayausgabe eh am häufigsten genutzt.

  • Konvertertool - Ordner übergreifend sauber Dateien suchen und auflisten

    • BugFix
    • 16. September 2008 um 10:29

    Mal ein Bsp. (schnellste Variante mit Objekt):

    Spoiler anzeigen
    [autoit]

    #include<array.au3>

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

    Global $StartPfad = @ScriptDir
    Global $FileTyp = 'au3'
    $aFiles = _GetFilesFolder_Rekursiv($StartPfad, $FileTyp, 0)

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

    _ArrayDisplay($aFiles)

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

    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Rekursive Auflistung von Dateien und/oder Ordnern
    ; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
    ; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
    ; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
    ; optional: $iRetType 0 gibt Array, 1 gibt String zurück
    ; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
    ; 0 -@CRLF (Standard); 1 -@CR; 2 -@LF; oder beliebiges Zeichen
    ; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles,1), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    Return $aOut
    Else
    Return StringTrimRight($strFiles,1)
    EndIf
    EndFunc

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

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
    $strFiles &= $file.Path & $Delim
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc

    [/autoit]
  • Speicher von Spiel auslesen

    • BugFix
    • 15. September 2008 um 23:00

    Oh man, nicht schon wieder Bot oder Cheat.
    Wenn du die Grundlagen der Speicheradressierung und -Belegung nicht kennst, solltest du davon sowieso die Finger lassen.

  • Aus String Name der Datei heraussuchen

    • BugFix
    • 15. September 2008 um 15:13

    Oder so:

    [autoit]

    $Datei = "C:\Programme\DEAMON Tools\daemon.exe"
    MsgBox(0,"", StringTrimLeft($Datei, StringInStr($Datei, '\', 1, -1)))

    [/autoit]
  • Quotierung in Strings durch Klammern ersetzen

    • BugFix
    • 15. September 2008 um 13:11

    Hi,
    hier ein 'Nebenprodukt' aus meinem Projekt 'SQLite Administration'.
    In einem gegebenen String wird die Quotierung von Stringelementen durch Klammern ersetzt.
    Entweder im gesamten String oder einem definierten Bereich Von - Bis.
    - Übergabe String
    - Übergabe Quotierungszeichen (' oder "), auch ASCII-Wert möglich
    - Übergabe des öffnenden Klammersymbols, auch ASCII-Wert möglich
    - optional: Startposition im String
    - optional: Endpostion im String
    - Rückgabe String mit ausgeführten Ersetzungen, falls Quotierungszeichen nicht enthalten ==> Originalstring

    (Eigentlich sind es nur 3 Zeilen Code :D - aber um es variabel zu gestalten, muß man doch etwas 'drumherum' bauen. ;) )

    Beispiel
    [autoit]

    $s = 'Tralla "abc" - "bde" "haha" xyz "1234" halleluja'
    $s1 = "Tralla 'abc' - 'bde' 'haha' xyz '1234' halleluja"

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

    ; alle Quotierungen durch '[ ]' ersetzen:
    ConsoleWrite(_ReplQuoteWithBrackets($s, '"', '[') & @CRLF)
    ; ab dem "-" ersetzen mit '( )':
    ConsoleWrite(_ReplQuoteWithBrackets($s1, "'", '(', StringInStr($s, '-') ) & @CRLF)
    ; bis zum "xyz" ersetzen mit '{ }':
    ConsoleWrite(_ReplQuoteWithBrackets($s, '"', '{', -1, StringInStr($s, 'xyz') ) & @CRLF)

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

    #cs
    ergibt:

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

    Tralla [abc] - [bde] [haha] xyz [1234] halleluja
    Tralla 'abc' - (bde) (haha) xyz (1234) halleluja
    Tralla {abc} - {bde} {haha} xyz "1234" halleluja

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

    #ce

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

    ;===============================================================================
    ; Function Name: _ReplQuoteWithBrackets($sString, $sQuot, $sBrack [, $iFrom=1 [, $iTo=-1]])
    ; Description:: Ersetzt paarige Quotierung in einem String durch paarige Klammern
    ; Parameter(s): $sString der zu bearbeitende String
    ; $sQout zu ersetzendes Quotierungszeichen (' oder "), kann auch als ASCII-Wert übergeben werden
    ; $sBrack öffnende Klammer für die Ersetzung, kann auch als ASCII-Wert übergeben werden
    ; optional $iFrom Startposition für Ersetzung im String, Standard= 1
    ; optional $iTo Endposition für Ersetzung im String, Standard= -1 (Stringende)
    ; Für die optionalen Parameter kann als Standardwert auch Default od. -1 übergeben werden
    ; Note: Sollten $iFrom oder $iTo außerhalb eines sinnvollen Bereiches liegen, werden sie
    ; auf maximal möglichen Bereich angepaßt.
    ; Enthält der String keine Quotierung, wird der Originalstring zurückgegeben.
    ; Return Value(s): Erfolg Der String mit Klammern statt Quotierung
    ; Fehler 0 @error= 1 übergebenes Zeichen/ASCII-Wert für Quotierung ist falsch
    ; @error= 2 übergebenes Zeichen/ASCII-Wert für Klammer ist falsch
    ; Author(s): BugFix
    ;===============================================================================
    Func _ReplQuoteWithBrackets($sString, $sQuot, $sBrack, $iFrom=1, $iTo=-1)
    If $iFrom < 1 Or $iFrom = Default Then
    $iFrom = 1
    ElseIf $iFrom > StringLen($sString) -3 Then
    $iFrom = StringLen($sString) -3
    EndIf
    If $iTo > StringLen($sString) Or $iTo = -1 Or $iTo = Default Then
    $iTo = StringLen($sString)
    ElseIf $iTo < $iFrom +3 Then
    $iTo = $iFrom +3
    EndIf
    If Not IsNumber($sQuot) Then $sQuot = Asc($sQuot)
    If $sQuot <> 34 Then
    If $sQuot <> 39 Then Return SetError(1,0,0)
    EndIf
    If Not IsNumber($sBrack) Then $sBrack = Asc($sBrack)
    Local $open, $close, $sBefore = '', $sAfter = ''
    Switch $sBrack
    Case 40
    $open = 40
    $close = 41
    Case 91
    $open = 91
    $close = 93
    Case 123
    $open = 123
    $close = 125
    Case Else
    Return SetError(2,0,0)
    EndSwitch
    If $iFrom > 1 Then
    $sBefore = StringLeft($sString, $iFrom-1)
    $sString = StringTrimLeft($sString, $iFrom-1)
    EndIf
    If $iTo < StringLen($sString) Then
    $sAfter = StringRight($sString, StringLen($sString) -$iTo)
    $sString = StringTrimRight($sString, StringLen($sString) -$iTo)
    EndIf
    Do
    $sString = StringReplace(StringReplace($sString, Chr($sQuot), Chr($open), 1), Chr($sQuot), Chr($close), 1)
    Until @extended = 0
    Return $sBefore & $sString & $sAfter
    EndFunc ;==>_ReplQuoteWithBrackets

    [/autoit]

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™