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 :

Traiter des données plus rapidement.


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 159
    Points : 81
    Points
    81
    Par défaut Traiter des données plus rapidement.
    Bonjour,

    Suite à une préselection, je cherche dans une listbox de 800 items, tous les items ayants 20 caractéristiques.

    Je fais donc une double boucle "for":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for x:= 0 to listbox1.count-1 do
    begin
     
       for y := 0 to listbox2.count-1 do
       begin
     
       if donnée.item[y] = donnée.item[x] then .......
     
       end;
     
    end;
    Le soucis est que le temps de traitement est de 2 secondes !
    Ce que je trouve extrêmement long

    Y a t il une possibilité pour alléger mon code ou raccourcir le temps de traitement ?

    Merci

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    1er chose, si tes données sont triées ca ira largement plus vite.

    Et pour optimiser le code faire plutôt comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     for y := 0 to listbox2.count-1 do
       if ListBox1.Items.IndexOf(listbox2.Items.Strings[i]) <> -1 then
         // ...
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 159
    Points : 81
    Points
    81
    Par défaut
    Merci pour l'optimisation du code
    Mes données sont triées, donc je n'ai plus qu'à attendre mes 2 secondes

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/11/2010, 10h09
  2. [XQuery] traiter des données XML avec xquery
    Par fatjoe dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 29/03/2010, 02h17
  3. [OFX] Api pour traiter des données en OFX/QIF
    Par Pakkaï dans le forum Documents
    Réponses: 0
    Dernier message: 30/07/2008, 18h03
  4. [WD 9] traiter des données provenant du port série
    Par kouki507 dans le forum WinDev
    Réponses: 2
    Dernier message: 13/12/2007, 19h00
  5. SQL - Traiter des données d'une table
    Par david71 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/02/2005, 16h47

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