FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
KGF_dll - nouvelles versions - Page 37 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
KGF_dll - nouvelles versions - Page 37 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF_dll - nouvelles versions - Page 37 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF_dll - nouvelles versions - Page 37 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF_dll - nouvelles versions - Page 37 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF_dll - nouvelles versions - Page 37 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF_dll - nouvelles versions - Page 37 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF_dll - nouvelles versions - Page 37 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 37 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF_dll - nouvelles versions - Page 37 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF_dll - nouvelles versions - Page 37 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF_dll - nouvelles versions - Page 37 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF_dll - nouvelles versions - Page 37 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF_dll - nouvelles versions - Page 37 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF_dll - nouvelles versions - Page 37 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-28%
Le deal à ne pas rater :
-28% Machine à café avec broyeur à grain MELITTA Purista
229.99 € 318.99 €
Voir le deal

 

 KGF_dll - nouvelles versions

Aller en bas 
+8
JL35
Marc
papydall
Jicehel
Yannick
pascal10000
Minibug
Klaus
12 participants
Aller à la page : Précédent  1 ... 20 ... 36, 37, 38, 39, 40  Suivant
AuteurMessage
Pedro

Pedro


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Demande d'une nouvelle fonction de KGF.   KGF_dll - nouvelles versions - Page 37 EmptyLun 5 Déc 2016 - 15:16

Bonjour.

Un grand merci Klaus, c'est exactement ce que je recherchais.
Et la fonction est ultra-rapide.
Revenir en haut Aller en bas
Pedro

Pedro


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Demande d'une nouvelle fonction de KGF.   KGF_dll - nouvelles versions - Page 37 EmptyMar 6 Déc 2016 - 8:57

Bonjour.

@Klaus.

Encore merci pour la nouvelle fonction de recherche de chaîne, dont la vitesse de traitement est vraiment phénoménale.

Mais, au lieu d'envoyer les résultats dans le presse-papiers, te serait-il possible de les envoyer dans un objet système (combo, memo, ...), dont on fournirait le handle.

Merci de la suite.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyMar 6 Déc 2016 - 10:43

Nouvelle version:
KGF.dll V7.09 du 06/12/2016

Nouveautés:
- 2 nouveaux paramètres pour SearchStringInTextFile

Modules modifiés:
KGF.dll

La doc est inchangée et reste à corriger. Les sources sont à jour.

Ces deux nouveaux paramètres sont:
OutType%: 0=clipboard  1=memo  2=combo  3=list
Output%: ignoré si OutType%=0, ou handle de l'objet sinon

Voici un programme de démo:
Code:
' test_SearchStringInTextFile.bas

label exec

dim res%, fic$, crit$

full_space 0
dll_on "KGF.dll"
memo  1  : bar_both 1 : top 1,40 : width 1,300 : height 1,400
combo 2  : left 2,310 : top 2,40 : width 2,300 : height 2,400
list  3  : left 3,620 : top 3,40 : width 3,300 : height 3,400

option 10 : top 10,10 : left 10, 10 : caption 10,"Clipboard"
option 11 : top 11,10 : left 11,110 : caption 11,"Memo"
option 12 : top 12,10 : left 12,210 : caption 12,"Combo"
option 13 : top 13,10 : left 13,310 : caption 13,"List"

alpha  20 : top 20,10 : left 20,510 : caption 20,"Critère:"
edit   21 : top 21,10 : left 21,580 : width 21,100
button 22 : top 22,10 : left 22,690 : caption 22,"Exécuter" : on_click 22,exec
mark_on 10

fic$ = "dico_français_espagnol.txt"
text 21,"travail"
end

exec:
  crit$ = text$(21)
  ' res% = dll_call4("SearchStringInTextFile",adr(fic$),adr(crit$),LineNumbers%, AtStartOnly%, OutType%, OutHandle%)
  '     LineNumbers: 0=pas de numéros de ligne  <>0=numéros de ligne
  '     AtStartOnly: 0=dans toute la ligne      <>0=au début de la ligne uniquement
  '     OutType%:    0=clipboard  1=memo  2=combo  3=list
  if checked(10)=1
    clear 1
    res% = dll_call6("SearchStringInTextFile",adr(fic$),adr(crit$),1,1,0,0)
    clipboard_paste 1
  end_if
  if checked(11)=1
    clear 1
    res% = dll_call6("SearchStringInTextFile",adr(fic$),adr(crit$),1,1,1,handle(1))
  end_if
  if checked(12)=1
    clear 2
    res% = dll_call6("SearchStringInTextFile",adr(fic$),adr(crit$),1,1,2,handle(2))
  end_if
  if checked(13)=1
    clear 3
    res% = dll_call6("SearchStringInTextFile",adr(fic$),adr(crit$),1,1,3,handle(3))
  end_if
  message str$(res%)+" lignes trouvées"
  return

end
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Demande d'une nouvelle fonction de KGF.   KGF_dll - nouvelles versions - Page 37 EmptyMar 6 Déc 2016 - 13:40

Bonjour.

Encore merci Klaus, ces deux nouveaux paramètres simplifient encore un peu plus mon code.

Tout simplement GENIAL !
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 37 EmptyMar 6 Déc 2016 - 19:15

Cette fonction va être une bénédiction pour les recherches...
cyclops
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyMar 6 Déc 2016 - 21:18

Bonsoir Klaus !

J'ai testé ton code et cette fonction est tout simplement géniale !
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyMar 6 Déc 2016 - 23:59

Merci ! Very Happy Very Happy Very Happy

Je prépare une autre surprise, basée sur la technique utilisée dans cette fonction, mais... enfin, vous verrez !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: souci d' affichage specialbutton   KGF_dll - nouvelles versions - Page 37 EmptyMer 7 Déc 2016 - 3:01

Klaus, j' ai un souci avec l' affichage des specialbutton au démarrage.
J' ai créé une barre avec 8 specialbutton dont certains sont mis en inactif au départ (les séparateurs ).
j' ai une librairie de 8 icones pour ne pas réutiliser un même indice pour ces boutons séparateurs.

Au départ certains boutons (les séparateurs) ont une image qui n' est pas la leur.
mais cela rentre dans l' ordre si je fais survoler la barre par le curseur.

Et autre détails, mes séparateurs qui devraient être inactif, ne le sont pas.

J' ai mis un zip sur mon webdav ( la création se fait de la ligne 329 à ....je ne sais plus, y en a déjà trop  Laughing , si 350)
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyMer 7 Déc 2016 - 17:11

Je vais voir ça...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyMer 7 Déc 2016 - 19:04

Premiers résultats:
1. le fichier ILB n'est pas lisible par l'outil IcoLibrary. Il n'a donc pas été créé par cet outil. Ce n'est pas grave en soi, puisque des icônes sont bien visibles dans ton programme, mais cela m'empêche de contrôler l'organisation du fichier. Tant pis, on fera sans.
2. tu as apparemment réservé 3 icônes par bouton. Extrait de la doc:
Citation :
On définit une ImageList pour la barre d'outils, et tous les boutons prennent leurs images dans cette ImageList, via un numéro d'image (1, 2, ...). Pour chaque bouton, il faut prévoir 3 images dont les numéros se suivent, et qui correspondent à 4 états différents. Les états possibles sont:
dim sbsNormal% : sbsNormal% = 0
dim sbsHover% : sbsHover% = 1
dim sbsHit% : sbsHit% = 2
dim sbsInactive% : sbsInactive% = 3
Je confesse: j'aurais dû écrire "4 images" au lieu de 3 images. Mais la suite du texte dut bien qu'il s'agit des images pour les 4 états possibles, et les 4 états sont indiqués. Et en conséquence, pour les boutons en état "inactive", ce sera la première icône du bouton suivant qui sera utilisée. Ce qui explique ton décalage au démarrage. Je corrige la faute de frappe dans la doc et mets à jour.
3. il y avait un bug dans la gestion du survol d'un bouton inactif. Ceci est corrigé et tu peux charger la nouvelle version de la DLL.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyMer 7 Déc 2016 - 19:05

Nouvelle version:
KGF.dll V7.10 du 07/12/2016

Nouveautés:
- SpecialButton: correction d'un bug dans la gestion du survol d'un bouton inactif

Modules modifiés:
KGF.dll

La doc est inchangée et reste à corriger. Les sources sont à jour.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 37 EmptyMer 7 Déc 2016 - 21:20

J' ai rechargé la dll
adapté mon programme
ajouté des images dans l' imagelist

...et tout est rentré dans l' ordre !

cheers Merci Klaus.

J' ai aussi testé la dernière fonction de recherche, c' est phénoménal !
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyMer 7 Déc 2016 - 23:48

Very Happy Very Happy Very Happy
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyJeu 8 Déc 2016 - 20:56

Nouvelle version:
KGF.dll V7.11 du 08/12/2016

Nouveautés:
- nouvel objet: FastTextFile et ses fonctions de gestion

Modules modifiés:
KGF.dll
KGF.chm


La doc est inchangée et reste à corriger. Les sources sont à jour.

Cet objet utilise le mode d'accès ultra-rapide de la fonction SearchStringInTextFile (dont la documentation a été faite dans le groupe des fonctions de chaînes de caractères !) pour réaliser des fonctions de lecture, écrituren recherche dans un fichier texte quelconque. C'est très, très rapide. Et, cerise sur le gâteau, on peut faire de l'accès direct par ligne, malgré le fait que les lignes dont de longeur variable ! En effet, on gère la notion de "position actuelle" qui est le prochain numéro de ligne à lire. Et cette position peut être manipulée en la modifiant, soit de façon relative par rapport la position actuelle, soit de façon absolue en imposant une nouvelle position actuelle. C'est une grande nouveauté.

Voici un programme démo qui utilise un des dictionnaires de Pdreo Alvarez, à titre d'exemple. Ma version (déjà ancienne) contient plus de 43000 Lignes. Le programme de démo demande d'abord l'autorisation de faire une copie du fichier (sous un autre nom). Elle est réalisée par une boucle lecture séquentielle/écriture séquentielle. L'occasion de constater vraiment les performances. Puis, le programme lit les 1000 premières lignes dans un mémo, effectue quelques opérations de positionnement suivi de lectures et affiche les résultats dans des combos et lists, en affichage des libellés indiquant la nature des opérations. Etudiez bien le source - la manipulation est très aisée. La documentation est complète, dans ma section des "Objets":
Code:
' test_FastTextFile.bas


dim res%, fic$, s$, ActLig%, crit$

dll_on "KGF.dll"

dim ftfOtClipboard% : ftfOtClipboard% = 0
dim ftfOtMemo%      : ftfOtMemo%      = 1
dim ftfOtCombo%    : ftfOtCombo%    = 2
dim ftfOtList%      : ftfOtList%      = 3

memo 1 : full_space 1 : bar_both 1 : height 1,height(1) - 30 : top 1,top(1) + 30
combo 2 : width 2,width(1)

dim ligne$ : ligne$ = string$(500," ") : ' 500 ou plus - il faut mettre la longueur maximale attendue
dim ncar% : ' nombre de caractères lus
dim FTF% : ' identification du fichier ouvert en lecture
dim FTF2% : ' identification du fichier en écriture
dim fichier$ : ' nom du fichier à ouvrir
dim fichier2$ : ' nom du fichier en sortie
dim txt$ : ' texte récupére après la lecture
dim i%

fichier$ = "dico_français_espagnol.txt"
fichier2$ = "dico_français_espagnol_copie.txt"

if message_confirmation_yes_no("Dupliquer le fichier ?")=1
  ' *** copie complète par read/write
  FTF% = dll_call4("OpenFastTextFileForRead",adr(fichier$),adr(ligne$),0,adr(ActLig%))
  if FTF%=0 then message "Erreur en ouverture"
  if file_exists(fichier2$)=1 then file_delete fichier2$
  FTF2% = dll_call3("OpenFastTextFileForWrite",adr(fichier2$),0,adr(ActLig%))
  ncar% = 0
  cursor_hourglass 0
  cursor_hourglass 1
  while ncar%>=0
    ncar% = dll_call2("ReadFastTextFileLine",FTF%,0) : ' lire une ligne séquentiellement
    if ncar%>=0 then res% = dll_call2("WriteFastTextFileLine",FTF2%,adr(ligne$)) : ' écrire une ligne séquentiellement
  end_while
  res% = dll_call1("CloseFastTextFile",FTF%)
  res% = dll_call1("CloseFastTextFile",FTF2%)
  cursor_default 0
  cursor_default 1
end_if

' *** lire les 1000 premières lignes dans le mémo
FTF% = dll_call4("OpenFastTextFileForRead",adr(fichier$),adr(ligne$),0,adr(ActLig%))
hide 1
for i%=1 to 1000
  ncar% = dll_call2("ReadFastTextFileLine",FTF%,0) : ' lire une ligne séquentiellement
  if ncar%<0
    message "eof"
    exit_for
  end_if
  item_add 1,str$(ActLig%)+" "+ligne$ : ' la fonction place un #0 à la fin du texte lu
next i%
show 1

