[R] Conseils pour accélérer affichage ListView
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [R] Conseils pour accélérer affichage ListView
Bon, je me tempère quand même : le moteur peut être un autre SGBDR type MySQL et l'interface du web ; c'est ce qu'utilisent nombre de programmes de généalogie.
Cependant SQLite reste considérablement plus facile à mettre en oeuvre et permettra un export vers tout SGBDR avec peu d'efforts si le besoin s'en fait sentir.
Je ne suis pas si sectaire qu'on pourrait le croire !
Cependant SQLite reste considérablement plus facile à mettre en oeuvre et permettra un export vers tout SGBDR avec peu d'efforts si le besoin s'en fait sentir.
Je ne suis pas si sectaire qu'on pourrait le croire !
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Conseils pour accélérer affichage ListView
Pour l'erreur
Sinon essaie d'installer la plus récente version d'autoit
Tu as bien commenté la ligne du fichier qui est dans l'include ?C:\Program Files (x86)\AutoIt3\Include\SQLite.au3(2,13) : ERROR: missing separator character after keyword.
#IgnoreFunc __SQLite_Inline_Version
~~~~~~~~~~~~^
Sinon essaie d'installer la plus récente version d'autoit
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [R] Conseils pour accélérer affichage ListView
@jchd : Si SQLIite fait l'affaire, je n'irai pas voir ailleurs !
@Mikell :
J'utilise AutoIt 3.3.8.1
Je me rends compte que si je lance genea.au3 via "exécuter" de SCiTe, j'obtiens l'erreur.
Si je le lance directement via AutoIt3, je n'obtiens plus l'erreur, mais... le tableau est vide !
Je précise :
- j'ai installé SQLite.dll.au3 et SQLite.au3 dans le dossier Include.
- J'ai installé genea.au3 et genea.sqlite dans le dossier de mes programmes, différent du précédent.
@Mikell :
J'utilise AutoIt 3.3.8.1
Je me rends compte que si je lance genea.au3 via "exécuter" de SCiTe, j'obtiens l'erreur.
Si je le lance directement via AutoIt3, je n'obtiens plus l'erreur, mais... le tableau est vide !
Je précise :
- j'ai installé SQLite.dll.au3 et SQLite.au3 dans le dossier Include.
- J'ai installé genea.au3 et genea.sqlite dans le dossier de mes programmes, différent du précédent.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Conseils pour accélérer affichage ListView
C'est le pire des cas, quand ça marche chez moi mais pas chez toi
Essaie ce scripten mettant bien à côté le dernier fichier texte que tu m'as envoyé que tu renommes en "genea.txt"
Essaie ce script
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [R] Conseils pour accélérer affichage ListView
Voici le compte-rendu d'expérience :
- j'ai placé mon fichier texte dans le même dossier que le nouveau genea.au3 que vous me proposez
- je l'ai renommé "genea.txt"
- le programme genea.au3 fonctionne sans erreur aussi bien dans SCITe que directement avec AutoIt.exe.
Mais...
- le SplashText "Création de la base" s'affiche
- le SplashText "Chargement" ne s'affiche pas
- le tableau s'affiche vide
- le fichier "genea1.sqlite" sensé être créé par le programme n'apparaît pas dans le dossier.
- j'ai placé mon fichier texte dans le même dossier que le nouveau genea.au3 que vous me proposez
- je l'ai renommé "genea.txt"
- le programme genea.au3 fonctionne sans erreur aussi bien dans SCITe que directement avec AutoIt.exe.
Mais...
- le SplashText "Création de la base" s'affiche
- le SplashText "Chargement" ne s'affiche pas
- le tableau s'affiche vide
- le fichier "genea1.sqlite" sensé être créé par le programme n'apparaît pas dans le dossier.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Conseils pour accélérer affichage ListView
J'ai un doute, tu peux tester ce script ?
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [R] Conseils pour accélérer affichage ListView
J'obtiens l'erreur :
SQLite3.dll can't be Loaded
SQLite3.dll can't be Loaded
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Conseils pour accélérer affichage ListView
OK, vérifie que tu as bien sqlite3.dll dans le systemdir
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [R] Conseils pour accélérer affichage ListView
Qu'appelez-vous le systemdir ?
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Conseils pour accélérer affichage ListView
Le @systemdir d'autoit, sur mon XP c'est C:\windows\system32 , là où kya toutes les dll "sensibles" 
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [R] Conseils pour accélérer affichage ListView
Non, pas de sqlite3.dll dans le system32
Re: [R] Conseils pour accélérer affichage ListView
Voilà, tout est en ordre... ça marche !
Alors, la construction de la table est très longue.
L'affichage de la table une fois celle-ci créée prend 3 à 4 secondes.
Le tri sur une colonne prend 10 secondes.
C'est sûr que ça va plus vite que la lecture et le tri d'un fichier texte. Il me faudra plancher là-dessus. Je vais étudier avec soin votre code pour bien le comprendre.
Grand grand grand merci !
Alors, la construction de la table est très longue.
L'affichage de la table une fois celle-ci créée prend 3 à 4 secondes.
Le tri sur une colonne prend 10 secondes.
C'est sûr que ça va plus vite que la lecture et le tri d'un fichier texte. Il me faudra plancher là-dessus. Je vais étudier avec soin votre code pour bien le comprendre.
Grand grand grand merci !
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Conseils pour accélérer affichage ListView
Dernière version (plus complète)
ça aura fait un bon exercice
ça aura fait un bon exercice
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [R] Conseils pour accélérer affichage ListView
Pas de changements dans les temps de chargement et d'affichage.
J'ai découvert et bien apprécié la possibilité d'ouvrir une fiche en double-cliquant sur une ligne de la liste.
Tout ça me plaît bien.
Vous avez mérité un bon week-end reposant !
J'ai découvert et bien apprécié la possibilité d'ouvrir une fiche en double-cliquant sur une ligne de la liste.
Tout ça me plaît bien.
Vous avez mérité un bon week-end reposant !
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Conseils pour accélérer affichage ListView
Et dis-toi qu'on n'a fait que survoler les possibilités...
Le temps d'affichage c'est à cause de la listview, on peut pas le faire plus vite
Si tu mets un timer sur juste le tri de la bdd tu verras que le temps de traitement est < 1 sec
Pas génial ce w-e, là il pleut bien c'est en partie pour ça que tu as eu le script si vite
Bon WE quand même !
Le temps d'affichage c'est à cause de la listview, on peut pas le faire plus vite
Si tu mets un timer sur juste le tri de la bdd tu verras que le temps de traitement est < 1 sec
Pas génial ce w-e, là il pleut bien c'est en partie pour ça que tu as eu le script si vite
Bon WE quand même !
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [R] Conseils pour accélérer affichage ListView
Loin de moi l'idée de critiquer le boulot qu'a promptement réalisé Mikell. Que ça soit clair, il mérite un coup de chapeau.
Ceci dit je n'ai pas pu m'empêcher de laisser traîner un oeil et il m'est venu quelques remarques que je crois importantes sur la partie bdd.
Je ne me lance pas dans un trop long discours, j'ai mis mes conseils en commentaires dans le script, où je n'ai rien changé.
Ah oui, il est bon de travailler avec le handle de la connexion à la bdd, plutôt qu'avec -1. Pourquoi ? Parce que si un jour on a besoin de travailler en parallèle avec une autre base (ou plusieurs), par exemple faire des bidouilles super rapides avec une bdd en mémoire (ou plusieurs), on risquera de se mélanger les crayons avec les handles et les -1. Ce moment peut arriver plus vite qu'on ne croit !
Morale : récupérer les handles à chaque _SQLite_Open et les utiliser explicitement.
Il faudrait certainement créer à terme un ou plusieurs index sur les colonnes les plus courament utilisées pour les tris. par contre, ce ne sera à faire que lorsque le schéma sera apuré et stabilisé et seulement si l'expérience en démontre l'utilité. Sinon on obtiendra l'inverse de l'effet escompté : un ralentissement global (ou "comment se tirer dans le pied").
Je ne suis pas généalogiste, mais je me demande comment on peut éviter de grossières erreurs sans mettre en place un moyen fiable de gérer les contemporains homonymes. Ce schéma demande réflexion.
Ceci dit je n'ai pas pu m'empêcher de laisser traîner un oeil et il m'est venu quelques remarques que je crois importantes sur la partie bdd.
Je ne me lance pas dans un trop long discours, j'ai mis mes conseils en commentaires dans le script, où je n'ai rien changé.
► Afficher le texte
Morale : récupérer les handles à chaque _SQLite_Open et les utiliser explicitement.
Il faudrait certainement créer à terme un ou plusieurs index sur les colonnes les plus courament utilisées pour les tris. par contre, ce ne sera à faire que lorsque le schéma sera apuré et stabilisé et seulement si l'expérience en démontre l'utilité. Sinon on obtiendra l'inverse de l'effet escompté : un ralentissement global (ou "comment se tirer dans le pied").
Je ne suis pas généalogiste, mais je me demande comment on peut éviter de grossières erreurs sans mettre en place un moyen fiable de gérer les contemporains homonymes. Ce schéma demande réflexion.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Re: [R] Conseils pour accélérer affichage ListView
Oui,j'admire le travail de Mikell et la rapidité avec laquelle il code. Et je lui suis très reconnaissant de sa disponibilité.
Jchd, je vous remercie de l'attention que vous portez à la question posée. Vos conseils, que je ne comprends pas encore, me seront d'une grande utilité quand je maîtriserai un peu SQLite, si jamais je le maîtrise un jour !
Jchd, je vous remercie de l'attention que vous portez à la question posée. Vos conseils, que je ne comprends pas encore, me seront d'une grande utilité quand je maîtriserai un peu SQLite, si jamais je le maîtrise un jour !
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Conseils pour accélérer affichage ListView
Bon voilà le même avec quelques modifications selon les instructions de jchd
Au niveau de la vitesse d'affichage l'amélioration est plus que sensible, ya pas photo
En plus la nouvelle bdd fait 40 Ko de moins ^^Ce qui m'agace un peu c'est que "SELECT id || '|' || date ... " est très efficace mais pas moyen de trouver une explication de cette syntaxe dans la doc habituelle trouvé. "||" = "concatenate"
Sinon pour définir les types de données je sais pas ce qui doit figurer dans la plupart des colonnes
Et mettre des ids aux parents dépend des fonctionnalités souhaitées du script, sans compter qu'il faut apprendre d'abord à utiliser des FK
NB : il pleut de plus en plus ^^
Au niveau de la vitesse d'affichage l'amélioration est plus que sensible, ya pas photo
En plus la nouvelle bdd fait 40 Ko de moins ^^
► Afficher le texte
Sinon pour définir les types de données je sais pas ce qui doit figurer dans la plupart des colonnes
Et mettre des ids aux parents dépend des fonctionnalités souhaitées du script, sans compter qu'il faut apprendre d'abord à utiliser des FK
NB : il pleut de plus en plus ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [R] Conseils pour accélérer affichage ListView
Oui, l'affichage est plus rapide... jusqu'où ira le progrès ?
Me mettre à SQLite me semble inévitable... Et tout récrire mon programme aussi... Moi qui croyais toucher au but tout prochainement...
Merci Mikell pour le travail et jchd pour les bonnes infos... et vive le mauvais temps !
Me mettre à SQLite me semble inévitable... Et tout récrire mon programme aussi... Moi qui croyais toucher au but tout prochainement...
Merci Mikell pour le travail et jchd pour les bonnes infos... et vive le mauvais temps !
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Conseils pour accélérer affichage ListView
... comme dirait Brassens 
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

