begin process at 2010 03 16 10:15:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Compression & Split

 > "SPLIT" UN GROS FICHIER

"SPLIT" UN GROS FICHIER


 Information sur la source

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Compression & Split Niveau :Initié Date de création :15/04/2003 Date de mise à jour :15/04/2003 14:34:45 Vu / téléchargé :5 141 / 322

Auteur : aymenk

Ecrire un message privé
Site perso
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

Cette application permet de decouper un gros fichier sur plusieurs petit fichiers

Source

  • unit Unit1;
  • interface
  • uses
  • Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  • StdCtrls, ComCtrls, Buttons;
  • type
  • TForm1 = class(TForm)
  • Button1: TButton;
  • Button2: TButton;
  • ProgressBar1: TProgressBar;
  • Label1: TLabel;
  • Label2: TLabel;
  • BitBtn1: TBitBtn;
  • procedure Button1Click(Sender: TObject);
  • procedure Button2Click(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • Form1: TForm1;
  • implementation
  • {$R *.DFM}
  • function SplitFile(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;
  • function CombineFiles(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;
  • procedure TForm1.Button1Click(Sender: TObject);
  • begin
  • SplitFile('E:\PDelphi19\AppSTA\PaYAPP.exe',1000000, ProgressBar1);
  • end;
  • procedure TForm1.Button2Click(Sender: TObject);
  • begin
  • CombineFiles('E:\PDelphi19\AppSTA\PaYAPP.001','E:\PDelphi19\AppSTA\PaYAPP.exe');
  • end;
  • end.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, Buttons;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ProgressBar1: TProgressBar;
    Label1: TLabel;
    Label2: TLabel;
    BitBtn1: TBitBtn;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
function SplitFile(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;

function CombineFiles(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;

procedure TForm1.Button1Click(Sender: TObject);
begin
     SplitFile('E:\PDelphi19\AppSTA\PaYAPP.exe',1000000, ProgressBar1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 CombineFiles('E:\PDelphi19\AppSTA\PaYAPP.001','E:\PDelphi19\AppSTA\PaYAPP.exe');
end;

end.


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip GENERATEUR DE TEXTURE
Source avec Zip Source avec une capture CHANGER LA LANGUE DU CLAVIER PAR PROGRAMMATION
Source avec Zip Source avec une capture STÉGANOGRAPHIE OU COMMENT CACHÉ DU TEXTE DANS UNE IMAGE
Source avec Zip Source avec une capture GET SERIAL DRIVE
Source avec Zip SENDKEY DU VB EXEMPLE SIMPLE DE COMPREHENSION

 Sources de la même categorie

Source avec Zip Source avec une capture UPXHELPER V1.1.1 par Christophe67
Source avec Zip Source avec une capture DELPHI : PROCEDURE SPLIT SIMILAIRE A LA FONCTION EPONYME EN ... par FENETRES
FONCTION SPLIT par crackspider7676
Source avec Zip STREAMZIP par simonpelloquin
Source avec Zip MAKE CAB + CHECKLISTBOX par simonpelloquin

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales