Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hilfe für einen Filesplitter (https://www.delphipraxis.net/8696-hilfe-fuer-einen-filesplitter.html)

Sascha 10. Sep 2003 13:15


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

Luckie 10. Sep 2003 13:18

Re: Hilfe für einen Filesplitter
 
*dumdidum* www.luckie-online.de#programme -> FileSplitter.

Geht aber auch mit FileStreams.

neolithos 10. Sep 2003 13:31

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.

Uncle Cracker 10. Sep 2003 13:36

Re: Hilfe für einen Filesplitter
 
Hier ist mal der kompletten Code zum Splitten/Zusammensetzten von Dateien mit FileStreams von http://home.pages.at/dbr-software/delphi.

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;

chris_82 10. Sep 2003 13:49

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 ;)))

Sascha 10. Sep 2003 16:43

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

Sascha 10. Sep 2003 16:46

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

Luckie 10. Sep 2003 19:47

Re: Hilfe für einen Filesplitter
 
Neue Frage, neuer Thread.

chris_82 11. Sep 2003 14:21

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:

Alexander 11. Sep 2003 14:54

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 21:15 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz