Vous comptez compresser quoi avec cette "version" de RLE ??
Pasque tu risque d'obtenir des taux de compression nuls, voir négatifs...

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
petite suggestion pour la fonction text Vertyos:
pourquoi ne pas intégrer le clipping automatique pour cette fonction ?
-le problème se pause lorsqu'on affiche des chaines trop longues sur plusieurs colonnes à l'écran en utilisant les listes séquentielles.
-je sais pas si je me trompe mais en liste sequentielle on ne peut utiliser qu'une fonction de vertel à foison ne peut pas ecrire : vertel({"clip","text"}, {"#a","#b"},{"#c","#d"},"->",{"#e","#f"},{font,"#b"}) en espérant que le texte qui s'affiche soit clippé
; donc les chaines débordent des colonnes si elle sont plus longue!
-La solution TI consiste à les prétraiter avant l'affichage en utilisant seq(left(...)...); ce qui prend du temps si la liste est importante.
-mais si la fonction text de vertel avait un argument MaxLen (indiquant la longueur maxi du text en pixel) tu pourrais appliquer un clip automatique à chaque texte affiché, de sorte qu'il ne dépasse pas le rectangle de longueur maxlen et de largeur FontHeight
M'enfin je pense que ça correspond bien à un cas de figure générale du moment qu'on veut utiliser les listes sequentielles et afficher soit des images ou des chaines sur plusieurs colonnes sans rogner sur les autres colonnes quand les images ou les chaines ne sont pas au même format. Mais c'est surtout vrai pour les chaines ; en générale on utilise des images au format identiques !
ben il peut etre negatif si il compresse en RLE quelque soit le nombre de repetition, sachant que sont code est :
TAG + CAR + NB -> 2 Octets
Si tu a dans le texte
00112233445566778899 -> 20 Octets
Compressé :
TAG+2+0 TAG+2+1 TAG+2+3 TAG+2+4 TAG+2+5 TAG+2+6 TAG+2+7 TAG+2+8 TAG+2+9 = 30 Octets
Donc taux de compression négatif...

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
BiHi Le 29/09/2003 à 13:14 Mais non...
Vu qu'il peut mélanger RLE et non RLE, bah ça fera 20 octets, vu que dans ce cas il n'utilisera pas RLE.
011111 ça fera 0 +TAG+1+5

;)
aze Le 29/09/2003 à 20:07 il fqut utiliser le RLE seulement quand il y a au moins une repetition de 5 chars
la on gagne (au pire rien si c un char d'echapement)
----------------liste sequentielle :
je crois que tu as dit dans un post qu'on ne peut pas utiliser les liste sequentielles et les listes simultannées !
Alors comment fait-on pour afficher des chaines sur plusieurs colonnes, en utilisant les listes sequentielles si on ne pas en même temps utiliser la fonction clip pour empêcher le texte de déborder sans utiliser left() car ça ralenti le prog énormément ?
peut-être devrais-tu prévoir un clipping auto du text à partir d'un arg supplémentaire du genre longueurMaxi_de_chaine_en_pixel !
Sinon une autre proposition plus générale ; tu rajoute une fonction set (len$) qui défini la longueurMaxi_de_chaine_en_pixel ; ensuite tu l'utilises pour tronquer tous les appels e la fonction "text"
----------------- "retr"
exemple: vertel("list","","retr","fold",mode)
permet de retourner une liste, un nombre ou une chaine;
peut-être pourrais-tu nous laisser récupérer un élément quelconque de la liste et pas uniquement le 1er ou toute la liste (mode={0,1,2,3.....}
ça pourrait être très utile remplacer les fonctions left,right,mid du TIOS pour traiter les listes surtout lorsqu'elles sont longues ! En plus on aurait l'avantage de ne pas sortir de vertel !
ça donnerait un truc du genre
{"a","b","c","d","e","f","g","h","i","j"}->a
vertel("load","#a","","retr","#b",{5,6,7}) => donc b={"e","f","g"}
j'espère avoir été bref et clair !
C'est même beaucoup plus pratique que je l'espérait !
alors je peut donc à partir de ton exemple pour récupérer
mid(liste_interne_vertel,3,3) ={"str3","str4","str5"}
écrire ceci :
vertel("load",{"str1","str2","str3","str4","str5","str6"},"","retr","mystr",3+newlist(3))
C'est vraiment top ! Merci ; enfin adieu aux fonctions basic left() ; right() ; mid()
j'ai essayer de faire un explorateur basic mais ça ramait un peu lorsque je devait tronquer la liste des fichiers à afficher ! ça devrait s'améliorer avec cette nouvelle méthode.
Si j'ai une petite idée de ce genre ; je ne manquerai pas de te faire signe!
Zeph Le 01/10/2003 à 19:10 Bon je t'envoie ça par mini message, j'ai testé rapidement, mais il est possible qu'il y ait des bugs, tu verras. Garde l'ancienne version de coté à tout hazard.
(la notice ne mensionne pas encore ce fonctionnement de "retr" au fait).

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Vertyos
marche pas ton lien pour la v3
Peut-être que je m'y prend mal pour utiliser les liste sequencielles et simultanée dans un même appel; je voudrait que tu m'explique comment faire :
J'ai fait un petit Editeur de matrice que je vais peut-être transformer pour modifier les liste et les data.
le problème c'est que je je veux utiliser les fonctions comme ceci:
vertel({ "clip" , "text" };{"#liste_limite_écran_inf_x" , "#matrice_de_chaine" }, { "#liste_limite_écran_inf_y" , "#liste_x" },"->",{ "#liste_limite_écran_sup_x" , "#liste_y" } , { "#liste_limite_écran_sup_y", font }, mode)
En fait je veux que le text à afficher ne dépasse pas limite_écran_sup_x[index] chaque fois que que le tag sequenciel fait varier cette liste.
Donc le tag sequenciel "->" devrait s'appliquer à chacune des 2 listes { "#liste_limite_écran_sup_x" , "#liste_y" }.
normalement en mode simultané les premiers arguments de chaque liste sont pour la fonction clip, et les 2nd pour text !
je pense que je me trompe surement dans la syntaxe ;
OK je l'ai ! C'est dommage que je puisse pas faire 'grande série de clip / text répetée X fois' !
tu peux me rappeller pourquoi la fonction text ne peut pas être automatiquement clippée !
Zeph Le 03/10/2003 à 14:15 Théoriquement elle devrait être affectée par "clip" comme toutes les fonctions graphiques à l'exeption de recp. Je vérifierais.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
M'enfin vertyos je t'avait une fois demandé si tu pouvais pas ajouter un param à la fonction text pour tronquer le nombre de caractères à afficher de sorte à ne pas depasser une une limite de n caractères. Alors pourquoi c'est pas réalisable ?
Zeph Le 03/10/2003 à 15:44 J'ai pas dit que c'était pas réalisable, j'ai dit que je n'implémenterais pas ça. C'est trop spécifique à TON problème, donc ça va augmenter la taille de la lib pour rien.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Ah j'oubliais; j'avait une autre question à propos de la fonction 'stat' ; elle ramène un entier dont il faut tester les bits ;
mais pour nous ce qui serait interessant c'est que tu ramène directement la chaine correspondante aux status de la variable:
en gros pour chacun des cas de figures :
Archive => Tag archive
Locked => Tag Lock
Hide => Tag Hide
Hide+Archive => Tag archive & Tag Hide
Hide+Locked => Tag Lock & Tag Hide
variable visible de la ram => chaine vide
je sais pas si ça suffira pour rendre plus rapide un explorateur fait avec vertel; mais c'est vrai que si vertel à toutes les fonctions pour faire cela; avoir un shell de + de 20 Ko sur la calc; ça prend de la place en mémoire .
A propos dans ton exemple de shell avec la V3 commment tu fais pour afficher toutes les caractéristiques des variable d'un répertoire(Nom,Taille,Type,Status) sans sauver 2 fois la liste des fichiers du répertoire en cours :
-Une liste avec le nom du repertoire pour recuperer Taille,Type,Status
Une liste sans le nom du repertoire pour l'affichage du nom de la variable
BiHi Le 03/10/2003 à 16:20 Non, utiliser un entier dont il faut tester les bits est plus facile et adaptable qu'utiliser des chaînes de caractères.

;)
Zeph Le 03/10/2003 à 17:56 Voilà, comme a dit BiHi. Sinon pour le "comment j'ai fait", les exemples sont dans le zip, non ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
andoh>lis la doc de FLib, FL explique comment récupérer ça trés facilement et trés rapidement.

Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.
Zeph Le 03/10/2003 à 19:57 Ah heu oui c'est pas bête ça comme remarque. Ça servira surement à certains d'expliquer comment tester un bit sur une valeur.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
le problème c'est pas que ça gène de tester des byte ; c'est expliqué dans la notice de vertel ; ça rend le programme lent si on veut faire un explorateur ; je m'excuse vertel mais je ne vois pas beaucoup l'usage qu'on fait de ces flag à part tester leur état (ce qu'on peut tout aussi bienfaire avec une chaine) et les afficher dans un explorateur (pratique les chaines).
D'ailleur je trouve aussi que c'est le cas de la taille des fichiers; ça devrait être une chaine plutôt qu'un entier!
M'enfin à toi de voir lequel serait plus utile aux utilisateurs.