solilog
Messages postés273Date d'inscriptionsamedi 13 juin 2009StatutMembreDernière intervention18 avril 2015
-
28 oct. 2009 à 22:10
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 2010
-
29 oct. 2009 à 21:21
Bonsoir,
je sors du post anglais. Je tente de bosser avec des tMemo / tRichEdit, et c'est d'une lenteur ... au secours. Je dois me planter, c'est pas poss. Je rentre 30000 chaines (total 4,5 Mo) dans un tMemo, via soit:
- 30000 boucles sur memo.lines.add(chaine de 10 à 500 car). durée 10 minutes !!! too much.
- je boucle 30000 x en remplissant un string et je fais à la fin memo.lines.text := LaString. durée 10 minutes help, help ...
PC ancien 2GHz mais quand même!
Autre chose du même topo:
Je récupère l'évent OnSelectionChange du tMemo pour récupérer la pos du curseur et l'afficher dans un label. Il met 5 seconde pour posit le curseur, afficher le label et rendre la main !!! Y a quoi qui déconne ?
Bactérius m'a bien conseillé de mettre BeginUpdate / EndUpdate dans un try mais ça ne speed pas plus.
Merci à vous tous, aux stars et aux autres.
solilog
solilog
Messages postés273Date d'inscriptionsamedi 13 juin 2009StatutMembreDernière intervention18 avril 201510 29 oct. 2009 à 13:44
Merci à tous mais,
- plaintext EST déjà false
- j'utilise déjà beginupdate & endupdate
EUREKA, c'est tout simple.
32000 rEdit.lines.add = 10 minutes !! non
mais
- lire le fichier text 1/10 sec
- réécrire un fichier text +ou- 5 sec
- rEdit.lines.loadfromfile = 5 secondes
Donc, je vais
- lire le fichier,
- réécrire un autre fichier avec les bonnes lignes
- puis loadfromfile du fichier 2
- supprimer fichier 2
Ca devrait faire 10-12 sec maxi.
je ferme le post
Salut tous.
solilog
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 28 oct. 2009 à 23:15
Salut,
C'est plus un problème de RAM que les 2GHz du Proc.
De plus, coller 4.5 Mo dans un Memo n'est pas très raisonnable, comme tu peux le constater.
Je te reconseille donc de mieux gérer ton loading avec TStream par exemple (si tu n'y es pas allergique).
Guillemouze
Messages postés991Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention29 août 20136 29 oct. 2009 à 14:03
dans ce cas la, utilise la methode de Cari, qui sera plus simple et efficace :
- lire le fichier,
- écrire un stream fichier avec les bonnes lignes
- puis loadfromfileStream
- supprimer le fichie 2 detruire le stream
Si ton but est de modifier un fichier texte avant de le lire dans un RichEdit, autant ouvrir initialement ton fichier dans un TStringList car le problème dans ton cas de figure c'est qu'a chaque ligne qui est lûe il y a un refresh qui se fait : D'ou le temps que ca prend
solilog
Messages postés273Date d'inscriptionsamedi 13 juin 2009StatutMembreDernière intervention18 avril 201510 29 oct. 2009 à 18:41
Merci, mais c 'est bon là, passez à autre chose.
Guillemouze: je sais mais j'utilsais file et non stream car ça devait être recompilé avec un Delphi3, et suis pas sûr tStream existe en D3.
Francky23012301: même en remplissant une seule big string (4.3 Mo) et affectant en une fois (line.text := MaString) c'est toujours 10 mn.
C'est bon, je vais utiliser loadfromstream.
Au fait, il est fermé ce post!
Bonsoir tous.
solilog