Oui, mais la vitesse n'est pas critique dans ce programme.
Dans un parseur, s'il réalloue à la volée son buffer, ça risque d'être plus lent que si il ne le fait pas...
Bon alors ajouté à cela j'ai encore un autre problème. Chaque ligne que l'on voit à l'écran représente également une ligne dans le tableau. Donc suivant la taille de la font c'est très variable. Alors chaque ligne fait 65 octets mais c'est de la place gaspillé lorsque la ligne n'est pas pleine ou que l'on utilise la grosse font.
Là aussi il faudrait que j'alloue en fonction de sa mais je ne sais pas comment faire. Voila la structure :
typedef struct
{
unsigned char stick_char:2;
unsigned char color:2;
unsigned char center:1;
unsigned char under_line:1;
unsigned char on_line:3;
unsigned char font:2;
unsigned char animate:2;
unsigned char left:2;
unsigned char right:2;
int x:9;
unsigned char lines:1;
}Str_Mode;
typedef struct
{
char chaine[65];
Str_Mode param;
}Text;
...
TEXT=malloc(sizeof(Text)*100);
Il faudrait peut-être j'utilise un pointeur dans la structure comme ça :
typedef struct
{
char *chaine;
Str_Mode param;
}Text;
Et puis que j'alloue pour chaque ligne la place nécessaire. J'ai déjà essayé mais ça a toujours planté !
Et par contre je ne sais pas comment libérer cette mémoire à la fin : il faut le faire de la même manière que je l'ai alloué c'est à dire ligne par ligne ?
Moi aussi pour mon hibview j'ai ce pb de taille indéfinie. Alors j'ai coupé la poire en deux : j'alloue de le mem en fonction de la taille du fichier : ((taille_fichier)/16) (c'est une estimation que j'ai faite sur tout les fichiers texte de seche que j'ai vu). Et apres, appel a heaprealloc si y'en a pas assez, et si y'en a trop, un heaprealloc pour libérer ce qu'il y a en trop.
Pour mon Parser ça ne marche pas ça !

La taille du fichier ne représente absolument pas la taille du texte final parce-qu'il y a des lignes de codes qui permettent de définir ses "balises" (c'est pas vraiment des balises en fait), de copier du texte à partir d'un autre fichier, de duppliquer un même caractère... et tout ça fait que ça n'est pas proportionnel.
Je vais essayer d'utiliser heaprealloc alors.
Et puis comme je l'avais déjà fait remarquer, la vitesse du programme qui utilise beaucoup malloc dépend pas mal des éléments enregistrer dans le menu home de la calculatrice.
Maintenant, plus rien ne m'arrete, je pense meme que je programme trop et teste de moins en moins....
Moi au début j'avais pleins de plantages et je n'arrivais rien à faire et puis après j'ai programmé assez vite. Par contre pour arriver où j'en suis j'ai dû recommencer plusieurs fois certaines parties. Depuis le début tout à été refait ou presque : je ne programme jamais en une seule fois. Ca me prend bcp de temps mais ça m'évite de faire sortir 50 beta foireuses

.
D'ailleurs, ca fait encore un nv concurrent a hibview... ca me motive pour continuer !
Tu trouve ? En tout cas je n'étais pas du tout partit pour concurrencer hibview, textrider ou encore Text Walker. Au début je voulais faire un programme qui interprète du code et puis je me suis vite orienté vers un viewer de texte. Mais dès le départ je voulais faire du texte animé et en niveaux de gris. Je n'ai pas voulu reeprendre le système avec les balises dans mon programmes car je veux que l'utilisateur puisse manipuler facilement de nombreux paramètres à la fois pour chaque ligne de texte. D'ailleurs la syntaxe (qui ressemble plus à un langage) est très différente des autres programmes.
Mais je ne sais pas jusqu'où je vais aller car qd je vois les dernier truc que j'ai programmé ça me faire peur : c'est plus tout carré comme au début. Pour que certains trucs marche comme les alignements par exemple, j'ai du utiliser des ruses qui rendent le codes sources assez incompréhensibles et puis il y a pas mal de modes pour surlignés et certaines couleurs ne ressorte pas. Bref il y a encore du boulot !

Mais c'est très motivant comme projet et c'est pour ça que je l'ai choisi.
Et toi tu es entrain de programmer quoi ? Une autre version de Hibview ou c'est la même que tu améliores ? Et en gros c'est quoi ces caractéristiques par rapport à la version actuelle ? Tu vas utiliser les niveaux de gris ?
Là j'ai pas mal avancé depuis la dernière fois. Les alignements marchent enfin correctement : on peut aligner à la fois à droite et à gauche en même temps. J'ai fait pas mal de raffistolage dans le code

, mais l'essentiel est que ça marche.
Et puis en attendant la dernière version de TinyX j'utilise GX_DrawChar de GraphX pour la petite font. D'ailleurs si je ne peux toujours pas avoir la derrnière version de TinyX je vais peut-être gardé celle-là mais ça fait que je charge inutilement la petite font de TinyX.
[img]
http://perso.wanadoo.fr/raphael.domenge/Espace%20FTP/FTL Parser.gif[/img]