 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 08.03.2009, 23:28 Titel: Filesplitter |
|
|
Also ich habe mir einen Filesplitter erstellt, der mir z.B. eine mp3 Datei in 1024 Byte "1 Kilobyte" große Files zerlegt.
Edit:
Man muss in C:\ den Ordner splitt anlegen.
und man muss eine mp3 datei in a.mp3 umbenennen und die a.mp3 muss auch in c:\ liegen.
Oder den Code natürlich umändern
Hier der Code:
Code: |
dim rest1 as ULONGINT
dim rest2 as ULONGINT
Dim a as ULONGINT
Dim aa as ULONGINT
Dim Ergebnis as ULONGINT
dim i as ULONGINT
dim ii as string
#INCLUDE "file.bi"
DIM fbc AS STRING
fbc = "C:\a.mp3"
a = FILELEN(fbc)
Ergebnis = a
rest1 = Ergebnis / 1024
print rest1
dim b as ULONGINT
REDIM FixedLenBuffer1(1 to 10000000) AS STRING * 1024
for i = 1 to rest1
ii = str(i)
b = i
if i = 1 then
Open "C:\a.mp3" For BINARY As #1
Get #1,1, FixedLenBuffer1(i)
Close #1
OPEN "C:\splitt\"+ii+".binaer" for BINARY as #2
put #2,1, FixedLenBuffer1(i)
CLOSE #2
else
Open "C:\a.mp3" For BINARY As #1
aa = (b -1) * 1024
Get #1,aa, FixedLenBuffer1(i)
Close #1
sleep 1
OPEN "C:\splitt\"+ii+".binaer" for BINARY as #2
put #2,1, FixedLenBuffer1(i)
CLOSE #2
end if
next
rest2 = Ergebnis MOD 1024
DIM FixedLenBuffer2 AS STRING * 1024
print rest2
if rest2 = 0 then
else
dim rest11 as ULONGINT
rest11 = rest1 * 1024
Open "C:\a.mp3" For BINARY As #1
Get #1,rest11, FixedLenBuffer2
Close #1
sleep 1
OPEN "C:\splitt\rest.binaer" for BINARY as #2
put #2,1, FixedLenBuffer2
CLOSE #2
end if
OPEN "C:\splitt\einstellungen.binaer" for OUTPUT as #2
PRINT #2, Ergebnis
PRINT #2, rest1
PRINT #2, rest2
CLOSE #2
sleep
|
nun ist es jedoch so, dass wenn ich die mp3 Datei in 1 Megabyte, also 1024 Byte * 1024 Byte große Dateistücke zerlegen will, es nicht funktioniert.
Hier der Code:
Code: |
dim rest1 as ULONGINT
dim rest2 as ULONGINT
Dim a as ULONGINT
Dim aa as ULONGINT
Dim Ergebnis as ULONGINT
dim i as ULONGINT
dim ii as string
#INCLUDE "file.bi"
DIM fbc AS STRING
fbc = "C:\a.mp3"
a = FILELEN(fbc)
Ergebnis = a
rest1 = Ergebnis / (1024 * 1024)
print rest1
dim b as ULONGINT
REDIM FixedLenBuffer1(1 to 10) AS STRING * (1024 * 1024)
for i = 1 to rest1
ii = str(i)
b = i
if i = 1 then
Open "C:\a.mp3" For BINARY As #1
Get #1,1, FixedLenBuffer1(i)
Close #1
OPEN "C:\splitt\"+ii+".binaer" for BINARY as #2
put #2,1, FixedLenBuffer1(i)
CLOSE #2
else
Open "C:\a.mp3" For BINARY As #1
aa = (b -1) * (1024 * 1024)
Get #1,aa, FixedLenBuffer1(i)
Close #1
sleep 1
OPEN "C:\splitt\"+ii+".binaer" for BINARY as #2
put #2,1, FixedLenBuffer1(i)
CLOSE #2
end if
next
rest2 = Ergebnis MOD (1024 * 1024)
DIM FixedLenBuffer2 AS STRING * (1024 * 1024)
print rest2
if rest2 = 0 then
else
dim rest11 as ULONGINT
rest11 = rest1 * (1024 * 1024)
Open "C:\a.mp3" For BINARY As #1
Get #1,rest11, FixedLenBuffer2
Close #1
sleep 1
OPEN "C:\splitt\rest.binaer" for BINARY as #2
put #2,1, FixedLenBuffer2
CLOSE #2
end if
OPEN "C:\splitt\einstellungen.binaer" for OUTPUT as #2
PRINT #2, Ergebnis
PRINT #2, rest1
PRINT #2, rest2
CLOSE #2
sleep
|
hat jemand eine Lösung wo der Fehler liegt?
Ich komme leider nicht drauf.
cu Andy |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 09.03.2009, 10:23 Titel: |
|
|
hat echt keiner eine Lösung parat? |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 09.03.2009, 12:41 Titel: |
|
|
warum so kompliziert?
Code: | ...
Const Teil = 1024
...
Open "C:\a.mp3" For Binary Read As #1
file_laenge = Lof(1)
Do While file_laenge > 0
If file_laenge > Teil-1 Then
teil_laenge = Teil
Else
teil_laenge = file_laenge
EndIf
file_nummer = file_nummer+1
Open "C:\splitt\" + Str(file_nummer) + ".binaer" For Binary Write As #2
For i = 1 To teil_laenge
Get #1,, ein_byte
Put #2,, ein_byte
Next i
Close #2
file_laenge = file_laenge-teil_laenge
Loop
Close #1
... |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|