Nettoyage automatique des bases récemment utilisées

Olivier Marolleau

- Titre : Nettoyage automatique des bases récemment utilisées

- Auteur : Olivier Marolleau

- Parution : 20 septembre 2006

- Licence : 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.

Sommaire

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 permettra 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.

1. `------------------------------------------------------------

2. `Method Name: _Dev_CleanRecentDataBase

3. `Method Make: 09/05/06, 12:12:31

4. `Method Owner: omarolleau

5. `Method State: Ok

6. `Method State Compile: Ok

7. `------------------------------------------------------------

8. `Method Comments:

9. `Param 1 : (1) Erase Only Bad link (2) Erase Bad link end Recent

10. `------------------------------------------------------------

12. `Déclarer les variables:

14. C_ALPHA(16;$XML_File)

15. C_ALPHA(16;$XML_Node_Recent)

16. C_ALPHA(16;$XML_Node_Database)

17. C_ALPHA(16;$XML_Node_DatabaseName)

18. C_ALPHA(16;$XML_Node_Favoris)

20. C_TEXTE($XML_DatabaseName;$XML_DatabaseName_Value)

21. C_TEXTE($XML_Favoris;$XML_Favoris_Value)

23. C_ENTIER($Mode)

25. `Method Core:

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

29. CONFIRMER("Supprimer la liste des bases récentes ?";"Oui";"Non")

30. Si (Ok=1)

31. CONFIRMER("Sélectionnez le mode de suppression";"Supprimer les chemins erronés ?";

32. "Supprimer tout (sauf les Favoris) ?")

33. Si (Ok=1)

34. $Mode:=1

35. Sinon

36. $Mode:=2

37. Fin de si

38. Fin de si

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

42. $XML_File:=DOM Analyser source XML(Dossier 4D(Dossier 4D actif )+"4D Recent Databases.XML")

43. Si ((OK=1) & ($XML_File#"") & ($XML_File#"0000000000000000") & ($Mode>0))

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

47. $XML_Node_Recent:=DOM Chercher element XML($XML_File;"OpenDatabasePreferences/RecentItems")

48. $XML_Node_Database:=DOM Lire premier element XML enfant($XML_Node_Recent)

49. Si ((OK=1) & ($XML_Node_Database#"") & ($XML_Node_Database#"0000000000000000"))

51. `<!-- Parse -->

53. Repeter

55. $XML_Node_DatabaseName:=DOM Lire premier element XML enfant($XML_Node_Database;

56. $XML_DatabaseName;$XML_DatabaseName_Value)

57. $XML_Node_Favoris:=DOM Lire element XML frere suivant($XML_Node_DatabaseName;

58. $XML_Favoris;$XML_Favoris_Value)

60. Au cas ou

61. : (Tester chemin acces($XML_DatabaseName_Value)#1)

62. DOM SUPPRIMER ELEMENT XML($XML_Node_Database)

63. $XML_Node_Recent:=DOM Chercher element XML($XML_File;"OpenDatabasePreferences/RecentItems")

64. $XML_Node_Database:=DOM Lire premier element XML enfant($XML_Node_Recent)

66. : ((Tester chemin acces($XML_DatabaseName_Value)=1) & ($XML_Favoris_Value="0") & ($Mode=2))

67. DOM SUPPRIMER ELEMENT XML($XML_Node_Database)

68. $XML_Node_Recent:=DOM Chercher element XML($XML_File;"OpenDatabasePreferences/RecentItems")

69. $XML_Node_Database:=DOM Lire premier element XML enfant($XML_Node_Recent)

71. Sinon

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

74. Fin de cas

76. Jusque (Ok=0)

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

80. Fin de si

82. DOM FERMER XML($XML_File)

83. ALERTE("Terminé !")

84. Fin de si