Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


Nettoyage automatique des bases récemment utilisées

Date de publication : 20/09/2006

Par Olivier Marolleau (Technicien Support Technique)
 



Produit : 4D 2004 (Monoposte, 4D Runtime Single User, 4D Runtime Interpreted)   ·   Plateforme : Mac & Win


Les bases récemment ouvertes et les bases de données enregistrées dans les Favoris sont présentes dans le dialogue d'ouverture de 4D. Ces dernières sont stockées sur le disque dur sous forme d'un fichier XML portant le nom de "4D Recent Databases.XML".

Plus le temps passe, plus ce fichier peut devenir volumineux et désorganisé, contenant par exemple des références à des bases qui n'existent plus.

Le code suivant vous permetra donc de nettoyer ce fichier en effaçant les mauvais liens, et éventuellement en effaçant les bases récemment utilisées pour alléger la liste aux seuls Favoris.


Code :

   `------------------------------------------------------------
   `Method Name: _Dev_CleanRecentDataBase
   `Method Make: 09/05/06, 12:12:31
   `Method Owner: omarolleau
   `Method State: Ok
   `Method State Compile: Ok
   `------------------------------------------------------------
   `Method Comments:
   `Param 1 : (1) Erase Only Bad link (2) Erase Bad link end Recent
   `------------------------------------------------------------

   `Déclarer les variables:

C_ALPHA(16;$XML_File)
C_ALPHA(16;$XML_Node_Recent)
C_ALPHA(16;$XML_Node_Database)
C_ALPHA(16;$XML_Node_DatabaseName)
C_ALPHA(16;$XML_Node_Favoris)

C_TEXTE($XML_DatabaseName;$XML_DatabaseName_Value)
C_TEXTE($XML_Favoris;$XML_Favoris_Value)

C_ENTIER($Mode)

   `Method Core:

   `<!-- Méthode de nettoyage-->

CONFIRMER("Supprimer la liste des bases récentes ?";"Oui";"Non")
Si (Ok=1)
   CONFIRMER("Sélectionnez le mode de suppression";"Supprimer les chemins erronés ?";
                                                               "Supprimer tout (sauf les Favoris) ?")
   Si (Ok=1)
      $Mode:=1
   Sinon
      $Mode:=2
   Fin de si
Fin de si

   `<!-- Ouvre le document Xml -->

$XML_File:=DOM Analyser source XML(Dossier 4D(Dossier 4D actif )+"4D Recent Databases.XML")
Si ((OK=1) & ($XML_File#"") & ($XML_File#"0000000000000000") & ($Mode>0))

      `<!-- Retrait élément de départ-->

   $XML_Node_Recent:=DOM Chercher element XML($XML_File;"OpenDatabasePreferences/RecentItems")
   $XML_Node_Database:=DOM Lire premier element XML enfant($XML_Node_Recent)
   Si ((OK=1) & ($XML_Node_Database#"") & ($XML_Node_Database#"0000000000000000"))

         `<!-- Parse -->

      Repeter

         $XML_Node_DatabaseName:=DOM Lire premier element XML enfant($XML_Node_Database;
                                                              $XML_DatabaseName;$XML_DatabaseName_Value)
         $XML_Node_Favoris:=DOM Lire element XML frere suivant($XML_Node_DatabaseName;
                                                              $XML_Favoris;$XML_Favoris_Value)

         Au cas ou
            : (Tester chemin acces($XML_DatabaseName_Value)#1)
               DOM SUPPRIMER ELEMENT XML($XML_Node_Database)
               $XML_Node_Recent:=DOM Chercher element XML($XML_File;"OpenDatabasePreferences/RecentItems")
               $XML_Node_Database:=DOM Lire premier element XML enfant($XML_Node_Recent)

            : ((Tester chemin acces($XML_DatabaseName_Value)=1) & ($XML_Favoris_Value="0") & ($Mode=2))
               DOM SUPPRIMER ELEMENT XML($XML_Node_Database)
               $XML_Node_Recent:=DOM Chercher element XML($XML_File;"OpenDatabasePreferences/RecentItems")
               $XML_Node_Database:=DOM Lire premier element XML enfant($XML_Node_Recent)

         Sinon
            $XML_Node_Database:=DOM Lire element XML frere suivant($XML_Node_Database)

         Fin de cas

      Jusque (Ok=0)

         DOM EXPORTER VERS FICHIER($XML_File;Dossier 4D(Dossier 4D actif )+"4D Recent Databases.XML")

   Fin de si

   DOM FERMER XML($XML_File)
   ALERTE("Terminé !")
Fin de si



Valid XHTML 1.1!Valid CSS!

Copyright © 2006 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Contacter le responsable de la rubrique 4D