Hi Community,
ich hab mich im Dateien splitten versucht und jedoch gescheitert. Die "Part_2" Datei ist bei mir immer doppelt so groß, wie die ursprüngliche Datei und die "wiederzusammengefügte" Datei ist ebenfalls doppelt so groß wie die Ausgangsdatei.
Mein Code bisher:
Spoiler anzeigen
#include <File.au3>
[/autoit] [autoit][/autoit] [autoit];|> Edit to test! <|
;> Dateiendung der fertigen Datei
$sOutputFileExtension = "mp4"
;> Datei die gesplittet werden soll
$sFilePathToLoad = "C:\Users\xxxxx\Videos\Apologize.mp4"
;|||||||||||||||||||
$sFilePath = @ScriptDir & "\Part_"
$sFileExtension = "." & $sOutputFileExtension & ".sf"
$iTrim = 200000
[/autoit] [autoit][/autoit] [autoit];--------------
; Datei, die gesplittet werden soll, einlesen -> Modus 16: Erzwinge binäres (byte) Auslesen und Schreiben für FileRead und FileWrite
$hFileOpen = FileOpen($sFilePathToLoad, 16)
[/autoit] [autoit][/autoit] [autoit]$sBinaeryFileData = FileRead($hFileOpen)
FileClose($hFileOpen)
;$sBinaeryFileData enthält nun den Binärycode
$iFileLenght = StringLen($sBinaeryFileData)
;-----------------
; 2 Dateien erstellen, mit jeweils nur Teilen aus dem Binärycode
;-> File 1: enthält nur $Trim (200000) Zeichen
_FileCreate($sFilePath & "1" & $sFileExtension)
$hFile1 = FileOpen($sFilePath & "1" & $sFileExtension, 2)
FileWrite($hFile1, StringLeft($sBinaeryFileData,$iTrim))
FileClose($hFile1)
;-> File 2: enthält nur $iFileLenght - $Trim Zeichen
_FileCreate($sFilePath & "2" & $sFileExtension)
$hFile2 = FileOpen($sFilePath & "2" & $sFileExtension, 2)
FileWrite($hFile2,StringRight($sBinaeryFileData,$iFileLenght-$iTrim))
FileClose($hFile2)
;-----------------
; Datei erstellen, inder die beiden eben erstellten Dateien, wieder vereint werden sollen
$sNewFileName = @ScriptDir & "\Video_Completed." & $sOutputFileExtension
_FileCreate($sNewFileName)
;-----------------
; Dateien auslesen
;-> File 1 einlesen
$hFile1 = FileOpen($sFilePath & "1" & $sFileExtension, 0)
$hDataFile1 = FileRead($hFile1)
;-> File 2 einlesen
$hFile2 = FileOpen($sFilePath & "2" & $sFileExtension, 0)
$hDataFile2 = FileRead($hFile2)
;-> Datei, inder die Codes vereint werden sollen, öffnen und beiden Codeteile einfügen
$hNewFile = FileOpen($sNewFileName,2)
FileWrite($hNewFile,$hDataFile1 & $hDataFile2)
FileClose($hNewFile)
[/autoit] [autoit][/autoit] [autoit];- Dateigrößen anzeigen
ToolTip("Information:" & @CRLF & "File 1: " & FileGetSize($sFilePath & "1" & $sFileExtension) & @CRLF & "File 2: " & FileGetSize($sFilePath & "2" & $sFileExtension) & @CRLF & @CRLF & "Completed File: " & FileGetSize($sNewFileName))
Sleep(4000)
Exit