Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 12 Apr 2006 17:29:19

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

[Projet] traitement de texte G100

HEIL !

Je voudrais développer mon premier programme sur G100+.
Il s’agit d’un traitement de texte avec les caractéristiques suivantes :
-    mode 5 couleurs (avec gxLib et Sprite Maker de Julien)
-    2 taille de police (7 et 5 pixels de haut) codé sur 8 bites mais pas au standard ASCII.
-    alphabet grec majuscule  minuscule et beaucoup de symboles scientifique
-    symbole sur plusieurs niveau (ex : crocher des matrices, intégrales…)
-    possibilité d’insérer des dessins
-    gestion des charters par chaînage pour permettre des corrections et des inserts rapides
-    compression des données (type Huffman) lors de l’enregistrement vers une mem zone (avec mem zone de John W.)

Pour le moment j’ai créé mes polices et je mets au point les fonctions d’entrée et d’affichage.
Je suis loin d’avoir finit…si j’y arrive……
Mais par la suite je voudrait générer une liste des fichiers basic présent dans la mémoire principale afin d’ouvrir un texte un peut comme pour lancer un fichier basic.

Ma question est la suivante, est il possible de créer cette liste comme ça (avec CasFille toujours de Julien) :

FILEDATA data;
   allowEmptyDrives ();
   if( cfindfirst("A:\*.FIX", FA_NORMAL, &data) == DONE )
   {do
     {printf("trouvé: %s, taille %dn", data.name, data.size);
     }
      while( cfindnext(&data) == DONE );
        }

Sinon que me conseillerez-vous ? (Un truck simple, je suis un débutant :? )

Je vous demande ça car il me manque des composants (connecteur RS232 et jack stéréo) pour mon interface calto-ordi a cause de ma fléme, donc pas moyen de tester ça sur ma fidèle G100 (et oui, 5 ans déjà...)

Merci de m’aider.

Hors ligne

 

#2 12 Apr 2006 21:51:08

mastermage
Magicien G100
Lieu: Charleville-Mézières,Compiègne
Date d'inscription: 31 Jan 2002
Messages: 1008

Re: [Projet] traitement de texte G100

HEIL !

Je voudrais développer mon premier programme sur G100+.
Il s’agit d’un traitement de texte avec les caractéristiques suivantes :
-    mode 5 couleurs (avec gxLib et Sprite Maker de Julien)
-    2 taille de police (7 et 5 pixels de haut) codé sur 8 bites mais pas au standard ASCII.
-    alphabet grec majuscule  minuscule et beaucoup de symboles scientifique
-    symbole sur plusieurs niveau (ex : crocher des matrices, intégrales…)
-    possibilité d’insérer des dessins
-    gestion des charters par chaînage pour permettre des corrections et des inserts rapides
-    compression des données (type Huffman) lors de l’enregistrement vers une mem zone (avec mem zone de John W.)

Ouch c'est pas mal ambitieux, comme premier programme.

Premier conseil, commence par tester toutes les fonctionnalités que tu veux utiliser pour être à l'aise avec elles.

Les 5 couleurs pour un traitement de texte, pourquoi pas, mais a mon avis le mode monochrome ou 3 couleurs suffiront amplement au départ.

La compression de données huffman c'est un algorithme simple et éprouvé, si ça fonctionnait sur un 286 ça tournera sur g100, pas de réel problème de ce coté-là.

Le choix des polices pas au standard ASCII me semble a priori mauvais : impossibilité de relire les fichiers avec autre chose que ton prog.
Essaies plutot de te conformer a des sous-parties d'encodage standard : ISO-8859-1 ou UTF-8, qui incluent tous deux l'ASCII.

Pour le format d'enregistrement (même si tu n'en es pas encore là), un truc a balise dans le genre du Rich Text Format ?

Bon courage avec les algos de rendu pour afficher les images et les grands symboles.



Je suis loin d’avoir finit…si j’y arrive……

Bon courage, en effet.


Mais par la suite je voudrait générer une liste des fichiers basic présent dans la mémoire principale afin d’ouvrir un texte un peut comme pour lancer un fichier basic.

Ma question est la suivante, est il possible de créer cette liste comme ça (avec CasFille toujours de Julien) :

Code:

FILEDATA data;
allowEmptyDrives ();
if( cfindfirst("A:\*.FIX", FA_NORMAL, &data) == DONE )
{
    do 
    {
        printf("trouvé: %s, taille %dn", data.name, data.size); 
    }
    while( cfindnext(&data) == DONE );
}

Sinon que me conseillerez-vous ? (Un truck simple, je suis un débutant :? )

Sur le principe de l'algo, ça me semble bon, maintenant dans les details je ne sais pas trop il faudrait que je refouille dans tout ça.


Je vous demande ça car il me manque des composants (connecteur RS232 et jack stéréo) pour mon interface calto-ordi a cause de ma fléme, donc pas moyen de tester ça sur ma fidèle G100 (et oui, 5 ans déjà...)

Merci de m’aider.

Un cable de connexion peut se commander chez casio. Ou peut-être d'occase, maintenant.
Mais il est dur de developper serieusement pour graph100 avec juste l'emulateur. Celui-ci convient pour la plupart des cas, mais tu rencontreras peut-être certaines erreurs bizarres et tu n'auras pas accès à un système exactement semblable.

Quel langage de programmation comptes-tu utiliser ? C ou C++ ?

Et puis bon si tu as d'autres questions, on est là  smile

Hors ligne

 

#3 13 Apr 2006 05:46:23

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

Re: [Projet] traitement de texte G100

J’utilise le C pour le développement de ce projet, je ne connais pas la POO.

Le faite que mon codage n’est pas a la norme ASCII me pause effectivement problème car impossible d’utilises les fonctions ou déclaration avec des string.
Je prévois donc de faire correspondre tous les caractères définis par l’ASCII  à ma police.
Ca me fait un peu chi… parce que tout est déjà créé avec Sprit Maker en utilisant des tableau de pointeurs, alors pour réarranger tout ça ……….

Merci pour ton aide.

Hors ligne

 

#4 13 Apr 2006 07:10:49

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: [Projet] traitement de texte G100

Content de savoir que y'a toujours des personnes sur des projets, ça remotiverais presque pour s'y replonger smile

Niveau UI, tu comptes te débrouiller comment?
utiliser les touches F1-F6 pour les différents menus, comme c'est le cas avec la plupart de l'interface utilisateur CASIO?

Pour l'entrée de caractere comme: "A" et "a", comment comptes tu faire?
Faire une sorte de caps lock ou bien maintenir shift avec la touche? (ce qui necessite des doigts fins et l'algo des touches multiples)

Bref tout un tas de questions à se poser...

Avant tout, faut te définir un plan de dévellopement... Quel ordre de devellopement, comment va tu structurer l'ensemble, etc

Edit: Ho, j'oubliais le truc:
Pour le listage des fichiers memzone présent, 2072 avait exposé une technique, faudrait lui demander exactement ^^


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#5 13 Apr 2006 08:40:07

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

Re: [Projet] traitement de texte G100

Au final mon programme pourra ouvrir un fichier spécifique selon 2 modes :
-    Lecture (navigation rapide, défilement d’écran sans le curseur, marque page, sommaire…)
-    Ecriture (possibilité d’enregistrement, de modification…)   
Le basculement entre ces 2 modes pourra se faire à n’importe quel moment.
Lorsque un new fichier est créé il sera ouvert en écriture par défaut, lors de l’ouverture d’un fichier existant il sera en mode Lecture par défaut.

Pour les différents modes d’écritures je compte utiliser un c-lock à la manière de l’écriture CASIO.
Je ne pense pas que l’utilisation des touches multiple soit réellement utile pour un traitement de texte.
Pour ce qui est de l’interface entre l’utilisateur et le logiciel je prévois effectivement d’utiliser les touches les touches F1 à F6 de la façon suivante pour le mode écriture :
-     F1 Fichier :new,opern, save, save as, close
-    F2 Edition :cut, copy, past, select all
-    F3 Insertion de dessin
-    F4 Police : taille (uniquement en majuscule pour la grande), française, grec, symboles scientifique…
-    F5 Recherche
-    F6 Lecture <-> écriture
Les racourcits (Shift, Ctrl, Alpha mode, Nuneric mode)  sur le clavier seront conservé

et pour le mode lecture :
-    F1 jump : bottom, top
-    F2 sommaire
-    F3 je sais pô
-    F5 Recherche
-    F6 Lecture <-> écriture

Voila comment ç’était dans mon rêve !!!
Mais je sais bien qu’avant d’en arriver là la route est très longue et semé d’embûches et puis j’ai mes études…
Je commence maintenant mais ç’est surtout cet été que j’aurai le temps.

Mais ma conduite de projet est la suivante :
-    Prise en main des différentes librairies utilisées : fait
-    Création des sprites de la police avec les 3 niveau de gris : fait mais pas organisé dans l’ordre ASCII
-    Développement des fonctions d’entrées au clavier et d’affichage en gérant des index qui s’incrémente automatiquement pour les coordonnées (x, y) : J’en suis là !
-    Gestion des caractères par   liste chaînée avec allocation dynamique
-    Insertion de dessin et compression de l’image selon une méthode approprié (peut étre LZW)
-    développement de l’algo de compression (Huffman) de l’ensemble du fichier vers une mem zone.
-    Et en fin l’Interface utilisateur

Qu’en penssez vous ?
Tous les conseils sont les bien venus et si je me trompe sur un truck dites moi le…

Hors ligne

 

#6 13 Apr 2006 10:57:38

deather
Membre Communauté Graph100
Lieu: Banlieue parisienne (Fresnes)
Date d'inscription: 05 May 2002
Messages: 909

Re: [Projet] traitement de texte G100

Hello,

Projet très intéressant !
Je suis même prêt à y contribuer si tu veux smile
Je connais plutôt bien Huffman, je peux essayer de l'implémenter en C...
Pour la gestion des images, il faudra un algo capable de resizer à la volée l'image.

Sinon, pour stocker les caractères en mémoire, une liste chainée ?
Avec des tags par exemple pour l'ouverture d'une section en italique ou en gras, et un tag pour la fermeture, à la manière du HTML ?

Bon courage en tout cas !


..:: Deather ::..
deather.dede@gmail.com.NO.SPAM

Hors ligne

 

#7 13 Apr 2006 12:30:30

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

Re: [Projet] traitement de texte G100

Ca m’intéresserai beaucoup si tu codait la partie compression, si tu en as le temps bien sure.
Je vais t’envoyer un mail, pour te donner mon adresse mail afin que tu puisses m’envoyer ta librairie lorsque tu l’auras faite (je ne veux pas diffuser mon adresse sur Internet…).

En ce qui concerne le format du fichier généré vers la mem zone (sans prendre en considération la compression) je compte faire comme ça :

Par exemple
[Couleur noire]
[Petite police]   seulement après un code de retour a la ligne ou au début du fichier
[Code de C]
[Code de a]
[Code de s]
[Code de i]
[Code de o]
[Couleur gris clair]
[Code de espace]
[Code de G]
[Code de 1]
[Code de 0]
[Code de 0]
[Code de retour a la ligne]
[Grosse police]    seulement après un code de retour a la ligne ou au début du fichier
[Code de A]
[Code de B]
[Code de C]
[EOF]

ce qui donne lors du décodage:

Casio(en noir)_ G100(en gris clair)
ABC (toujours en gris clair)

Ces codes seront envoyé compressé vers la mem zone seulement lors d’un « save » ou « save as».
Les symboles sur plusieurs niveau prendrons 2 octés et les autres 1 octé

Je ne sait pas si ç’est a ce procédé que tu fait référence lorsque  tu parles de tags, si ç’est pas ça j’aurai besoin d’explications (avec des mots pas trop compliqué sad , je ne suis pas informaticien de formation mais électronicien… lol )

Pour ce qui est du chaînage ç’est seulement lorsque le fichier est chargé dans la RAM.
Ca permettra de le modifier, d’effacer, d’insérer  ou d’ajouter très facilement des caractères.

Pour le moment la forme général de mon algorigramme est sur ce principe, si je doit le modifier ç’est maintenant ou jamais.


Merci pour ton soutien.

Hors ligne

 

#8 13 Apr 2006 14:29:09

deather
Membre Communauté Graph100
Lieu: Banlieue parisienne (Fresnes)
Date d'inscription: 05 May 2002
Messages: 909

Re: [Projet] traitement de texte G100

Ok, je vois.
Et en mémoire, avant le Save, ça sera comment ? Car c'est là dedans que je vais devoir lire pour faire la compression.
En gros, moi je fournis une bibliothèque de fonctions dont une qui prendra en argument un pointeur vers une zone mémoire ainsi que sa taille, et qui retournera un pointeur vers une zone mémoire contenant le fichier compressé à l'aide de l'algorithme d'Huffman, ainsi que la taille de cette zone (par le biais d'une petite structure, donc).

Ton avis ?


..:: Deather ::..
deather.dede@gmail.com.NO.SPAM

Hors ligne

 

#9 13 Apr 2006 17:06:43

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

Re: [Projet] traitement de texte G100

Un caractère avant le save en mémoire correspondra à une structure du type

Struct caracter
{short value ;
struct caracter *next ;
}

Les entités du type struct seront créé dynamiquement mais faisons simple.
Par exemple un fichier de n caractère :

Struct caracter c1, c2, …..cn

J’initialiserai le pointeur « next » de la structure c1 pour pointer vers la structure c2
c1.next = &c2
La valeur « value » de c2 recevra le code du symbole à afficher

J’initialiserai le pointeur « next » de la structure c2 pour pointer vers la structure c3
c2.next = &c3
La valeur « value » de c3 recevra le code du second symbole à afficher

Ansi de suite jusque à cn

En fin pou cn, comme ç’est le dernier caractère, la valeur du pointeur « next » sera mis a 0 pour indiquer que ç’est la fin
cn.next = 0
Et « value » de cn recevra le code du dernier caractère

Chématiquement pour 3 caractéres ça sera comme ça :

c1
value [code du symbole c1]      c2
next   [pointeur vers c2]  ----value [code de c2]              c3
                                                 next  [pointeur vers c3]--value [code de c3]
                                                                                             next  [ 00 ]fin

À chaque structure créé j’aurai incrémenté une variable globale TAILLE qui indiquera la taille du fichier non compressé en utilisant :

TAILLE * Seizeof (short) ;   ou TAILLE * Seizeof (struct caracter) ;

Mais je ne sait pas si tu en aura réellement besoin car quand next = 0 ç’est la fin.
Quoi qu’il en soit je le ferais pour calculer le taux de compression

En ce qui concerne la compression :

Une foie que tu aura l’adresse du premier élément de la liste chaînée (c1) par l’intermédiaire d’un pointeur sur structure du type « caracter » tu n’aura qua suivre les rails, qui ne sont autre que « next », pour compresser les symboles donné par « value »
Sans oublier d’incrémenter un compteur pour connaître la taille afin de créer la mem zone.

Une fonction du type

Struct  fill_compresed      compress_Huffman    (long*fill_pas_compresé , long TAILL)
    {...   //compression en fonction de value et en suivant next
    }

avec

struct fill_compresed
{long taille ;
long *adresse_fill_compresed;
}

me parait corecte.

En ce qui concerne la décompression :

Le paramètre d’entrée serait une table de char qui est le nom du fichier basic que l’utilisateur veut décoder.
Tu n’auras qu’à décompresser selon le mode de la liste chaînée vue plus haut.
Et retourner un paramètre de sortie qui sera un pointeur sur structure du type « caracter » indiquant l’adresse de la structure correspondant au  premier symbole, soit c1.
Si une erreur c’est produit lors de l’exécution de la fonction de décompression le pointeur « next » devra être initialisé à 0 et « value » initialisé par un code relatif au type de l’erreur.

Donc :

Struct caracter       decompres_Huffman     (name_compreced_fill[8])
{......//chercher le fichier,le décompresser en le mettant sous la forme de liste chaîné
}

