Pep Le 16/10/2004 à 13:06 Bonjour.
J' aimerai creer un editeur et un viewer de texte mais je ne sais pas du tout comment m'y prendre pour y arriver.J'ai regarder la doc mais je ne trouve pas grand chose.Pourriez vous me donner une demarche à suivre s'il vous plait.
Merci d'avance
et ben c simple, tu dois lire octet par octet ton fichier et afficher ce qu'il en est, dans un fichier texte le 13 corespond a un saut de ligne et le 12 a un page break je crois ...
dans tous les cas le fichier se termine par un 0 et il y'a un offset de 5 octet par rapport au debut du fichier avant les données
mais pour l'affichage je te conseille soi de creer tes propres routine d'affichage de caractere et tu dois pour cela trouvez les sprites dans la rom (ou les avoir en ram)
soit faire appel a une librairie graphique car printf, putchar sont des fnc vraiment tres tres lentes
le plus chiant a gere dans un wiewer ( enfin pour moi sur ti) c'est le fait qu'il y ait plusieurs ligne a afficher dans une meme ligne , donc tu dois compter le nombre de ligne que tu va afficher et leur offset par rapport au debut de la ligne
pour l'editeur c'est un autre probleme, perso je vois ca comme des mega liste chainées imbriqués les une dans les autre : une liste chainé pour les lignes et une liste chainé pour les caracteres de chaque ligne , le plus dur c'est d'optimiser ca pour eviter les compression du heap
oui mais dans un mega buffer si tu ve rajouter un caractere au mileu dune ligne ou une ligne au mileu du texte tu perd du temps en memcpy
Vark Le 16/10/2004 à 14:41 avec les listes chainees tu fragmentes la mem et tu perd du tps a reallouer toutes les 2s
*** Ne sous-estimez pas la puissance de la Marmotte ***
©
Marmotte Team : LaMarmotte, sBibi, Vark & sabrina
ui mais avec un buffer tu va heapreallocer toutes les 2s aussi non ?
quand meme, si t'as un texte de 200 lignes, tu dois rajouter une ligne a la 100 ligne tu vas ramer avec un buffer
enfin je sais pas trop ce que ca donne sur la calc ,je nl'ai fait que sur le pc
Dans les premières versions de AutoClBr, j'ai fait un HeapRealloc pour chaque octet que j'ai rajouté et ça n'a pas posé de problèmes de vitesse. Si on vient de réallouer juste avant, la plupart du temps, il n'y a pas besoin de redéplacer les blocs quand on réalloue encore une fois, donc la plupart des appels à HeapRealloc s'exécutent en O(1), les appels en O(n) sont l'exception plus que la règle.
Vark Le 16/10/2004 à 15:18 n'empeche que c'est tres sale comme methode
*** Ne sous-estimez pas la puissance de la Marmotte ***
©
Marmotte Team : LaMarmotte, sBibi, Vark & sabrina