jjmiller
Messages postés3Date d'inscriptiondimanche 30 janvier 2005StatutMembreDernière intervention 5 février 2006
-
5 févr. 2006 à 14:37
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 2012
-
6 févr. 2006 à 10:13
J'utilise un RichTextBox pour afficher le flot de données dans une appli Tcp Client. La propiété MacLenght est à 0 pour ne pas limiter la taille du buffer. Par contre je voudrais le limiter à n KOctects et lorsque que cette limite serait atteinte d'effacer les 1ere lignes du flot afin de conserver les n KOctets allant de la derniere ligne affichée à la n KOctets précédent. Y aurait il un moyen de réaliser cela sans nuire à la vitesse d'affichage sachant que le flot de données est important(serveur Tcp sur une carte à base de PPC750).
Merçi d'avance
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 5 févr. 2006 à 15:36
Salut
Beau problème bien expliqué (ça change)
Il y a une solution simple :
A chaque fois que tu insères du texte, tu testes la nouvelle longueur :
Sachant que chaque caractère est un octet, il suffit de compter le nombre de caractères avec
Len(maRichTextBox.Text) ' ou .TextRTF si tu sauvegardes aussi le format.
et de faire la sauvegarde avec
SaveFile "c:\mon fichier.txt", RichTextLib.LoadSaveConstants.rtfText ' ou rtfRTF si tu veux garder les couleurs et autres caractéristiques
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 5 févr. 2006 à 15:42
lol, hors sujet ! que je suis con.
je ne me rappelais plus que tu voulais supprimer les premières lignes :
Quand tu fais ton test avec Len(...), il te suffit te compter les caractères et de faire des opérations :
LongMax = 20000 ' taille en octets
If Len(RTB1.Text) > LongMax Then
RTB1.SelStart = 0 ' début
RTB1.SelLength = Len(RTB1.Text) - LongMax
RTB1.SelText = vbNullString
End If
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 20123 6 févr. 2006 à 10:13
Jack tu fais 2 len(RTF): Stocker la quantité reçue dans une variable
pour savaoir à l' avance combien il fait, et effacer les n premiers
quand il faut.