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

Langage Delphi Discussion :

[D7]Echec ouverture document OpenOffice


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 47
    Points : 35
    Points
    35
    Par défaut [D7]Echec ouverture document OpenOffice
    En reprenant l'exemple de la FAQ delphi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var
        OpenDesktop : Variant;
        LoadParams : Variant;
        NomFichier : AnsiString;
    begin
       OpenDesktop := OpenOffice.createInstance('com.sun.star.frame.Desktop');
       LoadParams := VarArrayCreate([0, -1], varVariant);
       NomFichier := StringReplace('C:Documents and SettingsJeromeMes documentsdemo.sxw'
                                               , '', '/', [rfReplaceAll, rfIgnoreCase]);
       Document := openDesktop.LoadComponentFromURL( 'file:///'+NomFichier, '_blank', 0,  LoadParams);
    end;
    Je n'ai pas d'erreur de compilation, par contre à l'exécution j'ai un message d'erreur:
    "Le projet OO.exe a provoqué une classe d'exception EOle Exception avec le message 'com.sun.star.lang.IllegalArgumentException: URL seems to be an unsupported one '....
    J'utilise OpenOffice 3.1.1.
    Il semble par ailleurs que l'extension des fichiers ait changé ( .odt au lieu de .sxw)
    Enfin lorsque je teste la présence d'OpenOffice (http://www.developpez.net/forums/d65...fice-installe/)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    OpenOffice := CreateOleObject('com.sun.star.ServiceManager');
    if  VarIsEmpty(OpenOffice) then
       ShowMessage('OpenOffice Absent')
    la réponse est positive.

    Merci de votre aide.

  2. #2
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Ton StringReplace me semble plutôt bizarre. Tu peux dire la valeur de
    NomFichier après celui ci ?
    Un petit coup de FileExists ne ferait d'ailleurs pas de mal...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    Dans mon test, le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     NomFichier := StringReplace('C:\Bibliothèques\Documents\test.odt', '\', '/', [rfReplaceAll, rfIgnoreCase]);
    et NomFichier devient :
    'C:/Bibliothèques/Documents/test.odt'
    ... qui existe réellement !

  4. #4
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Alors peut être que la syntaxe du nom de fichier pose problème (par exemple les caractères accentués...).
    Essaye déjà de mettre un nom de fichier court (test.odt est très bien) et directement dans c:\ .

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 097
    Points : 41 081
    Points
    41 081
    Billets dans le blog
    62
    Par défaut
    j'utilise ceci pour passer un nom de fichier windows en fichier type URL

    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
    19
    20
    21
     
    function FileToURL(F : String) : AnsiString;
    var i : Word;
        R : AnsiString;
    begin
       R:='file:///'+F;
       // transforme le nom du fichier en adresse URL
       while (Pos('\',R)>0) do    {les \ en /}
       begin
        i:=Pos('\',R);
        Delete(R,i,1);
        Insert('/',R,i);
       end;
      while (Pos(' ',R)>0) do    {les espaces en %20}
      begin
        i:=Pos(' ',R);
        Delete(R,i,1);
        Insert('%20',R,i);
      end;
      result:=R;
      end;
    jusque là cela ne m'a pas fait défaut D3 à D7

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par philnext Voir le message
    Alors peut être que la syntaxe du nom de fichier pose problème (par exemple les caractères accentués...).
    Essaye déjà de mettre un nom de fichier court (test.odt est très bien) et directement dans c:\ .
    C'est fait et... ça passe !
    NomFichier = 'C:\Test.odt'
    Shame on me
    Je trouvais pratique de copier/coller dans la ligne d'adresse le nom du répertoire, mais depuis Windows7 ( pour moi qui était sous XP ) cette ligne change en fonction de l'accés ainsi :
    Bibliothèques\Documents
    est en réalité
    C:\Users\nom_utilisateur\Documents
    et s'affiche
    (C: )> utilisateur> nom_utilisateur> Mes documents
    Pourquoi faire simple ???

    Merci à tous pour ce grand pas - pour moi -

    P.S. J'avais une autre erreur d'installation d'OO que j'ai réinstallé ( non sans peine ) et qui compliquait le problème...

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

Discussions similaires

  1. Chemin ouverture document
    Par titeZ dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/05/2007, 17h53
  2. Ouverture document impossible
    Par Khab' dans le forum Access
    Réponses: 3
    Dernier message: 15/02/2007, 08h05
  3. ouverture document pdf
    Par ikane dans le forum Struts 1
    Réponses: 6
    Dernier message: 11/12/2006, 18h25
  4. Rendre un document openoffice visible
    Par HumanTool dans le forum Langage
    Réponses: 10
    Dernier message: 15/03/2006, 15h48
  5. document openoffice
    Par indy2 dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 16/12/2005, 10h21

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