MasterNKZ
Messages postés38Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention26 août 2004
-
14 sept. 2002 à 17:34
Nerolph
Messages postés58Date d'inscriptionvendredi 24 octobre 2003StatutMembreDernière intervention 4 septembre 2012
-
14 janv. 2004 à 12:47
Salut a tous
J'expose mon problème:
j'essaie de réaliser un coupeur de fichier en plusieurs parties ki crée donc un certain nombre de fichiers contenant chacun une partie du fichier coupé. Le problème se pose kan je veux tout rassembler. Je sais ke certains programme de ce genre créé en meme temps un autre fichier type *.bat ki, lorsque l'on clique dessus, reconstitue le fichier initial. Cette méthode est tres pratik, car elle évite de posseder ou de lancer le prog ki a couper le fichier pour le reconstituer. Alors j'aimerai bien faire cela mais je n'ai aucune idée de comment réaliser cela. Je ne sais pas comment on fait pour créer un fichier .bat à partir d'une application, auxquel on dit de faire tel ou tel chose lorsqu'on le lance.
Bon voila, j'espere que vous avez eu la force de lire tout ca, j'attend votre aide.
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 14 sept. 2002 à 20:56
Ce n'est pas si compliqué, un fichier .BAT est tout simplement un fichier texte contenant des commandes MS-DOS ( tu sais le truc d'avant windows... ). Par exemple si un fichier ESS.ZIP est coupé en ESS.ZIP.001 à ESS.ZIP.010 alors le fichier .BAT doit contenir les commandes suivantes :
@Echo off
Echo En cours...
Copy ESS.ZIP.001 ESS.ZIP
Copy /B ESS.ZIP +ESS.ZIP.002
Copy /B ESS.ZIP +ESS.ZIP.003
Copy /B ESS.ZIP +ESS.ZIP.004
Copy /B ESS.ZIP +ESS.ZIP.005
Copy /B ESS.ZIP +ESS.ZIP.006
Copy /B ESS.ZIP +ESS.ZIP.007
Copy /B ESS.ZIP +ESS.ZIP.008
Copy /B ESS.ZIP +ESS.ZIP.009
Copy /B ESS.ZIP +ESS.ZIP.010
Echo Terminé...
C'est facile à créer avec Delphi :
Procedure CreerBAT(NomFichier:String;Nombre:Integer);
Var F:TextFile;
i:Integer;
Begin
AssignFile(F,NomFichier+'.BAT');
NomFichier:=ExtractFileName(NomFichier);
Rewrite(F);
WriteLn(F,'@Echo off');
WriteLn(F,'Echo En cours...');
WriteLn(F,'Copy '+NomFichier+'.001 '+NomFichier);
For i:=2 to Nombre Do WriteLn(F,'Copy /B '+NomFichier+' +'+NomFichier+'.'+Copy(IntToStr(i+1000),2,3));
WriteLn(F,'Echo Terminé...');
CloseFile(F);
End;
Pour appeler cette procédure, il suffit de donner le nom original du fichier et le nombre de morceaux :
procedure TForm1.Button1Click(Sender: TObject);
begin
CreerBat('C:\TEMP\ESS.ZIP',10);
end;
Nerolph
Messages postés58Date d'inscriptionvendredi 24 octobre 2003StatutMembreDernière intervention 4 septembre 2012 14 janv. 2004 à 12:47
Peut-être, mais l'avantage d'un fichier .BAT est qu'il fonctionne sur toutes les versions de Windows sans avoir à utiliser un programme extérieur.
Personnellement, je préfère la version de Nono40 : il n'y a aucune modification du fichier à couper puisque c'est le .BAT qui se charge de la coupe. Et même s'il n'y a pas de .BAT, il suffi d'aller sous DOS et de le faire soi-même (oui je sais c'est long il faut tout taper, mais bon on y arrive quand même). :)