[verschoben nach H&U]
Beiträge von Oscar
-
-
Das Stichwort ist "rekursiv". Benutze einfach mal die Suchfunktion damit, dann findest Du diverse Funktionen zum auslesen der Dateien/Ordner.
-
Was verstehst Du denn unter einer Admin-Funktion?
-
Ja, den Fehler beseitigen.

-
Das geht so:
[autoit]
[/autoit]
#include<Array.au3>
$Source = "Die Tomate zählt in Europa aufgrund ihrer Einführung durch den Menschen zu den bla bla"
$title = StringRegExp($Source, "([A-ZÄÖÜ][\wäöüßÄÖÜ]{3,}+)", 3)
_ArrayDisplay($title, "Ergebnis") -
Alles Gute zum Geburtstag! Ich wünsche Dir eine schöne Feier.
Bleib wie Du bist und erfreue uns weiterhin mit Deinen Beiträgen.
-
Es gibt in Deinem Skript keine Zeile 19. Poste bitte Dein ganzes Skript. Falls das ein Gamebot werden soll, vergiss es (Forenregeln beachten!).
-
Der Style heisst auch $BS_ICON. Hier ein Beispiel:
[autoit]
[/autoit]
#include <ButtonConstants.au3>
$hGui = GUICreate('Test', 600, 400)
$idButton = GUICtrlCreateButton('', 10, 10, 64, 64, $BS_ICON)
GUICtrlSetImage(-1, @ScriptDir & '\clock.ico')
GUISetState()
Do
Until GUIGetMsg() = -3 -
Was nicht da ist, lässt sich nicht auslesen.
Die Funktion habe schon ich ausgiebig getestet (mehrere tausend MP3-Dateien), da ich sie in meinem Musik-Quiz benutze. Sie produziert jedenfalls keinen Absturz und bis jetzt habe ich noch keine MP3-Datei gefunden, bei der sie Probleme hätte.
Solltest Du bei Dir eine Datei finden, so wäre ich Dir dankbar für einen Hinweis. -
Du bekommst ein 2D-Array zurück. In $array[0][1] befindet sich der Titel.
Hier ein Beispielskript:Spoiler anzeigen
[autoit]
[/autoit]
#include <Array.au3>
#include <ID3Tag.au3>
Global $sPath, $iTimer, $aRet
While True
$sPath = FileOpenDialog('Select MP3-File', @ScriptDir, 'MP3-Files (*.mp3)', 3)
If @error Then Exit
$iTimer = TimerInit()
$aRet = _ReadID3Tag($sPath)
ConsoleWrite($sPath & @CR & 'Error = ' & @error & @CR & Round(TimerDiff($iTimer), 3) & ' msec.' & @CR & @CR)
_ArrayDisplay($aRet)
WEnd -
Hier noch eine Erklärung mit Screenshots:
Schritt1:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
Schritt2:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
Schritt3:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
Schritt4:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
Bei Schritt4 nicht auf "In den Beitrag einfügen" klicken! -
Lass Dir mal die MP3-Dateinamen in die Console ausgeben, dann siehst Du, bei welcher Datei der Fehler auftritt.
Ich hatte nämlich mit der obigen UDF auch schon Probleme mit einigen MP3s, die total verkorkste ID3-Tags besaßen.Alternativ (wenn Du die ID3-Tags nur auslesen willst, nicht schreiben) könntest Du auch meine Funktion (Anhang) benutzen.
-
Wie geht das mit dem: tv_freeze hat folgende Datei angehängt:
AutoStarter-TV_Freeze.zip (54,805 kB - 1 mal heruntergeladen - zuletzt: Heute, 11:42) ????Einfach nur als Anhang hinzufügen (nicht in den Beitrag einfügen) und "Absenden".
-
Warum willst Du das nicht komplett in AutoIt machen?
Zum Beispiel so:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
$iTimer = TimerInit()
$sDir = 'C:'
$array = _RecursiveFileListToArray($sDir, '', 2)
ConsoleWrite(TimerDiff($iTimer) & @CR)
If IsArray($array) Then
_ArrayDisplay($array)
EndIf;===============================================================================
[/autoit]
; Function Name: _RecursiveFileListToArray($sPath[, $sPattern][, $iFlag][, $iFormat][, $fRecursion][, $sDelim])
; Description:: gibt Verzeichnisse (rekursiv) und/oder Dateien zurück, die einem RegExp-Pattern entsprechen
; Parameter(s): $sPath = Startverzeichnis
; $sPattern = ein beliebiges RexExp-Pattern für die Auswahl
; $iFlag = Auswahl
; 0 = Dateien & Verzeichnisse
; 1 = nur Dateien
; 2 = nur Verzeichnisse
; $iFormat = Rückgabeformat
; 0 = String
; 1 = Array mit [0] = Anzahl
; 2 = Nullbasiertes Array
; $fRecursion = Verzeichnisse rekursiv durchsuchen
; False = Nein
; True = Ja
; $sDelim = Trennzeichen für die String-Rückgabe
; Requirement(s): AutoIt 3.3.0.0
; Return Value(s): Array/String mit den gefundenen Dateien/Verzeichnissen
; Author(s): Oscar (http://www.autoit.de)
; Anregungen von: bernd670 (http://www.autoit.de)
; und: AspirinJunkie (http://www.autoit.de)
;===============================================================================
Func _RecursiveFileListToArray($sPath, $sPattern = '', $iFlag = 0, $iFormat = 1, $fRecursion = True, $sDelim = @CRLF, $fOpenDLL = True)
Local $hSearch, $sFile, $sReturn = '', $aD
Local Static $hDll
If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
$hSearch = FileFindFirstFile($sPath & '*')
If @error Or $hSearch = -1 Then Return SetError(1, 0, $sReturn)
If $fOpenDLL Then $hDll = DllOpen('kernel32.dll')
While True
$sFile = FileFindNextFile($hSearch)
If @error Then ExitLoop
If @extended Then
$aD = DllCall($hDll, 'dword', 'GetFileAttributesW', 'wstr', $sPath & $sFile)
If @error Or BitAND($aD[0], 0x400) Then ContinueLoop
If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
If $fRecursion Then $sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0, True, $sDelim, False)
ContinueLoop
EndIf
If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
WEnd
FileClose($hSearch)
If $fOpenDLL Then DllClose($hDll)
If $iFormat And $sReturn = '' Then Return StringSplit($sReturn, '', $iFormat)
If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
Return $sReturn
EndFunc -
Ich wünsche Dir und Deiner (jetzt noch größeren) Familie alles Gute.
Auf dass sich der Kleine gut entwickelt.
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. -
Ich bevorzuge den OnEvent-Mode:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <IE.au3>Opt('GUIOnEventMode', 1)
[/autoit] [autoit][/autoit] [autoit];HautpGUI
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$GUI = GUICreate("AutoRadio", 570, 450)
GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseGui')
$Menu = GUICtrlCreateMenu("Sender")
$IE = _IECreateEmbedded()
$browser = GUICtrlCreateObj($IE, 0, 0, 569, 449)
GUISetState(@SW_SHOW, $GUI);~ $var = IniReadSection(@ScriptDir & "\sender.ini", "sender")
[/autoit] [autoit][/autoit] [autoit]
Global $var[5][2] = [[4, 0],['A', ''],['B', ''],['C', ''],['D', '']] ; <- zum testen
Global $aIDMenuItem[$var[0][0]]If @error Then
[/autoit] [autoit][/autoit] [autoit]
MsgBox(4096, @ScriptDir & "sender.ini", "Es ist ein Fehler aufgetreten. Warscheinlich keine INI Datei vorhanden.")
Else
For $i = 1 To $var[0][0]
$aIDMenuItem[$i - 1] = GUICtrlCreateMenuItem($var[$i][0], $Menu)
GUICtrlSetOnEvent(-1, '_CallSender')
Next
EndIfWinWaitClose($GUI)
[/autoit] [autoit][/autoit] [autoit]
ExitFunc _CloseGui()
[/autoit] [autoit][/autoit] [autoit]
GUIDelete($GUI)
EndFunc ;==>_CloseGuiFunc _CallSender()
[/autoit]
Local $iSender = @GUI_CtrlId - $aIDMenuItem[0] + 1
MsgBox(0, 'Sender', $var[$iSender][0])
EndFunc ;==>_CallSender -
Ich habe momentan nicht mehr soviel Zeit mich um alle Projekte zu kümmern.
Wenn jemand Lust hat, kann er das Projekt hier (Computer-Info) gern übernehmen. -
Hallo und herzlich willkommen!
Hier links unter "Downloads" findest Du das Wichtigste. Auf jeden Fall die Stabil-Version (3.3.8.1) und SciTE. Die deutsche Hilfe ist sehr gut (wurde von einigen User hier aus dem Forum übersetzt). Die Beta-Version würde ich als Anfänger erstmal nicht benutzen. "OrganizeIncludes" ist von Xeno programmiert, damit man sich nicht um die benötigten Includes kümmern muss. -
Mit GUICtlrRead kannst Du den Status der Combobox auslesen. Danach kannst Du mit z.B. Switch darauf reagieren:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
GUICreate("My GUI combo")
$Button1 = GUICtrlCreateButton("Start", 10, 50, 100, 25)
$Combo1 = GUICtrlCreateCombo("Rechner", 10, 10)
GUICtrlSetData(-1, "Notepad|InternetExplorer", "Rechner")
GUISetState()While 1
[/autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Switch GUICtrlRead($Combo1)
Case "Rechner"
ShellExecute("calc.exe")
Case "Notepad"
ShellExecute("notepad.exe")
Case "InternetExplorer"
ShellExecute("iexplore.exe")
EndSwitch
EndSwitch
WEnd -
oder so:
[autoit]
[/autoit][autoit][/autoit][autoit]
#include <Array.au3>
$string = "Apfel,Frucht,Birne,Frucht,Affe,Tier,Ameise,Tier,"$array1 = StringRegExp($string, '(?:(.+?),.+?,)', 3)
[/autoit][autoit][/autoit][autoit]
_ArrayDisplay($array1)$array2 = StringRegExp($string, '(?:.+?,(.+?),)', 3)
[/autoit]
_ArrayDisplay($array2)