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

 Delphi Discussion :

Delphi et calc open office


Sujet :

Delphi

  1. #1
    Membre du Club
    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
    Points : 46
    Points
    46
    Par défaut Delphi et calc open office
    Je crée un Chatbot dont la base de données se trouve sous la forme d'un fichier calc sous open office.
    La base de données du fichier open office est balayée afin de comparer des chaînes avec celles de l'utilisateur: j'utilise les fonctions de type :

    MaFeuille := MonClasseur.GetByName('Feuille6');
    Cellule := Mafeuille.getCellByPosition(0,i);
    Cellule.GetValue/Cellule.SetString...

    ... Mon problème est que ça devient de plus en plus lent. Il me faut attendre pas loin de 3 secondes pour obtenir une réponse avec une base d'environ 2000 entrées.

    Comment accélérer le temps de réponse sans passer par un algo dichotomique? En effet, un classement par ordre alphabétique ne peut pas être envisagé dans la mesure où les entrées peuvent contenir des portes logiques avec imbrications récursives.
    J'avais pensé à transférer les données du tableur dans une mémoire dynamique type array de stringlist. Qu'en pensez-vous?

  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
    Effectivement soit tu génères ta base en 'interne' avec des tStringList mais ça va devenir compliqué si ta structure devient plus complexe, soit tu passes par une base de données, qui sert d'ailleurs à ça.

  3. #3
    Membre du Club
    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
    Points : 46
    Points
    46
    Par défaut
    Merci pour la réponse. J'ai essayé de doubler la partie "Stimulus" de mon chatbot, c'est à dire que j'ai créé un tableau array de 65000 chaînes et j'y ai copié les entrées de la base des entrées open office.

    Les réponses de mon chatbot sont désormais plus rapides. Cela ne m'a pas demandé énormément de travail dans la mesure où l'essentiel du code n'a pas bougé. Seul le balayage des entrées est dupliqué en mémoire vive, pas les réponses possibles. Bien entendu, lors des "discussions", il arrive de devoir modifier ou d'ajouter une entrée ou stimulus. Dans ce cas, je dois modifier à la fois le tableur open office et la mémoire array des stimulus.

Discussions similaires

  1. javascript dans calc (open office)
    Par litchi1234fr dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/02/2009, 13h55
  2. Impression avec Calc Open office
    Par Bruiser dans le forum C++Builder
    Réponses: 9
    Dernier message: 15/02/2009, 21h56
  3. Enregistrer un fichier Calc Open office
    Par Bruiser dans le forum C++Builder
    Réponses: 18
    Dernier message: 15/02/2009, 17h22
  4. [VB6-OOo]Open Office Calc
    Par Kokito dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/11/2006, 16h11
  5. Tableur Calc Open Office
    Par patrickbruneau dans le forum Delphi
    Réponses: 2
    Dernier message: 30/08/2006, 18h58

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