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

C++Builder Discussion :

ouvrir document word


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut ouvrir document word
    bonjour
    je me suis servis de la FAQ pour trouver comment ouvrir un document word. j utilise le code ci dessous mais il plante : "Le projet a provoque une classe d execption EOleSysError ..." comment faire ? merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Variant vFileName, vLink, vReadOnly, vFormat, vReadPass, vWDocuments, vWDocument ;
        Variant vMSWord;
    try
            {
     
        vMSWord = Variant::CreateObject("Word.Application");
            }
    catch(...)
            {
        vMSWord = Variant::CreateObject("Word.Application");
            }
        vMSWord.OlePropertySet("Visible", true);
        vReadOnly = true; // lecture seule
     
        vFileName = "C:\Documents and Settings\Manu\Mes documents\C++ buikder\Anniv v3\Aide\Aide.doc";
        vWDocuments = vMSWord.OlePropertyGet("Documents");
        vWDocument = vWDocuments.OleFunction("Open", vFileName,vReadOnly);

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Salut,
    déjà il y a une erreur dans ton chemin de fichier, tes antislash doivent être doublé pour que ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vFileName = "C:\\Documents and Settings\\Manu\\Mes documents\\C++ buikder\\Anniv v3\\Aide\Aide.doc";

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut
    D'accord le problème venait de la merci
    Dernière question comment récupérer le chemin de l exécutable pour le placer dans le FileName.
    Pour le jour on j installerai le programme sur un autre PC ou le chemin sera différent.

    merci

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut
    j ai le message Type de variable incorrect . pourtant le chemin est bon je l ai tester dans un edit .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
        AnsiString RepertoireApplication = ExtractFilePath(Application->ExeName);
        AnsiString CheminAide = (ExtractFilePath(Application->ExeName)+"Aide\\Aide.doc");
    try
            {
     
        vMSWord = Variant::CreateObject("Word.Application");
            }
    catch(...)
            {
        vMSWord = Variant::CreateObject("Word.Application");
            }
        vMSWord.OlePropertySet("Visible", true);
        vReadOnly = false; // lecture seule
     
     
        vFileName = CheminAide;
        vWDocuments = vMSWord.OlePropertyGet("Documents");
        vWDocument = vWDocuments.OleFunction("Open", vFileName,vReadOnly);

  6. #6
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vFileName = StringToOleStr( CheminAide );

  7. #7
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Tu l'as à quel moment ? en exécution ou à la compilation ? sur quel ligne précisément ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut
    Citation Envoyé par sat83 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vFileName = StringToOleStr( CheminAide );
    parfait merci , j avais chercher dans l'aide une conversion StrToVar ...
    L ' erreur avait lieu a l'execution .
    encore merci

  9. #9
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Juste une remarque : l'utilisation de StringToOleStr() produit des fuites de mémoires.
    Je te renvoi sur ce post où j'avais posé une question su le sujet.

    Ah oui, et n'oublis pas de cliquer sur "Résolu" lorsque quelqu'un à répondu à ta question (sur ce poste, et sur les 3 ou 4 autres précédents)

  10. #10
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    c'est le nom du chemin qui provoque l'erreur
    vWDocument = vWDocuments.OleFunction("Open", vFileName,vReadOnly);
    Je ne sais pas si il y a une regle a respecter mais a tester en fonction de l'erreur " vFileName " peu se passer comme ceci " WideString(vFileName) " ou " vFileName.c_str() "

  11. #11
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Je viens de me heurter a ce type d'erreur
    Si vFileName a ete declare en Variant est provoque une erreur alors il faut ecrire " WideString(vFileName) ", si vFileName a ete declare en String et provoque une erreur il faut ecrire " vFileName.c_str() "

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

Discussions similaires

  1. Ouvrir document Word à partir d'un formulaire Access(code VBA)
    Par protocoleigrp dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/06/2009, 16h22
  2. Réponses: 1
    Dernier message: 18/12/2008, 23h24
  3. Ouvrir document word dans IE
    Par juli1_h dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 27/10/2008, 16h06
  4. Ouvrir document word dans IE
    Par juli1_h dans le forum Word
    Réponses: 7
    Dernier message: 22/08/2008, 09h28
  5. Ouvrir Document Word complètement silencieusement
    Par B.ratak dans le forum VBA Word
    Réponses: 5
    Dernier message: 16/06/2007, 18h30

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