Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ Parameters: FileToSplit: Specify a file to split. SizeofFiles: Specify the size of the files you want to split to (in bytes) Progressbar: Specify a TProgressBar to show the splitting progress Result: SplitFile() will create files FileName.001, FileName.002, FileName.003 and so on that are SizeofFiles bytes in size. } functionSplitFile(FileName : TFileName; SizeofFiles : Integer; ProgressBar : TProgressBar) : Boolean; var
i : Word; fs, sStream: TFileStream; SplitFileName: String
; begin
ProgressBar.Position := 0; fs := TFileStream.Create(FileName, fmOpenRead or
fmShareDenyWrite); try
for
i := 1 to
Trunc(fs.Size / SizeofFiles) + 1 do
begin
SplitFileName := ChangeFileExt(FileName, '.'+ FormatFloat('000', i)); sStream := TFileStream.Create(SplitFileName, fmCreate or
fmShareExclusive); try
if
fs.Size - fs.Position < SizeofFiles then
SizeofFiles := fs.Size - fs.Position; sStream.CopyFrom(fs, SizeofFiles); ProgressBar.Position := Round((fs.Position / fs.Size) * 100); finally
sStream.Free; end
; end
; finally
fs.Free; end
; end
;
// Combine files / Dateien zusammenfьhren { Parameters: FileName: Specify the first piece of the splitted files CombinedFileName: Specify the combined file name. (the output file) Result: CombineFiles() will create one large file from the pieces } functionCombineFiles(FileName, CombinedFileName : TFileName) : Boolean; var
i: integer; fs, sStream: TFileStream; filenameOrg: String
; begin
i := 1; fs := TFileStream.Create(CombinedFileName, fmCreate or
fmShareExclusive); try
while
FileExists(FileName) do
begin
sStream := TFileStream.Create(FileName, fmOpenRead or
fmShareDenyWrite); try
fs.CopyFrom(sStream, 0); finally
sStream.Free; end
; Inc(i); FileName := ChangeFileExt(FileName, '.'+ FormatFloat('000', i)); end
; finally
fs.Free; end
; end
;
// Examples: procedureTForm1.Button1Click(Sender: TObject); begin
SplitFile('C: empFileToSplit.chm',1000000, ProgressBar1); end
; procedure
TForm1.Button2Click(Sender: TObject); begin
CombineFiles('C: empFileToSplit.001','H: empFileToSplit.chm'); end
;