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

API, COM et SDKs Delphi Discussion :

API open office getcellposition trop lent


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 130
    Par défaut API open office getcellposition trop lent
    Je développe un chatbot qui doit parcourir un tableau open office contenant des milliers de données pour les comparer à une chaîne donnée par l'utilisateur.
    Pour simplifier, on va dire qu'il y a dans le programme quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    i:=-1;
     repeat
        i:=i+1;
        Cellule := Mafeuille.getCellByPosition(0,i);      //(i) = 
        chaine:=Cellule.GetString;
        if chaine=phrase_utilisateur then begin ................... end;
      until chaine='';
    Le problème est que même si ça fonctionne, c'est d'une extrême lenteur. C'est d'autant plus étonnant que lorsque je fais Ctrl+F sous open office même et que recherche une chaîne c'est quasi instantané...

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Par défaut
    Citation Envoyé par sys1 Voir le message
    Le problème est que même si ça fonctionne, c'est d'une extrême lenteur. C'est d'autant plus étonnant que lorsque je fais Ctrl+F sous open office même et que recherche une chaîne c'est quasi instantané...
    Tu t'es répondu toi même !
    Sous Ooo, tu es en natif
    Sous Delphi, tu passes par les couches intermédiaires via OLE ou DDE

  3. #3
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par sys1 Voir le message
    Je développe un chatbot qui doit parcourir un tableau open office contenant des milliers de données pour les comparer à une chaîne donnée par l'utilisateur.
    Pour simplifier, on va dire qu'il y a dans le programme quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    i:=-1;
     repeat
        i:=i+1;
        Cellule := Mafeuille.getCellByPosition(0,i);      //(i) = 
        chaine:=Cellule.GetString;
        if chaine=phrase_utilisateur then begin ................... end;
      until chaine='';
    Le problème est que même si ça fonctionne, c'est d'une extrême lenteur. C'est d'autant plus étonnant que lorsque je fais Ctrl+F sous open office même et que recherche une chaîne c'est quasi instantané...
    n'y a-t-il pas dans l'API Ooo la fonction Recherche qui correspond au Ctrl + F ?

    autre solution, charge une fois pour toute les cellules dans un TStringList et recherche ensuite uniquement dans celui-ci.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 130
    Par défaut
    autre solution, charge une fois pour toute les cellules dans un TStringList et recherche ensuite uniquement dans celui-ci.
    C'est ce que j'ai fait en attendant de trouver une solution. Toujours est-il que le chatbot étant un chatbot "apprenant", il est nécessaire d'écrire ou de lire régulièrement sur le tableau open office.
    S'il n'est vraiment pas possible de faire autrement, je devrais programmer un quicksort pour le classement du tableau assorti d'une recherche dichotomique, histoire de compenser la lenteur des accés par des algorithmes à faible complexité...

    A titre indicatif, le chatbot est en téléchargement là :
    http://jeffelson.e-monsite.com/

Discussions similaires

  1. API Open Office 3.2.0
    Par boulmaneinfo dans le forum Documents
    Réponses: 0
    Dernier message: 26/07/2010, 18h30
  2. Intégration de l'API d'open office
    Par gmirasaad dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 23/02/2009, 16h08
  3. Problème de jar avec l'API Java d'open Office (com.sun.star)
    Par mazizou dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 27/05/2008, 16h13
  4. Réponses: 4
    Dernier message: 15/05/2008, 17h28
  5. API open office
    Par sandytarit dans le forum Documents
    Réponses: 1
    Dernier message: 02/02/2007, 15h25

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