FileDevider
Übersicht

AldiBetreff: FileDevider |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier, kumma:
Code: [AUSKLAPPEN] ;Filedevider Graphics 640,480,16,2 .start FlushKeys Print "[1] - Datei teilen" Print "[2] - Datei wiederherstellen" Print "[Esc] - Ende" Repeat If KeyHit(2)= 1 Then Goto devide_begin If KeyHit(3)= 1 Then Goto restore_begin If KeyHit(1)= 1 Then End Forever .devide_begin FlushKeys filename$= Input$("Ziel: ") origfile= OpenFile(filename) If origfile= 0 Or FileType(origfile)= 2 Then Print "Datei existiert nicht oder konnte nicht geladen werden!" Goto devide_begin EndIf .sizechose Print "Größe: " + FileSize(filename) + " byte." newfilesize= Input("Gewünschte Teildateigröße in byte: ") If newfilesize => FileSize(filename) Then Print "Übersteigt aktuelle Dateigröße!" : Goto sizechose parts= Int(Ceil(Float(FileSize(filename))/newfilesize)) Print "Datei wird in " + parts + " Teile geteilt." Print "Zum Fortfahren Taste drücken..." WaitKey Print "Teile Datei..." Dim files(parts) For I= 1 To parts files(I)= WriteFile(filename + I) For J= 0 To newfilesize - 1 If Eof(origfile)= 1 Then Exit byte= ReadByte(origfile) WriteByte files(I),byte Next CloseFile files(I) Next CloseFile origfile Print "Datei in " + parts + " Teile aufgeteilt." WaitKey Goto start .restore_begin FlushKeys name_firstpart$=Input$("Position erste Teildatei: ") If FileType(name_firstpart)= 0 Then Print "Datei existiert nicht!" : Goto restore_begin parts= Input("Anzahl Dateiteile: ") Dim files(parts) origfile= WriteFile(Left(name_firstpart,(Len(name_firstpart)-1))) partsize= FileSize(name_firstpart) Print "Teildateigröße: " + partsize + " byte." Print "Stelle Originaldatei wieder her..." For I= 1 To parts files(I)= ReadFile(Left(name_firstpart,(Len(name_firstpart)-1))+I) For J= 1 To partsize If Eof(files(I))= 1 Then Exit byte= ReadByte(files(I)) WriteByte origfile,byte Next CloseFile files(I) Next CloseFile origfile Print "Originaldatei wiederhergestellt." WaitKey Goto start |
||
naibaf7 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und was soll das bringen ?? Files zersplittern ![]() |
||
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master |
Florian |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
- Programmbeschreibung fehlt
- Quelltext enthält viele gotos - Es wäre schon, wenn der Quelltext zwei Funktionen zum zerteilen von Dateien und zum wiederherstellen von Dateien enthält. |
||
Das große BlitzBasic Community Tutorial
Stackmaschine 2.0 |
Aldi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Beschreibung:
Mit diesem Prog kann man Dateien... teilen ![]() die Gotos: Ich finde, es sind so wenige, dass man die Übersicht nicht verliert... Und die Funktionen: Gute Idee, aber.. naja... ![]() |
||
naibaf7 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich glaube zwar nicht das das soo gut is ![]() Aber vieleicht könnte man da noch einen kleinen Optimierungsversuch Sarten: Der erste Teil der Datei zum beispiel Sollte eine EXE sein, die wenn man sie anklickt den Zweiten Teil sucht und dann zusammenfügt!! Und noch n passwort in die exe Packen damit sie nicht jeder zusammenfügen kann. So hättest du n Top programm ![]() ![]() |
||
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master |
![]() |
Hip Teen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab da mal was gebastelt, mit Funktionen und so ![]() ![]() ![]() ![]() Code: [AUSKLAPPEN] ; Anregung durch Aldi
; brauchs aber sowieso im aktuellen Projekt... ; bla blub, Beschreibung braucht ihr hoffentlich net :P ; Verwendung: ; splitFiles: ; gebt den Pfad+Dateinamen des Files an, das ihr splitten wollt ; dann noch die Größe der Parts ; und falls die Files woanders hinsollen, geb den neuen Pfad an ; ; recoverSplitFiles: ; geb den Pfad an, in dem die splitts drinnen sind ; dann noch den alten Dateinamen ; optional: neuer Pfad ; optional: neuer Dateiname ; ; deletePartFiles: ; gebt das Verzeichnis an, in dem die PartFiles sind, gefolgt von dem original Dateinamen zeit = MilliSecs() splitFiles ("D:\blub.rar",1024*1024, "E:\") ;DeleteFile "D:\baer.rar" recoverSplitFiles("E:\", "blub.rar", "D:\","baer.rar") DeletePartFiles("E:\blub.rar") Notify (float(MilliSecs()) - Float (zeit) ) / 1000.0 + " Sekunden hat es gedauert" Function splitFiles( oldFileWithPath$, splitFileSize, pathToSplitFiles$ = "") Local bank, inputFileStream, sizeOfFile, numberParts, oldFileName$ Local bankPos oldFileName$ = LastPath ( oldFileWithPath$ ) inputFileStream = ReadFile( oldFileWithPath$) sizeOfFile = FileSize ( oldFileWithPath$) bank = CreateBank( sizeOfFile ) ReadBytes(bank, InputFileStream, 0,sizeOfFile) numberParts = Ceil (Float(sizeOfFile)/Float(splitFileSize)) count = numberParts bankPos = sizeOfFile Repeat count = count - 1 If pathToSplitFiles$ = "" outputFileStream = WriteFile (oldFileWithPath$ + counting$(count)) Else outputFileStream = WriteFile ( pathToSplitFiles+ oldFileName$ + counting$(count)) End If bankPos = bankPos - splitFileSize If bankPos < 0 Then WriteBytes (bank, outputFileStream, 0, splitFileSize+ bankPos) Else WriteBytes (bank, OutputFileStream, bankPos, splitFileSize) End If CloseFile outputFileStream Until count = 0 CloseFile inputFileStream End Function Function recoverSplitFiles( pathToSplitFiles$, oldFileName$, pathToNewFile$ = "", newFileName$ = "" ) Local bank, outputFileStream, oldFileSize, bankPos, partFileSize If newFileName$ = "" Then newFileName$ = oldFileName$ If pathToNewFile$ = "" Then pathToNewFile$ = pathToSplitFiles$ outputFileStream = WriteFile ( pathTonewFile$ + newFileName$) oldFileSize = countingOldFileSize ( pathToSplitFiles$ + oldFileName$) bank = CreateBank( oldFileSize ) While FileType( pathToSplitFiles$ + oldFileName$ + counting$(count)) = 1 inputFileStream = ReadFile( pathToSplitFiles$ + oldFileName$ + counting$(count) ) partFileSize = FileSize( pathToSplitFiles$ + oldFileName$ + counting$(count)) ReadBytes (bank, inputFileStream, bankPos, partFileSize) bankPos = bankPos + FileSize ( pathToSplitFiles + oldFileName$ + counting$(count)) CloseFile inputFileStream count = count + 1 Wend WriteBytes ( bank, outputFileStream, 0, oldFileSize) CloseFile outputFilestream End Function Function countingOldFileSize(originalFilePath$) Local oldFileSize While FileType(OriginalFilePath$+counting$(count)) = 1 oldFileSize = oldFileSize + FileSize(OriginalFilePath$+counting$(count)) count = count + 1 Wend Return oldFileSize End Function Function DeletePartFiles(originalFilePath$) Local oldFileSize While FileType(OriginalFilePath$+counting$(count)) = 1 DeleteFile ( OriginalFilePath$+counting$(count) ) count = count + 1 Wend End Function Function counting$(numberString$) While Len( numberString$) < 3 numberString$ = "0" + numberString$ Wend Return numberString$ End Function Function LastPath$(dirpath$) Local position, dirname$ position = RInstr(dirpath$,"\",1) If position = 0 Then Return dirname$ = Mid$(dirpath$,position + 1,-1) Return dirname$ End Function Function RInstr(stri$,search$,count=0) Local i If Len(search$) = 0 Then Return 0 For i = Len(stri$)-count To 1 Step -1 If Mid(stri$,i,Len(search$)) = search$ Then Return i EndIf Next Return 0 End Function |
||
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger" |
$tankY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Cool, sowas kann ich auch für ein älteres Projekt gebrauchen, also dann... ran an's Werk und danke für den Code^^ | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group