Up ! Archive

Ceci est le fichier source du programme exécutable Up ! Archive.

Source Composant "Up ! Archive" Version 4.0.0;

ImporterModule UpsArc(<UpsArc.upi>, ImporterDefinitions);

Parametre <upsarc> Section "UpsArc"
/*********************************/
Prive :
/******/


Variable
/******/
Prive :
/******/
Prive :
/******/
Procedure AppliquerAuxFichiersDuRepertoire(NomRepertoireDepart : Caractere, NomRepertoireArrivee : Caractere, Filtre : Caractere, /*************************************************************************************************************************/
Variable
/******/
Debut
ListeFichiers=ListerFichiers(NomRepertoireDepart, Filtre);
Si ListeFichiers!=Nul Alors Fin Si
Fin Procedure

Procedure ArchiverUnFichier(NomDuRepertoireDepart : Caractere, NomDuRepertoireArrivee : Caractere, NomDuFichier : Caractere)
/********************************************************************************************************************/
Variable
/******/
Debut
NomDuFichierDepart=NomDuRepertoireDepart+NomDuFichier;
Si Detail Alors Fin Si
Si Non IlExisteRepertoire(NomDuRepertoireArrivee) Alors Fin Si
CopierFichier(NomDuFichierDepart, NomDuRepertoireArrivee+NomDuFichier);
Fin Procedure

Fonction ExecuterArchiver(Nouveau : Booleen, Usage : Caractere) Retourner Entier
/**************************************************************************/
Variable
/******/
Debut
Si NomArchive==Nul Ou Compression==Nul Alors Fin Si

Si Nouveau Et IlExisteFichier(NomArchive) Alors Fin Si

Si (Non Nouveau) Et (Non IlExisteFichier(NomArchive)) Alors Fin Si

CompressionDecodee=ModeCompressionFlux(Compression);
A=ArchiveUpsArc(NomArchive, "/upsarc", MotDePasse);
A.ChangerModeCompression(CompressionDecodee);

RepertoireArchive=BornerRepertoire(RepertoireArchive);
AppliquerAuxFichiersDuRepertoire(RepertoireArchive, "/upsarc/", FiltreArchive, ArchiverUnFichier);
Ecran.Ecrire("\n"+Message(UpsArc, "ArchivageAvecSucces", NomArchive));
Retourner 0;
Fin Fonction

Procedure DesarchiverUnFichier(NomDuRepertoireDepart : Caractere, NomDuRepertoireArrivee : Caractere, NomDuFichier : Caractere)
/***********************************************************************************************************************/
Variable
/******/
Debut
NomDuFichierDepart=NomDuRepertoireDepart+NomDuFichier;
Si Detail Alors Fin Si
Si Non IlExisteRepertoire(NomDuRepertoireArrivee) Alors Fin Si
CopierFichier(NomDuFichierDepart, NomDuRepertoireArrivee+NomDuFichier);
Fin Procedure

Fonction ExecuterDesarchiver() Retourner Entier
/*********************************************/
Variable
/******/
Debut
Si NomArchive==Nul Ou Compression==Nul Ou (Non IlExisteFichier(NomArchive)) Alors Fin Si

CompressionDecodee=ModeCompressionFlux(Compression);
A=ArchiveUpsArc(NomArchive, "/upsarc", MotDePasse);
A.ChangerModeCompression(CompressionDecodee);

RepertoireArchive=BornerRepertoire(RepertoireArchive);
AppliquerAuxFichiersDuRepertoire("/upsarc/", RepertoireArchive, FiltreArchive, DesarchiverUnFichier);
Ecran.Ecrire("\n"+Message(UpsArc, "DesarchivageAvecSucces", NomArchive));
Retourner 0;
Fin Fonction

Fonction ExecuterCompacter() Retourner Entier
/********************************************/
Variable
/******/
Debut
Si NomArchive==Nul Ou Compression==Nul Alors Fin Si

CompressionDecodee=ModeCompressionFlux(Compression);
A=ArchiveUpsArc(NomArchive, "/upsarc", MotDePasse);
A.ChangerModeCompression(CompressionDecodee);
Si Detail Alors Fin Si
A.Compacter();
Ecran.Ecrire("\n"+Message(UpsArc, "CompactageTermine", NomArchive));

Retourner 0;
Fin Fonction

Procedure EnvoyerMessageVerifier(Libelle : Caractere)
/*************************************************/
Debut
Ecran.Ecrire(Libelle);
Fin Procedure

Fonction ExecuterVerifier() Retourner Entier
/******************************************/
Variable
/******/
Debut
Si NomArchive==Nul Ou Compression==Nul Alors Fin Si

CompressionDecodee=ModeCompressionFlux(Compression);
A=ArchiveUpsArc(NomArchive, "/upsarc", MotDePasse);
A.ChangerModeCompression(CompressionDecodee);
Si Detail Alors Fin Si

Si Non A.Verifier(Decoder(Detail, Vrai, EnvoyerMessageVerifier, Nul)) Alors Sinon Fin Si
Fin Fonction

Procedure EnvoyerMessageReparer(Libelle : Caractere)
/************************************************/
Debut Ecran.Ecrire(Libelle);
Fin Procedure

Fonction ExecuterReparer() Retourner Entier
/*****************************************/
Variable
/******/
Debut
Si NomArchive==Nul Alors Fin Si

CompressionDecodee=ModeCompressionFlux(Compression);
A=ArchiveUpsArc(NomArchive, "/upsarc", MotDePasse);
A.ChangerModeCompression(CompressionDecodee);
Si Detail Alors Fin Si

Si Non A.Reparer(Decoder(Detail, Vrai, EnvoyerMessageReparer, Nul)) Alors Sinon Fin Si
Fin Fonction

Fonction DecoderDroits(Droits : DroitsDAcces) Retourner Caractere
/*************************************************************/
Debut
Selon Droits Faire Fin Selon
Fin Fonction

Procedure ListerLesFichiers(NomRepertoire : Caractere, Filtre : Caractere)
/*****************************************************************/
Variable
/******/
Debut ListeFichiers=ListerFichiers(NomRepertoire, Filtre);
Si ListeFichiers!=Nul Alors Fin Si
Fin Procedure

Fonction ExecuterLister() Retourner Entier
/****************************************/
Variable
/******/
Debut
Si NomArchive==Nul Ou (Non IlExisteFichier(NomArchive)) Alors Fin Si

A=ArchiveUpsArc(NomArchive, "/upsarc", MotDePasse);

ListerLesFichiers("/upsarc/", FiltreArchive);
Retourner 0;
Fin Fonction

Principal
/*******/
Debut
Si Entete Alors Fin Si

Si FiltreArchive==Nul Alors Fin Si
Selon Action Faire Fin Selon
Fin Principal