[Résolu][Writer] Sauvegarder avec incrément automatique

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !

[Résolu][Writer] Sauvegarder avec incrément automatique

Messagepar Ravioli » 19 Août 2009 15:05

Bonjour,

Je recommande de procéder à des sauvegardes régulières des fichiers importants dans Writer
(un peu moins en Calc où cette pratique semble plus courante par nécessité)
en utilisant Enregistrer sous et en incrémentant le nom du fichier en Nom1, Non2, Nom3 etc.

Je veux bien employer storeToURL car cela permet de continuer sur le document existant,
permettant ainsi ce que je recommande (sauvegarde incrémentée)
mais comment introduire automatiquement le même nom et le n=n+1 sans passer par une boite de dialogue ?

Je verrais bien une icône d 'Enregistrer incrémenté de la barre d'outil Standard affublée de ce genre de macro.

A+
Dernière édition par Ravioli le 06 Sep 2009 12:26, édité 3 fois.
AOO 4.1.1 LibO 4.4.5
Vista SP2, Win7 SP1, Win7 SP1 Pro, Win 8.1.1 Pro, Mac Intel OS X 10.10.5, Ubuntu 12.04 LTS 32 bits, OpenSuse 13.2, Debian 7
& LibO 4.0.6 pour Mac PPC 10.5.8
Avatar de l’utilisateur
Ravioli
GourOOu
GourOOu
 
Message(s) : 7610
Inscrit le : 18 Oct 2007 17:28

Re: [Writer] Sauvegarder avec incrément automatique

Messagepar Dude » 19 Août 2009 17:05

Salut,

Un exemple simple :
Code : Tout sélectionner   AgrandirRéduire
Sub ExportODT
dim oDoc as object
dim oUrl as string
dim PropFich(0) as new com.sun.star.beans.PropertyValue

oDoc = thiscomponent
oURL = convertToUrl("c:\temp\test.odt")
PropFich(0).name="FilterName"
PropFich(0).value="writer: Writer8"

oDoc.storeToUrl(oURL, Propfich())
End Sub

A la place de "c:\temp\test.odt", tu mets ton nom de fichier.

8)
AOO 4.1.5 sous Windows 7 Pro x64

Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20351
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Writer] Sauvegarder avec incrément automatique

Messagepar Ravioli » 20 Août 2009 10:15

Bonjour,

Merci Dude,
mais je n'ai pas l'impression que ton script fasse une incrémentation totalement automatique.

Je pense que je vais poster dans Projet, car il s'agit en fait de créer une véritable Extension que n'importe quel débutant pourra utiliser.
C'est effectivement davantage une clé en main qui est nécessaire au vue de mon objectif.

Message ici : viewtopic.php?p=98835#p98835

A+
AOO 4.1.1 LibO 4.4.5
Vista SP2, Win7 SP1, Win7 SP1 Pro, Win 8.1.1 Pro, Mac Intel OS X 10.10.5, Ubuntu 12.04 LTS 32 bits, OpenSuse 13.2, Debian 7
& LibO 4.0.6 pour Mac PPC 10.5.8
Avatar de l’utilisateur
Ravioli
GourOOu
GourOOu
 
Message(s) : 7610
Inscrit le : 18 Oct 2007 17:28

Re: [Writer] Sauvegarder avec incrément automatique

Messagepar Alain de La Chaume » 20 Août 2009 14:50

Bonjour à tous, bonjour Ravioli.
Voici un premier jet :
Code : Tout sélectionner   AgrandirRéduire
' --------------------------------------------------------------------
' Sauvegarder ce document sous un nom composé de :
' <nom_de_ce_doc> + "_" + <numéro_de_sauvegarde>
' --------------------------------------------------------------------
' Le numéro de sauvegarde est obtenu ici par
' récupération du numéro de version de ce document.
' --------------------------------------------------------------------
' A NOTER. - Je prévois une autre version de cette macro (plus tard)
' car ici le numéro de version de ce document ne vas pas évoluer
' au fur et à mesure de ces sauvegardes incrémentées.
' A moins bien entendu de "forcer" l'enregistrement de ce document
' juste après la sauvegarde incrémentée.
' --------------------------------------------------------------------
sub acIncrementSave_v1()
dim oDoc as object
dim sUrl1 as string, sUrl2 as string
dim iVersion as integer
dim tArgs(0) as new com.sun.star.beans.PropertyValue
dim ficExt as string

   oDoc = thiscomponent
   iVersion = oDoc.documentInfo.EditingCycles
'   print "Numéro de version de ce document : " & iVersion
   sUrl1 = oDoc.getUrl
   ficExt = acGetFileExt(sUrl1)
   
   sUrl2 = left(sUrl1, len(sUrl1) - len(FicExt) -1) _
       & "_" & cStr(iVersion) & "." & ficExt
      
'   msgBox    "sUrl1 = [" & convertFromUrl(sUrl1) & "]" & chr(13) _
'      &    "sUrl2 = [" & convertFromUrl(sUrl2) & "]"
      
   oDoc.storeToUrl(sUrl2, tArgs())
   msgBox("Document sauvegardé sous " & chr(13) _
       & convertFromUrl(sUrl2)
end sub

'******************************************************* 07/11/08 ***
'*** Retourne l'extension du fichier, sans le point
'*** Ex. : buf = acGetFileExt(oDoc.getUrl)
'********************************************************************
function acGetFileExt(sUrl As String) As String
Dim cpt As Integer
Const POINT = "."
   for cpt = Len(sUrl) to 1 step -1
      if Mid(sUrl, cpt, 1) = POINT then
         acGetFileExt = Mid(sUrl, cpt+1)
         exit function
      end if
   next cpt
   ' Si pas de POINT, on retourne tout
   acGetFileExt = sUrl
end function

Et comme il est dit dans le commentaire en tête de code, c'est en attendant mieux.

Nouvelle édition, le 21/08/09 à 0 h 3 :
Ci-joint, un fichier contenant la première macro ci-dessus,
et une seconde version. Le code est commenté. Il n'y a plus qu'à choisir et à affiner.
Pièces jointes
sauvegarde_incrémentée.odt
(16.24 Kio) Téléchargé 186 fois
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
 
Message(s) : 1527
Inscrit le : 28 Sep 2008 13:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Re: [Writer] Sauvegarder avec incrément automatique

Messagepar Ravioli » 06 Sep 2009 12:25

Bonjour Alain,

Impressionnant. :super:

Merci de faire avancer ce projet,
qui peut-être évitera à de nombreux utilisateurs (peu avertis des principes élémentaires de sauvegarde)
de se trouver avec une perte totale d'un travail à cause d'un fichier corrompu...

Ravioli

EDIT : Alain de la Chaume a créé une extension qui figure dans le sujet qui s'est poursuivi dans la section Projet
[OXT] sauvegarde auto avec incrément du nom viewtopic.php?p=100229#p100229

Merci à ceux qui voudront bien la tester et donner leur avis sur le fil cité.

Encore merci à ceux qui ont permis cette réalisation.


Dernière remontée par Ravioli le 06 Sep 2009 12:25.
AOO 4.1.1 LibO 4.4.5
Vista SP2, Win7 SP1, Win7 SP1 Pro, Win 8.1.1 Pro, Mac Intel OS X 10.10.5, Ubuntu 12.04 LTS 32 bits, OpenSuse 13.2, Debian 7
& LibO 4.0.6 pour Mac PPC 10.5.8
Avatar de l’utilisateur
Ravioli
GourOOu
GourOOu
 
Message(s) : 7610
Inscrit le : 18 Oct 2007 17:28


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 7 invité(s)