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
» Cacher la barre des tâches
par Klaus Aujourd'hui à 8:41

» quel est ce comportement de Panoramic_editor
par Oscaribout Aujourd'hui à 0:22

» Des FORM(s) Colorés
par Jean Claude Hier à 20:58

» Recherches dans un fichier texte
par JL35 Hier à 20:18

» Problème d'affichage des pages du forum (Résolu)
par Jean Claude Hier à 20:00

» Une "base de connaissance" - pour jouer ou plus si affinité
par Klaus Hier à 19:10

» Objet 3D_PLANE, réalisation d'un dé en 3D
par papydall Hier à 13:54

» Créer une application *.exe
par Yannick Ven 18 Mai 2018 - 20:01

» [RÉSOLU] Priorité affichage des objets : comment la définir?
par papydall Ven 18 Mai 2018 - 18:22

» Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK
par Jean Claude Jeu 17 Mai 2018 - 8:37

» [Résolu] Récuperer les fonctions systeme de Panoramic
par Minibug Mar 15 Mai 2018 - 23:21

» Est-ce qu'un fichier est inclus dans l'application ?
par Yannick Mar 15 Mai 2018 - 12:04

» Création d'une application avec Panoramic_Editor
par Klaus Mar 15 Mai 2018 - 0:36

» Pour faire patienter
par Minibug Lun 14 Mai 2018 - 21:25

» Une copie de Panoramic Editeur
par Minibug Lun 14 Mai 2018 - 19:55

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2018
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Demande de fonction spécifique avec KGF.

Aller en bas 
Aller à la page : Précédent  1, 2, 3
AuteurMessage
Klaus

avatar

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

MessageSujet: Re: Demande de fonction spécifique avec KGF.   Ven 30 Mar 2018 - 15:43

Bon, j'ai remplacé l'agorithme de recherche par une approche par dichotomie, en chargeant le fichier dans une StringList triée ASCII (mode 2 dans CreateStringList). Le chargement prend un peu de temps, mais c'est normal - le fichier est trié à ce moment précis. Mais c'est une opération que tu fais normalement au démarrage, une fois. A partir de là, la recherche est ultra-rapide. Pour le texte de 100 mots, voici le résultat:


Voici le programme Panoramic:
Code:
' test_SearchMultipleStringsInTextFile.bas

dim res%, ticks, fichier$, rec$

dim t$

t$ = "El murciélago de herradura de Willard fue descubierto en la República "
t$ = t$ + "Democrática del Congo en 2013 y lo más probable es que se extinga en unas "
t$ = t$ + "décadas . Con él , servicios prestados hasta la mitad de las especies endémicas del corazón de "
t$ = t$ + "África estarán amenazadas en los próximos 50 años . Hasta ahora tenían "
t$ = t$ + "que lidiar con el avance de los humanos , su agricultura y su ganadería , "
t$ = t$ + "que les iban comiendo su territorio . Ahora el cambio climático ha tomado "
t$ = t$ + "el relevo y les arrebatará hasta dos tercios del que les queda . A algunos "
t$ = t$ + "animales , como este quiróptero , los dejará literalmente sin espacio ."

dim interdit$:interdit$="*a*con*de*del*des*dos*el*en*este*la*las*le*les*lo*los*que*se*sin*su*un*une*y*"
fichier$="formes_verbales_espagnol_français_avec_complement.txt"
dim nombre%:nombre%=3
dim marqueur$:marqueur$=" #"

combo 100
combo 101 : left 101,width(100)+10
memo 102 : top 102,height(100)+10 : width 102,300
display

dll_on "kgf"

' AvecLectureDirecte()
 AvecStringList()
message "fin"

end

sub AvecLectureDirecte()
  ticks=number_ticks
  res%=dll_call6("SearchMultipleStringsInTextFile",adr(t$),adr(fichier$),handle(100),adr(interdit$),nombre%,adr(marqueur$))
  item_add 102,"Lecture directe: "+ str$(number_ticks-ticks)+" ("+str$(res%)+" dans la DLL)"                                                                                                                 
  item_add 102,"  "+str$(count(100))+" lignes trouvées"
  display
  text 100,item_read$(100,1)
end_sub

sub AvecStringList()
  dim_local SL%
  SL% = 1
  item_add 102,"Chargement de la StringList..."
  display
  res% = dll_call2("CreateStringList",SL%, 2)
  res% = dll_call2("LoadStringList",SL%,adr(fichier$))
'  fichier$ = "new.txt"
'  res% = dll_call2("SaveStringList",SL%,adr(fichier$))
  item_add 102,"Stringlist chargé."
  display

  ticks=number_ticks
  res%=dll_call6("SearchMultipleStringsInStringList",adr(t$),SL%,handle(101),adr(interdit$),nombre%,adr(marqueur$))
  item_add 102,"StringList: "+ str$(number_ticks-ticks)+" ("+str$(res%)+" dans la DLL)"                                                                                                                 
  item_add 102,"  "+str$(count(101))+" lignes trouvées"
  display
  text 101,item_read$(101,1)
  if count(101)>0
    rec$ = string$(255," ")
    res% = dll_call3("ReadStringList",SL%,val(text$(101)),adr(rec$))
    item_add 102,text$(101)+" = "+trim$(rec$)
  end_if
 
  res% = dll_call1("DeleteStringList",SL%)
end_sub


16 cycles pour 100 mots - ça va ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Demande de fonction spécifique avec KGF.   Ven 30 Mar 2018 - 17:14

Bonjour.

Alors là bravo !

En prenant un nombre de mots successifs égal à 2, j'obtiens un nombre de cycle de zéro !

La recherche est donc ultra-rapide, on ne pourrait pas mieux faire.

Je te remercie beaucoup d'avoir consacré tout ce temps à la création d'une seule fonction, et rien que pour moi.

Une petite question: est-il possible de remplacer la StringList par un objet Dlist ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Demande de fonction spécifique avec KGF.   Ven 30 Mar 2018 - 18:16

Citation :
Une petite question: est-il possible de remplacer la StringList par un objet Dlist ?
Non, malheureusement pas. Bien que, techniquement, ce soit le même objet de façon interne, je n'ai aucun accès aux données d'un DLIST à partir de la DLL. Un problème d'incoimpatibilité des gestionnaires de mémoire entre celui de la DLL et celui de Panoramic. Ceci était d'ailleurs la raison pour laquelle j'ai créé l'objet StringList, à l'époque.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Demande de fonction spécifique avec KGF.   

Revenir en haut Aller en bas
 
Demande de fonction spécifique avec KGF.
Revenir en haut 
Page 3 sur 3Aller à la page : Précédent  1, 2, 3
 Sujets similaires
-
» Demande sur itinéraire avec demi-tours sur Nuvi 3598?(remarque après 2ème essais)
» [Fermé] Demande d'optimisation mais bloqué avec ZHPDiag
» problème avec Outlook
» Déconnexions intempestives avec demande d'identification sur bbox
» j ai des souci , je debute depuis ce jour avec linux fedora

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: