FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Gestionnaire de Projets Panoramic
par Minibug Aujourd'hui à 2:10

» Mah-Jong européen new-look
par jjn4 Hier à 16:35

» Button_picture
par pascal10000 Hier à 11:41

» Pourquoi le compilateur stagne
par Minibug Hier à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Hier à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Hier à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Hier à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Mer 13 Déc 2017 - 17:27

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Utilisation de SearchStringList.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Pedro Alvarez

avatar

Nombre de messages : 882
Date d'inscription : 19/01/2014

MessageSujet: Utilisation de SearchStringList.   Jeu 14 Jan 2016 - 15:34

Bonjour.

@Klaus.

Je serais intéressé de connaître l'algorithme utilisé dans cette fonction.

Je pense également que cette fonction pourrait être optimisée en temps d'exécution.

Car la recherche de 1.000 éléments s'exécute en 38 sec. !!

Merci Klaus.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10259
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Utilisation de SearchStringList.   Jeu 14 Jan 2016 - 15:53

Le principe est le suivant:
- si la StringList n'est pas triée, on la parcourt à partir du début et un s'arrête si l'enregistrement est trouvé
- si la StringList est triée en mode 1 (système), on effectue la recherche par une seule commande par la méthode Find de l'objet TStringList - durée incompressible car méthode interne à Delphi
- si la StringList est triée en mode 3 (personnalisée), on utilise une recherche par dichotomie, en comparant chaque chaîne trouvée au critère par une fonctions de comparaison spéciale.

La fonction de comparaison est:
Code:
function ComparerChaine1(sTmp1, sTmp2: string): Integer;
var
  i, n, l1, l2, c1, c2: integer;
begin
// Chaines à comparer
  try
    l1 := length(sTmp1);
    l2 := length(sTmp2);
    n := min(l1,l2);
    for i:=1 to n do begin
      result := ord(sTmp1[i])- ord(sTmp2[i]);
      if result<>0 then exit;
    end;
  except
    result := 0;
  end;
end;
Ce qui est très rapide, en procédant par des pointeurs.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

Nombre de messages : 882
Date d'inscription : 19/01/2014

MessageSujet: Utilisation de SearchStringList.   Jeu 14 Jan 2016 - 16:00

Bonjour.

Merci Klaus de la réponse rapide.
Enfin, je croyais que tu avais la main sur la fonction 'Find', mais je vois que ce n'est pas le cas.
Dommage.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Utilisation de SearchStringList.   

Revenir en haut Aller en bas
 
Utilisation de SearchStringList.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Kaspersky utilisation ? ( résolu )
» [Résolu] Utilisation de REGCLEANER (sauvegarde)
» Première utilisation 1490T
» [RESOLU] Modification de la taille de la police du manuel d'utilisation DEZL
» Demande d'aide après utilisation du logiciel ZHP Diag

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: