![]() |
Hilfe für einen Filesplitter
-Ich arbeite an einem Filesplitter weiss aber nicht wie ich eine Datei auf x kB splitten kann.
-Wie kann ich in eine Batch Datei befehle schreiben wie "echo off" schreiben? Bittel um Hilfe! Man liest sich :hi: Sascha |
Re: Hilfe für einen Filesplitter
|
Re: Hilfe für einen Filesplitter
Wist ihr was mir bei diesen Betrag bewußt wurde.
Zu DOS-Zeiten hab ich einen FileSplitter entworfen, damit ich Datei auf mehrere Disketten verteilen kann. Gerade gestern Nacht zw. 21 und 24 Uhr, also zu Windows Zeiten, habe ich ein Programm entworfen, dass aus vielen Dateien eine zu macht, ein Art Mix-Archiv für schnelle Zugriffe. Da viele kleine Dateien mehr Platz auf der Platte einnehmen als eine große. Es ändert sich alles :D mal. |
Re: Hilfe für einen Filesplitter
Hier ist mal der kompletten Code zum Splitten/Zusammensetzten von Dateien mit FileStreams von
![]() Vielleicht hilft's:
Delphi-Quellcode:
// Hiermit können Dateien gesplittet und zusammengesetzt werden.
// Beim Splitten gibt man die zu splittende Datei, den Zielordner für // die Teildateien und deren gewünschte Anzahl an. Beim Zusammensetzen gibt // man zuerst den Ordner an, in dem sich die Teildateien befinden, dann den // Ursprungsnamen der Originaldatei und dann den Zielordner, in dem die Datei // wieder zusammengesetzt werden soll, gefolgt von der Anzahl der Teildateien. // Getestet mit D4 unter WinME uses FileCtrl; procedure dateisplitten(dateiname,zielpfad:string;Teile:byte); var ts,ats:TFilestream; x:integer; s,edg:string; begin if teile > 1 then begin edg:=extractfileext(dateiname); s:=changefileext(extractfilename(dateiname),'')+'_'; if zielpfad[length(zielpfad)]<>'\' then zielpfad:=zielpfad+'\'; ForceDirectories(zielpfad); if not DirectoryExists(zielpfad) then begin showmessage('Ordnerfehler'); exit; end; try ts:=TFilestream.create(dateiname,fmopenread); except showmessage('Datei konnte nicht geöffnet werden.'); exit; end; if ts.size < teile then begin showmessage('Anzahl der Teildateien ist zu groß.'); ts.free; exit; end; for x:=1 to teile do begin try ats:=TFilestream.create(zielpfad+s+inttostr(x)+edg+'T',fmcreate); except showmessage('Teildatei konnte nicht erstellt werden.'); ts.free; exit; end; try if x=teile then ats.CopyFrom(ts,ts.size - ts.position) else ats.CopyFrom(ts,ts.size div teile); except showmessage('Fehler beim Kopieren der Daten.'); ts.free; ats.free; exit; end; ats.free; end; ts.free; end else showmessage('Anzahl der Teildateien muss mindestens 2 sein.'); end; procedure dateizusammensetzen(quellpfad,stammname,zielpfad:string;Teile:byte); var ts,ats:TFilestream; x:integer; s,edg:string; begin if teile > 1 then begin edg:=extractfileext(stammname); s:=changefileext(stammname,''); if quellpfad[length(quellpfad)]<>'\' then quellpfad:=quellpfad+'\'; if zielpfad[length(zielpfad)]<>'\' then zielpfad:=zielpfad+'\'; ForceDirectories(zielpfad); if not DirectoryExists(zielpfad) then begin showmessage('Ordnerfehler'); exit; end; try ts:=TFilestream.create(zielpfad+stammname,fmcreate); except showmessage('Datei konnte nicht erstellt werden.'); exit; end; for x:=1 to teile do begin try ats:=TFilestream.create(quellpfad+s+'_'+inttostr(x)+edg+'T',fmopenread); except showmessage('Teildatei konnte nicht geöffnet werden.'); ts.free; exit; end; try ts.CopyFrom(ats,ats.size) except showmessage('Fehler beim Kopieren der Daten.'); ts.free; ats.free; exit; end; ats.free; end; ts.free; end else showmessage('Anzahl der Teildateien muss mindestens 2 sein.'); end; // Beispielaufruf zum Splitten procedure TForm1.Button3Click(Sender: TObject); begin dateisplitten('d:\bilder\corel00.bmp','c:\Temp',3); end; // Beispielaufruf zum Zusammensetzen procedure TForm1.Button4Click(Sender: TObject); begin dateizusammensetzen('c:\Temp','corel00.bmp','c:\Pictures',3); end; |
Re: Hilfe für einen Filesplitter
wollt nur mal fragen ob dein Alter stimmt, nur rein Interesse halber, da ich heut in einem anderen Forum eine ähnliche frage gelesen hab, aber in das forum tragen sich nur studenten der tu-ilmenau ein???? und die frage erinnert mich irgendwie an eine unserer projektaufgaben ;)))
|
Re: Hilfe für einen Filesplitter
Erst mal danke an alle vorallem an Uncle Cracker.
@chris_82 Sieh mal neben den Beiträgen dort steht das Alter. (Ich bin 14 und keine Projektaufgabe nur für sich selbst) Man liest sich :hi: Sascha |
Re: Hilfe für einen Filesplitter
Und ich hätte noch eine Frage, wie kann ich einfach Text in eine Datei schreiben z.B.: Sads_13(HUF_SO1)
Man liest sich :hi: Sascha |
Re: Hilfe für einen Filesplitter
Neue Frage, neuer Thread.
|
Re: Hilfe für einen Filesplitter
@sascha.....ok, ich glaubs dir doch auch, war nur mal so rein interesse halber ob einem hier ein paar bekannte gesichter über den weg laufen :witch:
|
Re: Hilfe für einen Filesplitter
@Uncle Cracker Das wäre vielleicht doch recht interesaant für die Code-Library, oder?
Vor allem da diese Frage schon desöfteren gestellt worden ist (glaube ich zumindest ;-)) Hast du eigentlich schon mal was von formatieren gehört? :mrgreen: (war nicht bös gemeint ;-)) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz