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

Word Discussion :

formater automatiquement un document .doc


Sujet :

Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut formater automatiquement un document .doc
    Bonjour,

    J'ai un fichier Word que dont je dois inverser certains mots. Je compte utiliser le language Perl et une expression régulière afin de repérer les changements à effectuer. Le problème est que ce fichier possède des mots en italique dont je dois garder le format. Il existe des modules perl Win32::Word::Writer qui permet de créer un document Word et Win32::OLE qui permet de manipuler des documents Word mais cela semble compliqué alors qu'à la base le problème est simple car je ne veux pas modifier la mise en page et le style mais simplement inverser certains mots.
    http://search.cpan.org/search?query=...ffice&mode=all

    Le fichier est en fait une liste de référence bibliographiques dont la liste des auteurs est écrite sous le format 'F. NOMA, Y. NOMB, ...' et que je dois modifier par 'Noma F., Nomb Y.'

    Je me demandais si il n'existait pas une façon de transformer mon document word en un simple document .txt contenant les information du formatage (un peu comme du html). De cette façon, je pourrais facilement modifier le fichier .txt via Perl et ensuite le remettre sous la forme .doc tout en gardant le bon format. Comprenez-vous ce que je suggère?

    Je me demandais si vous aviez une idée de la façon dont je pourrais résoudre ce problème.




    Merci pour vos conseils,

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Je ne comprend pas la démarche de le faire via Perl ?

    Quelle est ta version de Word ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Expert confirmé
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Par défaut Inverser nom et prénom dans une bibliographie
    Salut,

    Comme Heureux-Oli, je ne vois pas l'utilité de la transformation (si tu dois conserver du Word) alors que Word permet de manipuler des expressions régulières (c'est un tout petit peu moins puissante que celle de Perl et/ou de Java mais qui répondent bien dans la majorité des cas) et surtout qui peuvent prendre en compte les formatages de caractères et/ou de paragraphes. Et de toute façon si les expressions régulières de Word ne sont pas suffisantes, une simple macro fera l'affaire.

    Sauf si tu as une raison personnelle (du style ta religion ne t'autorise qu'à faire du Perl...), si tu as un fichier Word au départ et tu veux un Word à l'arrivée, le mieux c'est d'utiliser... heu... Word.

    @+

  4. #4
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    En fait, j'ai parler de Perl car je ne connais que ce langage mais je n'arrive pas à manipuler un fichier Word via celui-ci alors que je peux facilement manipuler de simples fichiers textes. Je ne savais pas qu'il y avait moyen d'écrire des expressions régulières directement en Word. Je ne connais que le raccourci ctrl+H permettant de faire des modifications. Qu'est-ce que le macro? Je ne suis pas informaticienne, j'ai dû mal avec certains mots du vocabulaire informatique. Ma version Word est 2003. Tous mes moyens sont bons pour arriver à mes fins, je ne tiens pas spécialement à Perl. Merci beaucoup pour votre aide.

    Je récupère les initiales du prénoms, le nom, l'astérique si il y en a une et la ponctuation (. ou ,) de la ligne à formater via l'expression suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    my ($initiales_prenom, $nom, $asterisque, $ponctuation) = ($id =~ /([[A-Z]{1,2}\. ?(?:[A-Z]{1,2}\.)?)\s+([A-Z]+[ -]?[A-Z]*)(\*?)([,.])/i);
                    $nom = lc($nom);
                    $nom = ucfirst($nom);
                    print $nom." ".$initiales_prenom.$asterisque.$ponctuation." ";
    Ensuite, je réorganise pour avoir le format voulu. L'ennui est qu'il y a parfois des fautes des virgules, point, espace en trop ou trop peu (mais je devrais probablement les corriger manuellement) et aussi que certains prénoms forment de 1 à 3 initiales et que le noms sont parfois en 2 mots avec un tiret ou sans... enfin, c'est assez la foire.


    Donc ici,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    initiales = ([[A-Z]{1,2}\. ?(?:[A-Z]{1,2}\.)?)
    initiales_prénom : 1 à 2 lettres suivies d'un espace puis de 1 ou 0 point. Ensuite il est possible d'avoir encore une à deux lettre suivie d'un point.

    match
    Ph.
    A.
    A. P.
    A.P.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom = ([A-Z]+[ -]?[A-Z]*)
    nom : un groupe de lettre puis un espace ou un tiret optionnel et ensuite un second groupe de mot possible pour les noms composés.

    astérisque : présente ou absente
    ponctuation : un point ou une virgule

    Une fois que tout cela est récupéré, je mets le nom en minuscule sauf la première lettre et ensuite je réarrange les mots dans l'ordre voulu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print $nom." ".$initiales_prenom.$asterisque.$ponctuation."


    donc si j'ai
    N.C. Louis, Ph. DUPONT, C. Van-Deel, J. J. van Duuren. blablabla inutiles.

    je récupère
    Louis N.C., Dupont Ph., Van-deel C., Van duuren J. J..

    Y aurait-il moyen de faire similaire en Word? Merci beaucoup pour votre aide.

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Le fichier de départ, c'est quoi ?

    Possible qu'il soit plus facile de travailler les données à la source.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  6. #6
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Un fichier Word contenant une liste de références bibliographiques, il n'y a rien d'autre avant.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/04/2017, 17h21
  2. formater un document .doc
    Par Jasmine80 dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2008, 06h24
  3. [Format A4] Ajustement automatique du document
    Par aldo-tlse dans le forum Word
    Réponses: 1
    Dernier message: 09/07/2008, 12h38
  4. Génerer automatiquement plusieurs fichier .doc
    Par brunovitch dans le forum QuickReport
    Réponses: 3
    Dernier message: 09/07/2002, 08h19

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