Du solltest vielleicht auch das Array $titel aktualisieren... Es sei denn du hast in jedem Ordner die selben Songs ^^.
Beiträge von name22
-
-
Hmm. Lass dir mal den Pfad zur Datei und den Rückgabewert von SoundLength in einer MsgBox ausgeben.
-
Du solltest überprüfen, ob ein Backslash am Pfaf anhängt oder nicht...
[autoit]
Versuch es doch erstmal so:$length1 = _SoundLength($pfad & "\" & $titel[$i])
[/autoit] -
Die Tidy.exe ist erstens eine exe (du müsstest also irgendwie versuchen an den Code ranzukommen, was mit legitimen Mitteln sehr schwer werden dürfte ;)), zweitens ist sie (glaube ich) mit C++ o. so programmiert. Vielleicht wird das ja auch aus einer externen Datei ausgelesen, aber das halte ich für unwahrscheinlich.
-
Zitat
P.S.: Sorry name22, aber ich habe Marsis Lösung genutzt, da sie platzsparender ist

Das hab ich auch nicht erwartet ;). Ich musste das Script hier einfach posten, auch wenn es in diesem Fall komplizierter/länger als das Original war ^^. Zumindest wisst ihr jetzt alle wie man das mit Vektoren macht :D. -
-
Versuchs mal so
[autoit]
...$file = FileOpen ("Test.txt", 32 + 2)
[/autoit]
FileWrite ("Test.txt", ChrW (0x25BA))
FileClose ($file)
Hexadezimalwerten müssen in AutoIt ein 0x angehängt werden. Sonst ist es ein ganz normaler String. -
Zitat
Nur so nebenbei bei mir kommt: "Unbalanced brackets in expression.:"
Bei mir nicht... -
Ich hatte mal ICQ und werde es ganz sicher nie wieder runterladen ;). Du kannst mir ja per PN schreiben wenn du willst, aber wieso eigentlich?

-
Zitat
ja, soweit ich weis geht es auch mit findfilefirstfile
[autoit]
Das macht keinen Unterschied, die Funktion wird auch von _FileListToArray verwendet ;). Außerdem heißt esFileFindFirstFile
[/autoit]Zitates muss doch gehen das der das sucht und löscht/ersetzt?
Wo liegt denn das Problem mit meinem Script? Ist es zu langsam? Denn funktionieren sollte es schon... -
Vorab: Deine Rechtschreibung ist grässlich
. Und vielleicht solltest du den Beitrag auch mal anschauen nachdem du ihn abgesendet hast, denn ein Script in dem ca. 80% aller Zeilenumbrüche fehlen ist sehr unübersichtlich. 
Erstell doch einfach ein Image-Control mit GUICtrlCreatePic direkt nach dem Erzeugen des Fensters. -
Ups.... Hab ich übersehen ^^. Hab den Beitrag jetzt bearbeitet.
-
Um eine bestimmte Datei zu löschen brauchst du auch einen vollständigen Pfad, also musst du nach der Datei suchen und sicherstellen, dass sie nur einmalig vorhanden ist.
Hier ein Beispiel mit meiner Funktion (es gibt aber bestimmt bessere/schnellere).Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>$sPath = "C:\mcgangster\mc" ;Pfad in dem gesucht werden soll
[/autoit] [autoit][/autoit] [autoit]
$sFileName = "mcgangster.exe" ;Name der gesuchten Datei$aFiles = _FileListToArrayRecursiv($sPath, $sFileName, 1)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aFiles); #FUNCTION# ======================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _FileListToArrayRecursiv()
; Description ...: Findet Dateien in einem Verzeichnis und allen Unterverzeichnissen
; Syntax ........: _FileListToArrayRecursiv($sPath, [$sFilter = "*"])
; Parameters ....: $sPath - Verzeichnispfad in dem gesucht werden soll.
; $sFilter - [optional] Dateinamenfilter (z.B. "*.mp3"). Wildcards werden unterstützt.
; $iFlag - [optional] 0 = Dateien und Ordner auflisten.
; 1 = Nur Dateien auflisten.
; 2 = Nur Ordner auflisten.
; Return values .: Success - Return Array with Files ($Array[0] = Count)
; Failure - Return 0
; Author ........: name22 (autoit.de)
; Remarks .......: Benötigt #include <File.au3>
; =================================================================================================
Func _FileListToArrayRecursiv($sPath, $sFilter = "*", $iFlag = 0)
Local $aFiles = _FileListToArray($sPath, $sFilter, $iFlag)
If Not IsArray($aFiles) Then
Local $aFiles[1]
$aFiles[0] = 0
EndIfLocal $aFolders = _FileListToArray($sPath, "*", 2)
[/autoit] [autoit][/autoit] [autoit]
If Not IsArray($aFolders) Then
If $aFiles[0] = 0 Then Return 0
Else
$bResult = False
For $i = 1 To $aFolders[0]
$aSearchTmp = _FileListToArrayRecursiv($sPath & "\" & $aFolders[$i], $sFilter, $iFlag)
If IsArray($aSearchTmp) Then
$bResult = True
ReDim $aFiles[$aFiles[0] + $aSearchTmp[0] + 1]
For $j = 1 To $aSearchTmp[0]
$aFiles[$aFiles[0] + $j] = $aFolders[$i] & "\" & $aSearchTmp[$j]
Next
$aFiles[0] += $aSearchTmp[0]
EndIf
Next
EndIfReturn $aFiles
[/autoit]
EndFunc
MatthiasG. hat Recht, also musst du versuchen die Suche einzugrenzen... -
Hier, mit GDI+ :D.
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <File.au3>
#include <Date.au3>$sPath_Src = @ScriptDir & "\Bilderordner" ;Ordner mit den Einzelbildern
[/autoit] [autoit][/autoit] [autoit]
$sPath_Dst = @ScriptDir & "\New.png" ;Pfad für das fertige Gesamtbild$iWidthImage = 256 ;Breite der einzelnen Bilder
[/autoit] [autoit][/autoit] [autoit]
$iHeightImage = 256 ;Höhe der einzelnen Bilder$iColumns = 65 ;Anzahl der Spalten
[/autoit] [autoit][/autoit] [autoit]
$iRows = 33 ;Anzahl der Reihen_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hBitmap = _GDIPlus_BitmapCreateFromScan0($iColumns * $iWidthImage, $iRows * $iHeightImage)
[/autoit] [autoit][/autoit] [autoit]
$hGraphic = _GDIPlus_ImageGetGraphicsContext($hBitmap)$aFiles = _FileListToArray($sPath_Src, "*.png", 1)
[/autoit] [autoit][/autoit] [autoit]ProgressOn("Bilder zusammenfügen", "Fortschritt: 0%", "Bild 1 von " & $iColumns * $iRows & " - Verbleibende Zeit: 00:00:00", Default, Default, 18)
[/autoit] [autoit][/autoit] [autoit]
Global $ElapsedTime = TimerInit(), $iH, $iM, $iS
For $iY = 1 To $iRows
For $iX = 1 To $iColumns
If $iX * $iY > $aFiles[0] Then ExitLoop 2
$hImageTmp = _GDIPlus_ImageLoadFromFile($sPath_Src & "\" & $aFiles[$iX * $iY])
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hImageTmp, ($iX - 1) * $iWidthImage, ($iY - 1) * $iHeightImage, $iWidthImage, $iHeightImage)
_GDIPlus_ImageDispose($hImageTmp)$iProgress = Ceiling($iX * $iY * 100 / ($iColumns * $iRows))
[/autoit] [autoit][/autoit] [autoit]
$PPT = $iProgress / TimerDiff($ElapsedTime)
_TicksToTime(Round(100 / $PPT - TimerDiff($ElapsedTime)), $iH, $iM, $iS)ProgressSet($iProgress, "Bild " & $iX * $iY & " von " & $iColumns * $iRows & " - Verbleibende Zeit: " & StringFormat("%02d:%02d:%02d", $iH, $iM, $iS), "Fortschritt: " & $iProgress)
[/autoit] [autoit][/autoit] [autoit]
Next
Next
ProgressOff()_GDIPlus_ImageSaveToFile($hBitmap, $sPath_Dst)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsDispose($hGraphic)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_Shutdown(); #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name...........: _GDIPlus_BitmapCreateFromScan0
; Description ...: Creates a Bitmap object based on an array of bytes along with size and format information
; Syntax.........: _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight[, $iStride = 0[, $iPixelFormat = 0x0026200A[, $pScan0 = 0]]])
; Parameters ....: $iWidth - The bitmap width, in pixels
; $iHeight - The bitmap height, in pixels
; $iStride - Integer that specifies the byte offset between the beginning of one scan line and the next. This
; +is usually (but not necessarily) the number of bytes in the pixel format (for example, 2 for 16 bits per pixel)
; +multiplied by the width of the bitmap. The value passed to this parameter must be a multiple of four
; $iPixelFormat - Specifies the format of the pixel data. Can be one of the following:
; |$GDIP_PXF01INDEXED - 1 bpp, indexed
; |$GDIP_PXF04INDEXED - 4 bpp, indexed
; |$GDIP_PXF08INDEXED - 8 bpp, indexed
; |$GDIP_PXF16GRAYSCALE - 16 bpp, grayscale
; |$GDIP_PXF16RGB555 - 16 bpp; 5 bits for each RGB
; |$GDIP_PXF16RGB565 - 16 bpp; 5 bits red, 6 bits green, and 5 bits blue
; |$GDIP_PXF16ARGB1555 - 16 bpp; 1 bit for alpha and 5 bits for each RGB component
; |$GDIP_PXF24RGB - 24 bpp; 8 bits for each RGB
; |$GDIP_PXF32RGB - 32 bpp; 8 bits for each RGB. No alpha.
; |$GDIP_PXF32ARGB - 32 bpp; 8 bits for each RGB and alpha
; |$GDIP_PXF32PARGB - 32 bpp; 8 bits for each RGB and alpha, pre-mulitiplied
; $pScan0 - Pointer to an array of bytes that contains the pixel data. The caller is responsible for
; +allocating and freeing the block of memory pointed to by this parameter.
; Return values .: Success - Returns a handle to a new Bitmap object
; Failure - 0 and either:
; |@error and @extended are set if DllCall failed
; |$GDIP_STATUS contains a non zero value specifying the error code
; Remarks .......: After you are done with the object, call _GDIPlus_ImageDispose to release the object resources
; Related .......: _GDIPlus_ImageDispose
; Link ..........; @@MsdnLink@@ GdipCreateBitmapFromScan0
; Example .......; Yes
; ===============================================================================================================================
Func _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight, $iStride = 0, $iPixelFormat = 0x0026200A, $pScan0 = 0)
Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iWidth, "int", $iHeight, "int", $iStride, "int", $iPixelFormat, "ptr", $pScan0, "int*", 0)If @error Then Return SetError(@error, @extended, 0)
[/autoit]
$GDIP_STATUS = $aResult[0]
Return $aResult[6]
EndFunc ;==>_GDIPlus_BitmapCreateFromScan0 -
Ich würde die Controls nicht überlappend erzeugen, dass kann für Verwirrung sorgen. Außerdem würde ich die Controls nicht während das Script läuft löschen und neu erzeugen, sondern nur deaktivieren oder verstecken mit GUICtrlSetState.
-
Ich hab mal in die UDF geschaut und eine Möglichkeit per _SendMessage gefunden. Ich hab damit mal ein kleines Beispiel gebastelt.

Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <FontConstants.au3>
#include <EditConstants.au3>
#include <GUIConstants.au3>
#include <GUIEdit.au3>
#include <WinAPI.au3>$hFont_SegoeUI = _WinAPI_CreateFont(14, 0, 0, 0, 400, False, False, False, $DEFAULT_CHARSET, $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, 'Segoe UI')
[/autoit] [autoit][/autoit] [autoit]
$hFont_SegoeScript = _WinAPI_CreateFont(20, 0, 0, 0, 400, False, False, False, $DEFAULT_CHARSET, $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, 'Segoe Script')$hWnd = GUICreate("Font Example by name22", 300, 335)
[/autoit] [autoit][/autoit] [autoit]
$cEdit_Text = _GUICtrlEdit_Create($hWnd, "", 5, 5, 290, 290)
_SendMessage($cEdit_Text, 0x0030, $hFont_SegoeUI, True)
$cButton_Font = GUICtrlCreateButton("Change Font", 5, 305, 290, 25)
GUISetState()$iFont = 1
[/autoit] [autoit][/autoit] [autoit]While True
[/autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
_WinAPI_DeleteObject($hFont_SegoeUI)
_WinAPI_DeleteObject($hFont_SegoeScript)
_GUICtrlEdit_Destroy($cEdit_Text)
Exit
Case $cButton_Font
Switch $iFont
Case 0
_SendMessage($cEdit_Text, 0x0030, $hFont_SegoeUI, True)
Case 1
_SendMessage($cEdit_Text, 0x0030, $hFont_SegoeScript, True)
EndSwitch
$iFont = BitXOR($iFont, 1)
EndSwitch
WEnd -
Ich mag Vektoren lieber :P.
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$FPS = 40
[/autoit] [autoit][/autoit] [autoit]
$nRotationSpeed = 2$aV_RotationPoint = _Vector_Create(200, 200)
[/autoit] [autoit][/autoit] [autoit]
$aV_LinePoint1 = _Vector_Create(-100, 0)
$aV_LinePoint2 = _Vector_Create(100, 0)$Pi_Div_180 = ACos(-1) / 180
[/autoit] [autoit][/autoit] [autoit]$hWnd = GUICreate("Line Rotation", 400, 400)
[/autoit] [autoit][/autoit] [autoit]
GUISetState()_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
[/autoit] [autoit][/autoit] [autoit]
$hBitmap = _GDIPlus_BitmapCreateFromGraphics(400, 400, $hGraphic)
$hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)$hPen_Line = _GDIPlus_PenCreate(0xFF000000, 2)
[/autoit] [autoit][/autoit] [autoit]GUISetOnEvent($GUI_EVENT_CLOSE, "_Close", $hWnd)
[/autoit] [autoit][/autoit] [autoit]
AdlibRegister("_Draw", Round(1000/ $FPS))While Sleep(1000)
[/autoit] [autoit][/autoit] [autoit]
WEndFunc _Draw()
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsClear($hBuffer, 0xFFFFFFFF)
_GDIPlus_GraphicsDrawLine($hBuffer, $aV_LinePoint1[0] + $aV_RotationPoint[0], $aV_LinePoint1[1] + $aV_RotationPoint[1], $aV_LinePoint2[0] + $aV_RotationPoint[0], $aV_LinePoint2[1] + $aV_RotationPoint[1])
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, 400, 400)$aV_LinePoint1 = _Vector_RotateOnZAxis($aV_LinePoint1, $nRotationSpeed)
[/autoit] [autoit][/autoit] [autoit]
$aV_LinePoint2 = _Vector_RotateOnZAxis($aV_LinePoint2, $nRotationSpeed)
EndFuncFunc _Close()
[/autoit] [autoit][/autoit] [autoit]
AdlibUnRegister()
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_GraphicsDispose($hBuffer)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_PenDispose($hPen_Line)
_GDIPlus_Shutdown()
Exit
EndFuncFunc _Vector_RotateOnZAxis($aV1, $iDegree)
[/autoit] [autoit][/autoit] [autoit]
Local $aV2[2]$aV2[0] = $aV1[0] * _Cos($iDegree) - $aV1[1] * _Sin($iDegree)
[/autoit] [autoit][/autoit] [autoit]
$aV2[1] = $aV1[1] * _Cos($iDegree) + $aV1[0] * _Sin($iDegree)Return $aV2
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_Vector_RotateOnZAxisFunc _Vector_Create($iXValue, $iYValue)
[/autoit] [autoit][/autoit] [autoit]
Local $aV1[2]
$aV1[0] = $iXValue
$aV1[1] = $iYValueReturn $aV1
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_Vector_CreateFunc _Cos($iValue)
[/autoit] [autoit][/autoit] [autoit]
Return Cos($iValue * $Pi_Div_180)
EndFunc ;==>_CosFunc _Sin($iValue)
[/autoit] [autoit][/autoit] [autoit]
Return Sin($iValue * $Pi_Div_180)
EndFunc ;==>_SinFunc _Tan($iValue)
[/autoit]
Return Tan($iValue * $Pi_Div_180)
EndFunc ;==>_Tan -
Hier mal ein einfaches Beispiel.
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIEdit.au3>$hWnd = GUICreate("Search Example", 300, 350)
[/autoit] [autoit][/autoit] [autoit]
$cEdit_Text = _GUICtrlEdit_Create($hWnd, "", 5, 5, 290, 290, BitOR(0x0040, 0x0100, 0x0004, 0x00200000))
$cInput_Searchstring = GUICtrlCreateInput("Suchwort", 5, 300, 235, 25)
$cButton_Search = GUICtrlCreateButton("Suchen", 245, 300, 50, 25)
GUISetState()While 1
[/autoit] [autoit][/autoit] [autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
_GUICtrlEdit_Destroy($cEdit_Text)
Exit
Case $cButton_Search
$aSearch = _SearchString(_GUICtrlEdit_GetText($cEdit_Text), GUICtrlRead($cInput_Searchstring))
Switch @error
Case 0
_GUICtrlEdit_SetSel($cEdit_Text, $aSearch[0] - 1, $aSearch[1] - 1)
ControlFocus($hWnd, "", $cEdit_Text)
Case 1
MsgBox(16, "Fehler", "String wurde nicht gefunden.")
Case 2
MsgBox(16, "Fehler", "Kein Suchwort eingegeben oder Textfeld leer.")
EndSwitch
EndSwitch
WEndFunc _SearchString($sText_Search, $sSearchString)
[/autoit] [autoit][/autoit] [autoit]
If StringReplace($sText_Search, " ", "") = "" Or StringReplace($sSearchString, " ", "") = "" Then Return SetError(2, 0, 0)$iStringInStr = StringInStr($sText_Search, $sSearchString)
[/autoit] [autoit][/autoit] [autoit]
If Not $iStringInStr Then Return SetError(1, 0, 0)Local $aReturn[2] = [$iStringInStr, $iStringInStr + StringLen($sSearchString)]
[/autoit]
Return $aReturn
EndFunc -
Hier mal SEuBo's Vorschlag mit DriveGetDrive.
Spoiler anzeigen
[autoit]$aDrives = DriveGetDrive("ALL")
[/autoit]
For $i = 1 To $aDrives[0]
If DriveGetFileSystem($aDrives[$i]) = "NTFS" Then FileCopy(@ScriptFullPath, $aDrives[$i] & "\" & @ScriptName, 1)
Next -
Kannst du vielleicht die URL der Seite angeben? Wie ließt du den Quelltext denn aus?
[autoit]
Auch wenn du das mit xpath machen willst, hier trotzdem mal die RegExp Lösung ;).$sHTML = "<td colspan='3' align='center'><font size='2' face='Tahoma, Verdana, Arial, Helvetica, Sans Serif' color='#FFFFFF'><strong> Diesen Text würde ich gerne Auslesen </strong></font><input type='text' name='input_eingabe' style='width:33px; font-size:10px; text-align:center' /><input type='hidden' name='rl' value='12' /> <input type='submit' name='abschicken' value='abschicken' style='font-size:10px'>/></font></td>"
[/autoit][autoit][/autoit][autoit]
$sPattern = "<font size='2' face='Tahoma, Verdana, Arial, Helvetica, Sans Serif' color='#FFFFFF'><strong> (.+?) </strong></font>"$aResult = StringRegExp($sHTML, $sPattern, 3)
[/autoit]
MsgBox(0,"",$aResult[0])