  | 
					
						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, 22: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, 09: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, 11: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.
  | 
   
 
     |