item_add 1," "
item_add 1,"  Retour de 2 lignes en arrière:"
res% = dll_call2("SkipFastTextFileLines",FTF%,0-2)
  ncar% = dll_call2("ReadFastTextFileLine",FTF%,0) : ' lire une ligne séquentiellement
  item_add 1,str$(ActLig%)+" "+ligne$ : ' la fonction place un #0 à la fin du texte lu
  ncar% = dll_call2("ReadFastTextFileLine",FTF%,0) : ' lire une ligne séquentiellement
  item_add 1,str$(ActLig%)+" "+ligne$ : ' la fonction place un #0 à la fin du texte lu
item_add 1," "
item_add 1,"  Positionner en ligne 3:"
res% = dll_call2("PositionToFastTextLine",FTF%,3)
  ncar% = dll_call2("ReadFastTextFileLine",FTF%,0) : ' lire une ligne séquentiellement
  item_add 1,str$(ActLig%)+" "+ligne$ : ' la fonction place un #0 à la fin du texte lu
  ncar% = dll_call2("ReadFastTextFileLine",FTF%,0) : ' lire une ligne séquentiellement
  item_add 1,str$(ActLig%)+" "+ligne$ : ' la fonction place un #0 à la fin du texte lu
  res% = dll_call1("GetFastTextPosition",FTF%)    : ' retourner ma position actuelle
  item_add 1,"  Position actuelle: "+str$(res%)+" = "+str$(ActLig%)
 
item_add 1," "
item_add 1,"  SearchString 'jardin' ==> Combo"
crit$ = "jardin"
res% = dll_call6("SearchStringInFastTextFile",FTF%,adr(crit$),1,1,ftfOtCombo%,handle(2))

item_add 1," "
item_add 1,"  3xFindNextStringInFastTextFile avec jardin"
res% = dll_call3("FindNextStringInFastTextFile",FTF%,adr(crit$),1)
item_add 1,str$(res%)+" "+ligne$
res% = dll_call3("FindNextStringInFastTextFile",FTF%,adr(crit$),1)
item_add 1,str$(res%)+" "+ligne$
res% = dll_call3("FindNextStringInFastTextFile",FTF%,adr(crit$),1)
item_add 1,str$(res%)+" "+ligne$

res% = dll_call1("CloseFastTextFile",FTF%)

end
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyJeu 8 Déc 2016 - 23:25

Bonsoir klaus !

Je me doutais bien que tu allais faire quelque chose comme ça ! Laughing

Par contre, pour la mise en œuvre cela semble moins évident...
Mais je vais prendre mon temps ce week-end pour regarder tout ça. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyJeu 8 Déc 2016 - 23:32

En allant à l'essentiel, c'est simple. Regarde le coeur de la boucle copiant le fichier:
Code:
  FTF% = dll_call4("OpenFastTextFileForRead",adr(fichier$),adr(ligne$),0,adr(ActLig%))
  FTF2% = dll_call3("OpenFastTextFileForWrite",adr(fichier2$),0,adr(ActLig%))
  ncar% = 0
  while ncar%>=0
    ncar% = dll_call2("ReadFastTextFileLine",FTF%,0) : ' lire une ligne séquentiellement
    if ncar%>=0 then res% = dll_call2("WriteFastTextFileLine",FTF2%,adr(ligne$)) : ' écrire une ligne séquentiellement
  end_while
  res% = dll_call1("CloseFastTextFile",FTF%)
  res% = dll_call1("CloseFastTextFile",FTF2%)
2 ouvertures
1 boucle sur un read suivi d'un write
2 fermetures
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: KGF.DLL   KGF_dll - nouvelles versions - Page 37 EmptyVen 9 Déc 2016 - 8:12

Bonjour.

Klaus, j'ai étudié ton code avec grand intérêt.
J'ai créé une routine afin de tester les différentes possibilités de lecture d'un grand fichier.
Malheureusement, en exécutant le test 3, le programme ne s'arrête pas.
Aurais-je omis quelque chose ?

Merci de ton aide.


Code:
dll_on "kgf"

dim a$, ActLig%, b$, fichier$, FTF%, k%, l%, ligne$, ncar%, res%

dlist 1

b$=time$

fichier$="dico_français_anglais.txt"

test3()

message b$+" : "+time$

end

' 19 sec
sub test1()
    file_load 1,fichier$

    for k%=1 to count(1)
        a$=item_read$(1,k%)
        ' if len(a$)>l% then l%=len(a$)
    next k%
end_sub

' 20 sec
sub test2()
    file_open_read 1,fichier$

    while file_eof(1)=0
        file_readln 1,a$
    end_while
end_sub

' sec
sub test3()
    ' Ajusté à la longueur de la plus grande ligne.
    ligne$=string$(1520," ")
    FTF%=dll_call4("OpenFastTextFileForRead",adr(fichier$),adr(ligne$),0,adr(ActLig%))
    ncar%=0
    while ncar%>=0
          ncar%=dll_call2("ReadFastTextFileLine",FTF%,0) : ' lire une ligne séquentiellement
    end_while
    res%=dll_call1("CloseFastTextFile",FTF%)
end_sub
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyVen 9 Déc 2016 - 8:51

Bonjour Klaus !

Dans ton exemple au dessus, à chaque fois que je cherche a dupliquer le fichier j'ai un message d'erreur Panoramic a cessé de fonctionner !
J'ai bien pris la dernière version de KGF mais rien n'y change...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyVen 9 Déc 2016 - 10:04

Tu as raison - il y avait unn bug dans la détection de fun de fichier. C'est corrigé. Tu peux recharger la DLL.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: KGF.DLL   KGF_dll - nouvelles versions - Page 37 EmptyVen 9 Déc 2016 - 10:15

Bonjour.

Je viens de télécharger la dernière version de KGF.DLL.

Le test 3 indique une durée d'exécution de 36 sec, bien supérieure aux deux autres tests !
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyVen 9 Déc 2016 - 10:35

Je vais regarder cela de près.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyVen 9 Déc 2016 - 13:40

Bon, j'ai fait des essais. Au premier regard, effectivement, c'est plus lent, et sensiblement plus lent. Donc, j'ai cherché. Et j'ai trouvé. En fait, c'est le passage de Panoramic à la DLL qui cause problème. L'exécution de la commande DLL_CALLx prend beaucoup de temps. J'ai mesuré avec DLL_CALL0, et ma mesure indique 0,16 ms par appel. Et avec mon fichier de 43000 lignes, on arrive à 7 secondes, rien que pour le DLL_CALL0, sans même faire le READ physique que j'ai éliminé de la fonction pour faire les tests. Avec le READ, on passe de 7 secondes à 8 secondes pour 43000 lignes.

Conclusion:
Tant que je n'ai pas trouvé une astuce pour accélérer l'appel des fonctions DLL, ce composant FastTextFile ne sert à rien, malheureusement. Il reste très performant tant qu'on reste en Delphi pur (la preuve en est la fonction SearchStringInTextFile qui est époustouflante), les performances sont excellentes. Mais dès qu'on veut faire des accès individuels, l'interface Panoramic/DLL fait s'écrouler les performances.

Reste que la fonction de positionnement relatif ou absolu dans un fichier texte par numéro de ligne est une fonctionnalité intéressante et là, pour le coup, performante puisqu'elle s'effectue en Delphi pur.

A suivre.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyVen 9 Déc 2016 - 18:48

Bonsoir Klaus !

Y a t il un moyen de récupérer le numéro de l'objet Panoramic qui supporte la fenêtre SYNEDIT ?
J'ai le HANDLE mais comment récupérer ensuite le numéro ?

Il s'agit de récupérer la hauteur et la largeur de l'objet Panoramic ( WIDTH(n%) et HEIGHT(n%) )
j'ai récupéré des valeurs mais elle ne semble pas correctes ! Je suis perdu... silent
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyVen 9 Déc 2016 - 19:25

Tu as le handle ? Alors, essaie ceci:
Code:
res% = DLL_call5("GetFormMetrics",hnd%,adr(gauche%),adr(haut%),adr(largeur%),adr(hauteur%))
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 EmptyVen 9 Déc 2016 - 19:40

Merci Klaus ! cheers
ça fonctionne parfaitement.

Avec KGF on a plein de fonctions que l'on ne connaît pas...
Même si ta documentation est bien faite, elle reste dans certains cas assez obscure.
C'est dommage car il y a une tonne de chose dans cette DLL qui sont tout simplement de vrais bijoux.

Peut être faudrait il y insérer des copies d'écrans ou peut être des d'explications plus détaillées.
Perso, j'avoue ne pas toujours savoir ou comprendre comment les utiliser et c'est vraiment dommage. silent

Heureusement tu es là pour nous guider dans cette bibliothèque géante... drunken

Encore merci Klaus. sunny

Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





KGF_dll - nouvelles versions - Page 37 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 37 Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 37 sur 40Aller à la page : Précédent  1 ... 20 ... 36, 37, 38, 39, 40  Suivant
 Sujets similaires
-
» Nouvelles versions
» KGF_dll - nouvelles versions
» Synedit_Editor - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: