IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

[Macro] : manipuler un fichier texte en chemin relatif par rapport au document [OpenOffice][Texte]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Points : 45
    Points
    45
    Par défaut [Macro] : manipuler un fichier texte en chemin relatif par rapport au document
    Bonjour,

    j'ai besoin de lire des propriétés dans un fichier texte pour les intégrer dans un document Writer, de pouvoir modifier ces propriétés depuis le document, et de ré-écrire le fichier texte si une propriété a changé...

    Le problème fondamental que j'ai est que le fichier texte a un nom fixe, mettons "toto.txt", et doit se trouver dans le même répertoire que le document Writer que j'ai ouvert. Je n'arrive pas à accéder au fichier texte en chemins relatifs pour le moment, ni en mettant des "./" ou même ".\" dans le chemin... J'ai envisagé d'essayer de trouver le répertoire du chemin document avec ThisComponent, mais je n'ai pas réussi à lister les attributs et fonctions que je peux appeler sur ThisComponent ni à trouver de référence à ce sujet dans l'aide.

    J'ai regardé les exemples de manipulation de fichiers sur le site developpez.com, mais ils sont tous en chemins absolus...

    Merci d'avance de me donner des pistes,

    Cordialement,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu peux trouver certaines propriétés (dont le chemin de ton fichier) dans cet exemple de la FAQ OpenOffice :

    Comment récupérer des informations sur les propriétés des fichiers ? en utilisant : ParentFolder.Path et shortpath.

    Philippe

  3. #3
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Points : 45
    Points
    45
    Par défaut Oui, mais non
    Mon problème principal est que je ne connais pas le chemin absolu, et les méthodes que tu m'indiques ont justement besoin de ce-dit chemin... Tout ce que je sais sur le fichier, c'est qu'il est dans le même répertoire que mon document OpenOffice, mais ça s'arrête là... J'avais déjà vu cette partie de la doc, mais ça ne résout pas mon problème.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Quelques petits détails en fonction de mes connaissances

    OpenOffice travaille principalement en chemin URL, c'est à dire que :

    C:\Test\Test.odt devient file:///C:/Test/Test.odt

    Voici une petite routine qui est à mettre dans les macros de ton fichier

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub RecupChemin
    	' déclaration des variables
    	Dim objWriter As Object			' déclaration de notre fichier
    	Dim strCheminParent As String	' chemin sans le fichier	
    	Dim tab() As String				' tableau permettant d'avoir le détail du chemin
    	Dim i As Integer
     
    	objWriter = ThisComponent
    	tab() = Split(Right(objWriter.URL,Len(objWriter.URL)-8),"/")
    	For I = 0 to Ubound(tab())-1
    		strCheminParent =strCheminParent & tab(i)&"\"
    	Next I
    	MsgBox strCheminParent
     
    End Sub

    Celle-ci va convertir le chemin de ton fichier URL en chemin Windows, et sans le nom du fichier, ainsi tu auras le répertoire contenant ton fichier Writer, et tu n'auras plus qu'à le concaténer avec ton fichier Texte.

    Tu peux remplacer la dernière ligne par
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ConvertToURL(strCheminParent)
    pour avoir ton chemin au format URL.

    Il y a surement plus simple, mais de cette manière tu peux récupérer le dossier où se trouve ton fichier Writer de deux manières et en concaténant tu as ton fichier Texte.

    Philippe
    Dernière modification par Invité ; 10/01/2009 à 07h57.

  5. #5
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Points : 45
    Points
    45
    Par défaut Ok
    Avec la fonction URL, j'ai réussi à trouver mon bonheur en effet... Dommage que l'IDE d'OpenOffice soit si restreint, avec une complétion automatique ou au moins une vraie doc, ça aurait pu être réglé en 2 minutes.

  6. #6
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    Citation Envoyé par spiral Voir le message
    avec une complétion automatique ou au moins une vraie doc, ça aurait pu être réglé en 2 minutes.
    Le projet OpenOffice.org est constitué de bénévoles. Toutes les propositions sont donc les bienvenues.

    Pour la doc, vous pouvez également enrichir le Wiki francophone.

    Comme je dis souvent : beaucoup se plaignent et peu se donne la peine de contribuer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Macro importer un fichier texte avec un chemin relatif
    Par oekoniko dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 06/04/2015, 17h31
  2. Réponses: 2
    Dernier message: 27/11/2014, 15h51
  3. Chemin relatif par rapport à un fichier
    Par thibouille dans le forum Langage
    Réponses: 3
    Dernier message: 08/11/2007, 20h43
  4. Fichier .properties et chemin relatif
    Par NoiBe dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2007, 15h38
  5. manipuler un fichier texte
    Par bassidi meryeme dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 00h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo