TMemo & tRichedit de m... (pardon)

Résolu/Fermé
solilog Messages postés 273 Date d'inscription samedi 13 juin 2009 Statut Membre Dernière intervention 18 avril 2015 - 28 oct. 2009 à 22:10
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 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

8 réponses

solilog Messages postés 273 Date d'inscription samedi 13 juin 2009 Statut Membre Dernière intervention 18 avril 2015 10
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
3
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
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).
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
28 oct. 2009 à 23:23
...
Essaie et étudie la propriété LoadFromStream de ton Memo ou de ton RichEdit !
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
28 oct. 2009 à 23:47
as tu essayé de mettre un MonMemo.BeginUpdate avant ton ajout et un EndUpdate apres ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
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
0
Utilisateur anonyme
29 oct. 2009 à 16:28
Salut

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
0
solilog Messages postés 273 Date d'inscription samedi 13 juin 2009 Statut Membre Dernière intervention 18 avril 2015 10
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
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
29 oct. 2009 à 21:21
OK sujet clos à la demande de solilog
0
Rejoignez-nous