me semble bien.

Qu’est que t’en penses ?

Hors ligne

 

#10 13 Apr 2006 17:11:49

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

Re: [Projet] traitement de texte G100

oublis le "chematiquement ça resamble à ça :" :oops:
ça a merdé

ç'est comme ce que je voulais dir ç'etait plutot :
c1
value [code du symbole c1]   c2
next   [pointeur vers c2]  ->value [code de c2]          c3
                                         next  [pointeur vers c3]-->value [code de c3]
                                                                                 next  [ 00 ]->fin
bon, j'esper que là ça vas marcher :evil:

Hors ligne

 

#11 13 Apr 2006 17:16:23

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

Re: [Projet] traitement de texte G100

MERDE CA MARCHE TOUJOUR PAS !!!!!!!!!!!!

PUTAin de MiSE EN page de MERDE :evil:  roll  :evil:

En fin j'esper que t'as compris méme sans le "shematiquement"

Hors ligne

 

#12 14 Apr 2006 05:00:18

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: [Projet] traitement de texte G100

Si tu t'énerves comme ça dès le départ tu tiendras pas jusqu'au bout ^^

Sinon l'idée que tu proposes pour enregistrer le texte (les listes de structures 'caracter') n'est pas bête, mais le hic, c'est la consommation de mémoire et le temps nécessaire à parcourir le fichier  :? 6 octets par caractère, ce n'est pas négligeable. Je comprends que tu veuilles faire ça pour faciliter les insertions de caractères dans le texte, mais je crois que tu devrais regrouper les caractères en petits groupes (par exemple par ligne de texte):

struct textline {
short* content;
unsigned short length;
textline* next;
}

Pour insérer alors un caractère tu devras juste faire quelques opérations de décalage sur la ligne nécessaire. Ca te permettra de gagner pas mal de place  wink


Pensez à surveiller mes releases wink

Hors ligne

 

#13 14 Apr 2006 07:25:49

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: [Projet] traitement de texte G100

Je crois qu'il s'énerve sur la mise en page du forum

Vi c'est effectivement + rentable de faire ça par bloc de texte, eventuellement tu marques pour chaque bloc le formatage


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#14 14 Apr 2006 08:38:56

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

Re: [Projet] traitement de texte G100

Effectivement, l’idée de Julien me parait exélente .
Le problème de la mémoire m’inquiétait : car au moment le plus critique la RAM contiens :
Le programme + les données + la liste chaînée + le fichier compressé  8O
En attendant j’aurai besoin d’un chaînage avant et arrière pour le déplacement vers le haut.

Donc une lib du genre :

//=======déclaration des structures en global=======
struct fill_compresed
{long taille ;
long *adresse_fill_compresed;
}

Struct text_line
{short* content;
unsigned short length;
srtuct text_line *preced;
struct text_line *next ;
}

//====et pour la définition des fct de la lib de compression==========

Struct text_line       decompres_Huffman     (char name_compreced_fill[8], unsigned short length)
{......//chercher le fichier, le décompresser en le mettant sous la forme de liste chaînée
     //avec initialisation de « content »,  « length », et des pointeurs « preced » et « next »
}

Struct  fill_compresed      compress_Huffman    (struct text_line *fill_pas_compresé , unsigned short length )
{...   //compression en fonction de « content » et en suivant « next »
}

sauf erreur de ma part, je crois que ç’est bon.

Hors ligne

 

#15 14 Apr 2006 08:59:02

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

Re: [Projet] traitement de texte G100

Heu...non,

la 2nd fefinition serait plutot :

Struct fill_compresed compress_Huffman (struct text_line *fill_pas_compresé )
{... //compression en fonction de « content » et en suivant « next »
}

Hors ligne

 

#16 15 Apr 2006 03:43:47

deather
Membre Communauté Graph100
Lieu: Banlieue parisienne (Fresnes)
Date d'inscription: 05 May 2002
Messages: 909

Re: [Projet] traitement de texte G100

Hello

Merci pour les informations à propos de comment ton comptes stocker les données en mémoire. Je vais développer ma routine en me basant là-dessus. De toute manière, je ferai un truc facilement adaptable. Le tout, c'est que je puisse récupérer aisément le caractère sur deux bytes.

Je vais continuer à y réfléchir, n'ayant jamais programmé d'Huffman pour l'instant wink

À+, je te tiens au courant.


..:: Deather ::..
deather.dede@gmail.com.NO.SPAM

Hors ligne

 

#17 15 Apr 2006 04:34:54

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

Re: [Projet] traitement de texte G100

Je te remercie pour ton aide.

PS : à partir de la semaine prochaine j'aurai accés à Internet seulement le weekend, donc ne t'étonne pas si je reponds pas tout de suite.

Hors ligne

 

#18 15 Apr 2006 04:43:54

deather
Membre Communauté Graph100
Lieu: Banlieue parisienne (Fresnes)
Date d'inscription: 05 May 2002
Messages: 909

Re: [Projet] traitement de texte G100

Ok, moi je suis pas là la semaine prochaine enfin très peu et je n'aurai pas le temps de programmer. Je commence juste à y réfléchir, j'espère pouvoir en venir à bout wink


..:: Deather ::..
deather.dede@gmail.com.NO.SPAM

Hors ligne

 

#19 15 Apr 2006 06:19:01

nykosledieu
Team G100
Lieu: Strasbourg
Date d'inscription: 29 Jan 2002
Messages: 3028
Site web

Re: [Projet] traitement de texte G100

J'ai fait un projet pour les cours ya 3 ans dont le sujet était de faire une écriture intuitive genre téléphone portable
en gros le principe est qu'on commence à écrire le mot et qu'il propose tous les mots qui commencent par ce qu'on a écrit
une autre partie du projet consistait à implémenter huffman pour compresser le dictionnaire
c'est du C, voila mon projet :
http://embrun2002.free.fr/files/cours/p … up1-pp.tgz

j'espère que ça peut t'aider


Nykosledieu
nykosJEMMERDELESPAM@graph100.com - http://team.graph100.com
Venez sur le chat !!

Hors ligne

 

#20 15 Apr 2006 10:20:03

deather
Membre Communauté Graph100
Lieu: Banlieue parisienne (Fresnes)
Date d'inscription: 05 May 2002
Messages: 909

Re: [Projet] traitement de texte G100

Sympa, donc en fait mon boulot est déjà fait, enfin si on peut reprendre ton code... Par contre, j'espère qu'on t'a forcé pour écrire du code en français... tongue


..:: Deather ::..
deather.dede@gmail.com.NO.SPAM

Hors ligne

 

#21 15 Apr 2006 11:17:24

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

Re: [Projet] traitement de texte G100

Je te remercie pour ta documentation et tes codes sources Nykosledieu.
Ca sera très utile pour le développement de la lib de compression :P

Ne t’inquiète pas  Deather, ç’est pas urgent car la partie compression ç’est vers la fin du projet.
De plus, je vais être obligé de décrocher  (pas complètement, bien sure…) jusque a mi Juin.
Ça sera surtout cet été que je m’y consacrerai.

Par contre j’ai pensé à un truck :
Pour la décompression ne t’embéte pas avec la liste chaînée.
Met le fichier décompressé sous forme de table dans une mem zone.
Je le metrai moi-même sous  forme de chaînage avec une fonction qui ira lire dans cette mem zone.

Et pour la compression ça serait bien que tu mettes le fichier compressé directement dans la mem_zone spécifiée.

Ainsi, ça permettra d’éviter d’avoir a un moment quelconque la liste chaînée + le fichier compressé dans la RAM.

Donc je verrais bien :


//============  en global ===========
Struct text_line
{short* content;
unsigned short length;
srtuct text_line *preced;
struct text_line *next ;
}

//========== dans ta lib ============

int   compress_Huffman    (struct text_line *fill_pas_compresé , char name_ compreced_fill[8])
{int error ;
………
//compression en fonction de « content » et  « length » en suivant « next » vers « name_ compreced_fill[8} »  en essayant d’économiser au maximum la RAM
…..….
return (error) ;       //type d’erreur rencontrée
}


int      decompres_Huffman     (char name_compreced_fill[8], char name_decompressed_fill[8] )
{int error ;
……..
//chercher le fichier spesifié par « name_compreced_fill[8] » dans la mem zone
//le décompresser, tu peut utiliser toute la RAM que tu veut a condition qu’elle soit libérée a la fin de la routine de décompression.
//création de la mem zone spécifié par name_decompressed_fill[8]
//écriture dans cette dernière du tableau décompressé
............
return (error);   //type d’erreur rencontrée
}

Hors ligne

 

#22 15 Apr 2006 11:52:10

deather
Membre Communauté Graph100
Lieu: Banlieue parisienne (Fresnes)
Date d'inscription: 05 May 2002
Messages: 909

Re: [Projet] traitement de texte G100

Ok, je vais voir ca. Je te tiens au courant.


..:: Deather ::..
deather.dede@gmail.com.NO.SPAM

Hors ligne

 

#23 15 Apr 2006 13:40:58

Vic
Membre
Date d'inscription: 12 Apr 2006
Messages: 109
Site web

Re: [Projet] traitement de texte G100

En ce qui concerne les fichiers en tête j’utilises :

#include <dos.h>
#include "gxlib10.h"
#include "Casio2.h"     
Et bien sure memzones.c 1.06 a été ajouté au projet

Les fonctions que je n’utilise pas dans Casio2 et gxlib10 ont été mises en commentaires, y compris <stdio.h> et <string.h.> qui étaient dans Casio2

Je vais de m’en tenir là, en fin je vais essayer...
Donc utilise les mémes que moi.

Hors ligne

 

#24 15 Apr 2006 15:29:47

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: [Projet] traitement de texte G100

Je doute qu'il ait besoin de ça pour implémenter une méthode de compression/décompression d'une zone de mémoire... :?


Pensez à surveiller mes releases wink

Hors ligne

 

#25 16 Apr 2006 13:43:25

2072
Programmeur Graph100
Lieu: Somewherebourg
Date d'inscription: 29 Jan 2002
Messages: 2056
Site web

Re: [Projet] traitement de texte G100

hmmm un nouveau projet smile c'est bien ça. Et moi qui a toujour la lib memzone 2.0 dans mon placard... sad merestait juste la doc à faire, et une phase de test intense, même si ma version de Touche l'utilise déjà... C'est triste, tout ce que  je me souviens, c'est que maintenant les memzones s'accèdent et s'écrivent comme des fichiers sur disques...

ah tiens, en regardant dans le .h je vois que j'ai ajouté ces nouvelles fonctions:

Code:

MEMZ *mopen(const char ztype, const unsigned char *zonename, const char *mode);

size_t mwrite    (const void *ptr,   size_t element_size, size_t n, MEMZ *stream);

size_t mread    (void *ptr,        size_t element_size, size_t n, MEMZ *stream);

int mclose (MEMZ *stream);

int mseek (MEMZ *stream, unsigned offset, int whence);

#define simple_mseek(a,b) a->pointer=b

#define mrewind(a) a->pointer=0

#define munlink(a,b) create_mem_zone(a,b,0,DELETE_ZONE)

int mtruncate (MEMZ *stream, size_t newsize);

enfin bref, cette version est plus simple d'utilisation, pas de risque de dépassement de mémoire, ni d'erreur de pointeur, plus besoin de se préoccuper de rien, juste utiliser les fonctions ci-dessus...

Si ça vous intéresse dîtes le moi.


PS: le plus étrange avec la disparition des programmeurs G100 (ceux qui répondent ici en fait) c'est que l'intérêt pour nos programmes semblent toujours être aussi important, Touche par exemple est toujours téléchargé au moins une fois par jour... (et memzone a été téléchargé 11 fois au mois de mars).
Peut-être y'a t-il un autre forum G-100 ailleurs et on est pas au courant lol


-~2072~-
Paid Emails
[URL=http://www.2072productions.com]2072productions.com[/URL]
[URL=http://www.casiocalc.org]casiocalc.org[/URL]

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr