FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Aide de PANORAMIC
Suppression des vieux fichiers Emptypar Marc Aujourd'hui à 16:05

» PANORAMIC V 1
Suppression des vieux fichiers Emptypar Klaus Aujourd'hui à 9:53

» Je teste PANORAMIC V 1 beta 1
Suppression des vieux fichiers Emptypar Klaus Aujourd'hui à 9:52

» bouton dans autre form que 0
Suppression des vieux fichiers Emptypar leclode Hier à 13:59

» KGF_dll - nouvelles versions
Suppression des vieux fichiers Emptypar Klaus Hier à 11:41

» Gestion d'un système client-serveur.
Suppression des vieux fichiers Emptypar Klaus Hier à 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Suppression des vieux fichiers Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Suppression des vieux fichiers Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Suppression des vieux fichiers Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Suppression des vieux fichiers Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Suppression des vieux fichiers Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Suppression des vieux fichiers Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Suppression des vieux fichiers Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Suppression des vieux fichiers Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Suppression des vieux fichiers Emptypar jjn4 Lun 22 Avr 2024 - 13:47

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 Suppression des vieux fichiers

Aller en bas 
5 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Suppression des vieux fichiers Empty
MessageSujet: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 14:58

Encore une petite sub, cette fois-ci pour supprimer dans un répertoire donné les fichiers d'un type donné plus vieux que x jours.

Bien sûr c'est un outil à ne pas mettre entre toutes les mains, du fait que les fichiers sont supprimés définitivement, sans passer par la case corbeille, donc à manipuler avec précautions.
J'ai fait ça en particulier pour les fichiers .bak qui finissent par encombrer mon répertoire des sources Panoramic, il est bien évident que les plus anciens sont devenus inutiles, seuls les plus récents peuvent être utiles, au cas z'où.
Voici donc la sub avec l'exemple d'utilisation dans mon cas (fichiers .bak du répertoire C:\Panoramic plus vieux que 10 jours).
Les dates des fichiers sont converties en nombre de jours, pour faciliter les comparaisons:
Code:
DIM rep$,sf$,nj%,ns%
rep$ = "C:\PANORAMIC"+CHR$(92)
sf$ = "*.bak"
nj% = 10
Sup_old(rep$,sf$,nj%): ' suppression des fichiers .bak plus vieux que 10 jours
message clipboard_string_paste$+" fichiers supprimés"
END
' ==============================================================================
SUB Sup_old(rep$,suf$,nj%)
' Suppression de tous les fichiers de type suf$ du répertoire rep$ plus vieux
' que nj% jours
' Le nombre de fichiers supprimés est rendu dans le presse-papier.
DIM_LOCAL mm%,i%,j%,art$,dj$,dsj%,ds%,a%,m%,ds_res,ds_bi,ns%
IF LABEL("DateSerial")=0 THEN LABEL Dateserial
mm% = 1000: WHILE OBJECT_EXISTS(mm%)=1: mm%=mm%+1: END_WHILE
MEMO mm%: WIDTH mm%,600: HIDE mm%
EXECUTE_WAIT "Cmd.exe /c DIR "+rep$+suf$+" | clip": CLIPBOARD_PASTE mm%
j%=VAL(LEFT$(DATE$,2)): m%=VAL(MID$(DATE$,4,2)): a%=VAL(RIGHT$(DATE$,4))
GOSUB DateSerial: dsj% = ds%: ' date série du jour
ns% = 0
FOR i% = 1 TO COUNT(mm%)
    art$=ITEM_READ$(mm%,i%)
    IF art$<>"" AND LEFT$(art$,1) <> " "
        j%=VAL(LEFT$(art$,2)): m%=VAL(MID$(art$,4,2)): a%=VAL(MID$(art$,7,4))
        GOSUB DateSerial
        IF ds% < (dsj%-nj%)
            art$ = RIGHT_POS$(art$,37)
            FILE_DELETE rep$+art$
            ns% = ns%+1: ' nombre de fichiers supprimés
        END_IF
    END_IF
NEXT i%
DELETE mm%
CLIPBOARD_STRING_COPY STR$(ns%)
EXIT_SUB
DateSerial:
' Date série en fonction de Annee, Mois, Jour -> ds%
SELECT m%
    CASE 1: ds_res = 0
    CASE 2: ds_res = 31
    CASE 3: ds_res = 59
    CASE 4: ds_res = 90
    CASE 5: ds_res = 120
    CASE 6: ds_res = 151
    CASE 7: ds_res = 181
    CASE 8: ds_res = 212
    CASE 9: ds_res = 243
    CASE 10: ds_res = 273
    CASE 11: ds_res = 304
    CASE 12: ds_res = 334
END_SELECT
ds_res = ds_res + j% - 1
IF (FRAC(a%/4)=0 AND FRAC(a%/100)>0) OR FRAC(a%/400)=0: ' bissextile
    IF m% > 2 THEN ds_res = ds_res + 1
END_IF
REPEAT
    a% = a%-1: ds_bi = 0
    IF (FRAC(a%/4)=0 AND FRAC(a%/100)>0) OR FRAC(a%/400)=0 THEN ds_bi=1
    ds_res = ds_res + 365 + ds_bi
UNTIL a% <= 1753
ds% = ds_res-53688: ' date serial
RETURN
END_SUB
' ==============================================================================

PS déjà une correction, ce satané forum m'avait encore bouffé l'antislash de fin dans mon nom de répertoire rep$ ! Evil or Very Mad
pas moyen  de le remettre, je le mets en code ascii (chr$(92)) grrr...


Dernière édition par JL35 le Jeu 19 Fév 2015 - 15:15, édité 4 fois
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 15:05

Pas encore testé, mais ça me plait d'après la description. Merci JL35
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 15:08

On s'est croisés... pas besoin de te conseiller la prudence, c'est évident.
Je ne voudrais pas être responsable de la perte de fichiers vitaux ! Smile
Et j'en ai profité pour corriger une petite faute d'orthographe... Embarassed
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7004
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 18:03

Voila une sub qui va rendre service à mon disque qui s’approche de jour en jour de la saturation.
Merci JL35
JL35 a écrit:
pas besoin de te conseiller la prudence, c'est évident.
Je ne voudrais pas être responsable de la perte de fichiers vitaux !  

OK ! Je pige puisque je te lis maintenant.
Mais, dans un mois quand j’utiliserai  cette fort utile SUB, je n’en suis pas sûr que je me souvienne de cet avertissement.
Le mieux est d’incorporer cette mise en garde dans un message lors du déroulement de la sub.

J’ai relooké le code à ma manière et ça donne :

Code:

rem ============================================================================
rem        Vieux fichiers, allez-vous-en !
rem          Code original de : JL35
rem          Relookage de : Papydall
rem ============================================================================
DIM rep$,sf$,nj%,ns%
rep$ = "D:\Panoramic\Mesprogrammes"+CHR$(92) : ' A adapter ...
sf$ = "*.bak"
nj% = 10
Sup_old(rep$,sf$,nj%): ' suppression des fichiers .bak plus vieux que nj% jours
END
rem ============================================================================
' Suppression de tous les fichiers de type suf$ du répertoire rep$ plus vieux
' que nj% jours
' Le nombre de fichiers supprimés est rendu dans le presse-papier.

SUB Sup_old(rep$,suf$,nj%)
    DIM mm%,i%,j%,art$,dj$,dsj%,ds%,a%,m%,ds_bi,ds_res
    dim_local t$
    mm% = 1000: WHILE OBJECT_EXISTS(mm%)=1: mm%=mm%+1: END_WHILE
    MEMO mm%: WIDTH mm%,600: HIDE 0
    EXECUTE_WAIT "Cmd.exe /c DIR "+rep$+suf$+" | clip": CLIPBOARD_PASTE mm%
    j%=VAL(LEFT$(DATE$,2)): m%=VAL(MID$(DATE$,4,2)): a%=VAL(RIGHT$(DATE$,4))
    DateSerial(m%)
    dsj% = ds%: ' date série du jour
    ns% = 0
    t$ = string$(30," ") +"Attention !!!"+chr$(13)+"Des fichiers vont être définitivement supprimés !"
    t$ = t$ + chr$(13)+ "Vous êtes prévenu ! Yes : Supprimer  No : Annuler"
    if message_warning_yes_no(t$) <> 1
       exit_sub
    end_if
    FOR i% = 1 TO COUNT(mm%)
        art$=ITEM_READ$(mm%,i%)
        IF art$<>"" AND LEFT$(art$,1) <> " "
           j%=VAL(LEFT$(art$,2)): m%=VAL(MID$(art$,4,2)): a%=VAL(MID$(art$,7,4))
           DateSerial(m%)
           IF ds% < (dsj%-nj%)
              art$ = RIGHT_POS$(art$,37)
              FILE_DELETE rep$+art$
              ns% = ns%+1: ' nombre de fichiers supprimés
           END_IF
       END_IF
    NEXT i%
    if ns% = 0
       message "Tâche terminée"+chr$(13)+"Aucun message ne répond à votre demande !!!"
       exit_sub
    end_if
    message clipboard_string_paste$+STR$(ns%)+" fichiers supprimés"
    DELETE mm%
END_SUB
rem ============================================================================
' Date série en fonction de Annee, Mois, Jour -> ds%
SUB DateSerial(m%)

    SELECT m%
        CASE 1: ds_res = 0
        CASE 2: ds_res = 31
        CASE 3: ds_res = 59
        CASE 4: ds_res = 90
        CASE 5: ds_res = 120
        CASE 6: ds_res = 151
        CASE 7: ds_res = 181
        CASE 8: ds_res = 212
        CASE 9: ds_res = 243
        CASE 10: ds_res = 273
        CASE 11: ds_res = 304
        CASE 12: ds_res = 334
    END_SELECT
    ds_res = ds_res + j% - 1
    IF (FRAC(a%/4)=0 AND FRAC(a%/100)>0) OR FRAC(a%/400)=0: ' bissextile
       IF m% > 2 THEN ds_res = ds_res + 1
    END_IF
    REPEAT
        a% = a%-1: ds_bi = 0
        IF (FRAC(a%/4)=0 AND FRAC(a%/100)>0) OR FRAC(a%/400)=0 THEN ds_bi=1
        ds_res = ds_res + 365 + ds_bi
    UNTIL a% <= 1753
    ds% = ds_res-53688: ' date serial

END_SUB
rem ============================================================================


EDIT
J’ai fais le ménage dans plusieurs dossiers et mon disque dur s’est allégé d’un poids de 50 GIGAAAAA !
Quelle idée de transporter toute cette inutilité !
Merci JL35
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 19:49

C'est une idée... prudente.
Et j'espère que tu n'as rien perdu d'irrémédiable ! le mieux c'est de faire une sauvegarde régulière de ses fichiers vitaux, ce que j'essaie de faire...

Pour moi j'ai intégré cette fonction dans mon interface générale Panoramic, et c'est à l'appel de la sub que j'affiche l'avertissement et que je demande confirmation.

Je vois que tu as sorti la fonction DateSerial dans une sub à part... alors que j'ai fait l'inverse ! c'est un point de vue, mais personnellement je n'aime pas trop une sub qui appelle une autre sub, elle devient moins indépendante... mais bon, il y a diverses façons de voir les choses et de procéder, c'est ce qui fait le charme de la programmation !
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 20:10

Ho ! Ho ! ATTENTION DANGER !

Imaginez que quelqu'un soit assez stupide pour faire sf$ = "*.*" pour le disque C:  What a Face

Il aurait peut-être été judicieux d'afficher les fichiers dans une liste pour les sélectionner.

En tous cas, pour ceux qui ne savent pas de quoi il s'agit, ne faites pas l'essai de ces 2 Sub(s) sans avoir compris ce que vous faites.

Cette sub est très utile, mais dangereuse pour ceux qui cliquent avant de réfléchir.

BON, çà ne sera pas par manque d'avertissement de ma part et des auteurs.

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 20:23

D'accord Jean Claude, c'est un outil, mais on s'adresse ici à des programmeurs qui j'espère sont bien conscients de ce qu'ils font, ce n'est pas un bouton à mettre à la disposition d'un utilisateur lambda.
Et il est bien évident que chacun doit être lucide et prendre ses précautions, et éventuellement mettre les garde-fous qui lui semblent nécessaires.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 20:34

On est bien d'accord.

Mais je pense qu'un petit message confirmation_yes_no("") d'avertissement indiquant, le nombre de jours d'ancienneté et l’extension des fichiers qui vont être supprimés, serait une sécurité.
Personne ne pourrait, ainsi, te reprocher quoique ce soit.

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 20:46

Chacun est libre de mettre les avertissements qu'il veut, où il veut !
En ce qui me concerne je l'ai mis dans le programme principal avant l'appel de la sub.
C'est un outil qui fait du nettoyage, je ne ferai l'injure à personne ici de penser qu'il pourrait être utilisé à la légère !
Et rassure-toi, je ne me sentirai pas du tout responsable si quelqu'un efface son disque dur en l'utilisant !
Comme si quelqu'un qui se coupe avec un couteau allait se plaindre au marchand que son couteau est trop tranchant.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 21:29

Ca pourra être intégré dans l'interface d'Ygeronimi dans les options pour supprimer les veilles sauvegardes en .BAK
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Suppression des vieux fichiers Empty
MessageSujet: re   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 21:45

Non .

Les sauvegardes *.Bak sont propres à Panoramic_Editor.
Pour l' instant, PPE ne propose pas de sauvegarde automatique.
Cela viendra un jour mais pas pour l' instant.

Là, je vais attaquer l' aide *.chm avant de proposer d' autres outils
ou gadgets...
Laughing
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Suppression des vieux fichiers Empty
MessageSujet: re   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 21:50

En plus, pour les fichiers *.Bak, le problème de date ne se pose pas.
Un fichier *.Bak est attaché à un fichier source et il n' y en a qu' un par fichier source.
Ce fichier *.Bak est mis à jour par Panoramic_Editor à chaque sauvegarde automatique.
Donc...Inutile de le supprimer, sauf si le programme est terminé.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 21:54

Tu as raison Wink Ce procédé n'est pas forcément utile pour ton programme mais il peut l'être dans d'autres Wink
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7004
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 22:30

Jean Claude a écrit:
Imaginez que quelqu'un soit assez stupide pour faire sf$ = "*.*" pour le disque C:    

Juste avant l’instruction EXECUTE_WAIT "Cmd.exe /c DIR "+rep$+suf$+" | clip": CLIPBOARD_PASTE mm%
Ajoutez

Code:

    if upper$(right$(suf$,3)) <> "BAK"
       t$ = "Vous êtes bourré ou quoi !"+chr$(13)
       t$ = t$ + "Moi, je suis prudent : je ne supprime que les .bak"+chr$(13)
       t$ = t$ + " JE REFUSE DE VOUS OBEIR MAITRE !!!!"
       message t$ : exit_sub
    end_if
    


Même si on est ce que le message indique, on se trouve malgré tout à l’abri !
A mois que …
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 22:46

ygeronimi a écrit:
Ce fichier *.Bak est mis à jour par Panoramic_Editor à chaque sauvegarde automatique.
Donc...Inutile de le supprimer, sauf si le programme est terminé.

Eh bien justement ! Lorsque le programme est terminé (ça finit presque toujours souvent par arriver) on ne pense pas forcément (ou on préfère attendre un peu) à supprimer le fichier .bak généré automatiquement par l'éditeur. Et après on n'y pense plus.
Et au bout d'un moment ça fait une belle accumulation de .bak inutiles (j'en avais dans les 80), alors il faut bien finir par les supprimer, non ? sauf les derniers qui peuvent encore servir... d'où la suppression sélective.

Jean Claude a écrit:
Imaginez que quelqu'un soit assez stupide pour faire sf$ = "*.*" pour le disque C:

Si quelqu'un est assez stupide pour faire ça... y'a plus qu'à tirer l'échelle Mad
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Suppression des vieux fichiers Empty
MessageSujet: re   Suppression des vieux fichiers EmptyJeu 19 Fév 2015 - 23:57

@ Papydall,

Ton message pourrait être mal pris par quelqu' un qui l' est...
Suppression des vieux fichiers A_hit
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7004
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers EmptyVen 20 Fév 2015 - 1:44

Dans ce cas là , ça sera bien fait pour lui !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Suppression des vieux fichiers Empty
MessageSujet: Re: Suppression des vieux fichiers   Suppression des vieux fichiers Empty

Revenir en haut Aller en bas
 
Suppression des vieux fichiers
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Utilitaire de suppression de fichiers
» projet jeux
» Supression d'un répertoire
» Bug en suppression d'une form
» Suppression sélective de cookies

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: