Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1463 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Editeur de texte !

 

Sujet(s) à lire :
 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Editeur de texte !

n°1354161
benvienne
Posté le 26-04-2006 à 11:08:29  profilanswer
 

Bonjour à toutes et à tous !  :hello:  
 
Voila, dans le cardre d'un projet à rendre dans deux semaines, je dois faire un éditeur de texte en C !
 
 
Le but final étant par la suite de lui faire reconnaître le langage algoritmique (genre mettre dans une autre couleur un "Afficher" ou un "Si" ).
 
 
Si je vous demande de l'aide, c'est parce que le C, c'est pas trop mon truc, mais bon, j'y suis obligé !
 
 
 
Mon principal soucis en général, c'est la déclaration et aussi d'avoir une démarche descendante.
 
Par exemple, je sais qu'il faut que je fasse un éditeur de texte avant de colorer tel ou tel mot ...
 
Mais pour faire un éditeur de texte, je ne sais pas trop comment m'y prendre ...
 
 
 
Je pense qu'il me faut des listes chainées, ça c'est sur !  :D  
Mais aussi une structure ...
 
 
Mais bon, une chose à la fois !
 
 
Ma première question concerne la présentation !
 
Je fois faire un nombre illimité de ligne, mais un maximum de 80 caractères par collone !
 
Le tout doit être entouré de petites étoiles ***************** en mode console ....
 
 
Dois je faire ça de suite et surtout si oui comment faire ?
 
 
Merci :jap:
 
 
 
 
 
J'espère que je ne dérange pas trop avec ce petit topic et que des peronnes sympathiques me fileront un petit coup de main ! ;)

mood
Publicité
Posté le 26-04-2006 à 11:08:29  profilanswer
 

n°1354181
_darkalt3_
Proctopathe
Posté le 26-04-2006 à 11:22:12  profilanswer
 

pour l'aspect interface, tu peux regarder du coté de la lib ncurses, ca fera tout ca pour toi

n°1354224
Emmanuel D​elahaye
C is a sharp tool
Posté le 26-04-2006 à 12:00:27  profilanswer
 

benvienne a écrit :

Voila, dans le cardre d'un projet à rendre dans deux semaines, je dois faire un éditeur de texte en C !


2 semaines ? Si tu n'es pas dessus à 100%, impossible !

Citation :

Le but final étant par la suite de lui faire reconnaître le langage algoritmique (genre mettre dans une autre couleur un "Afficher" ou un "Si" ).


En plus ! C'est de la folie...
 
Quel est ton système ?

Citation :

Si je vous demande de l'aide, c'est parce que le C, c'est pas trop mon truc, mais bon, j'y suis obligé !


J'y crois pas. Tu ne connais pas le C et tu dois faire ça ? Quel est le but ? Le suicide ? C'est quoi ce cursus démentiel ? Quelle école ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1354228
_darkalt3_
Proctopathe
Posté le 26-04-2006 à 12:02:30  profilanswer
 

Emmanuel Delahaye a écrit :

2 semaines ? Si tu n'es pas dessus à 100%, impossible !


 
Il y avait peut etre plus de deux semaines à la base, mais maintenant la deadline est dans deux semaines ;)

n°1354902
benvienne
Posté le 27-04-2006 à 09:37:47  profilanswer
 

Voila, c'est un peu ça, toujours à la bourre !
 
Pour être à 100% dessus, bah s'il faut j'y serais ...
 
 
Pour la reconnaissance du langage algo c'est juste mettre des couleurs, mais le prof s'en fout un peu, c'est du bonus, l'éditeur ça sera déjà pas mal ! :lol:
 
 
 
Pour mon système, que des XP avec Microsoft Visual C++ version Microsoft Etudiants (je sais pas s'il y a une différence).

n°1354905
benvienne
Posté le 27-04-2006 à 09:38:38  profilanswer
 

_darkalt3_ a écrit :

pour l'aspect interface, tu peux regarder du coté de la lib ncurses, ca fera tout ca pour toi


 
 
Alors une librairie apparemment, je fais une petite recherche la dessus alors !

n°1354909
_darkalt3_
Proctopathe
Posté le 27-04-2006 à 09:45:39  profilanswer
 

Oui, c'est une lib, et elle gère les ihms en mode texte.
 
C'est pas super évident, mais c'est très utilisé, fiable, puissant.

n°1354915
benvienne
Posté le 27-04-2006 à 09:53:09  profilanswer
 

Les librairies c'est ce que l'on met genre : #include <stdio.h> ou
#include <stdlib.h>
 
Comment je télécharge cette librairie alors sur mon PC ?


Message édité par benvienne le 27-04-2006 à 09:56:43
n°1354926
benvienne
Posté le 27-04-2006 à 10:09:52  profilanswer
 

Bon là je tente de faire ma liste chainée ! ça promet, je sens que je vais geter mon beau Vaio par la fenêtre déjà ! :lol:

n°1354929
_darkalt3_
Proctopathe
Posté le 27-04-2006 à 10:12:01  profilanswer
 

.h == fichier d'entete
 
pour la librairie: google, comme d'habitude.
 
Trouve le site, lis la doc, et si tu as des problèmes revient en exposant le probleme.
 
Et ne jette pas ton vaio, donne le moi plutôt [:petrus75]

mood
Publicité
Posté le 27-04-2006 à 10:12:01  profilanswer
 

n°1354932
benvienne
Posté le 27-04-2006 à 10:17:46  profilanswer
 

Ok, oui j'avais commencé à regarder pour la librairie ... mais bon je me dis que la présentation ça viendra après ... si j'ai un programme qui tourne ça sera déjà pas mal !
 
 
Pour la FE11S, je penserais à toi si je dois le jeter ! :p

n°1354933
franceso
Posté le 27-04-2006 à 10:19:20  profilanswer
 

avant de te jeter tête baissée dans l'implémentation d'une partie du code, il serait bon que tu te fasses une idée générale de la structure globale que tu vas donner à ton projet. Pour réaliser un projet de cette importance dans un délai aussi court, il faut éviter au maximum de perdre du temps à coder des choses inutiles ou qui ne s'intègrent pas exactement dans le reste du projet. Commence par identifier les grands blocs de fonctionnalités de ton application, les différentes fonctions que tu devras implémenter ainsi que la structure des données qu'elles traitent, etc.
 
Bref, je te conseille de réfléchir sur papier avant de coder.


---------------
TriScale innov
n°1354935
benvienne
Posté le 27-04-2006 à 10:23:18  profilanswer
 

franceso a écrit :

avant de te jeter tête baissée dans l'implémentation d'une partie du code, il serait bon que tu te fasses une idée générale de la structure globale que tu vas donner à ton projet. Pour réaliser un projet de cette importance dans un délai aussi court, il faut éviter au maximum de perdre du temps à coder des choses inutiles ou qui ne s'intègrent pas exactement dans le reste du projet. Commence par identifier les grands blocs de fonctionnalités de ton application, les différentes fonctions que tu devras implémenter ainsi que la structure des données qu'elles traitent, etc.
 
Bref, je te conseille de réfléchir sur papier avant de coder.


 
 
Merci pour l'astuce  :jap:  
 
C'est vrai que je me jette souvent sur mon PC, je vais prendre un papier et un crayon, tu as bien raison  :jap:

n°1354942
benvienne
Posté le 27-04-2006 à 10:36:46  profilanswer
 

Alors après réflexion, il me faut :
 
 
- une fonction pour ajouter des éléments ;
 
- une autre pour en supprimer ;
 
EDIT : - une fonction pour connaître ma place dans la ligne ;
 
- un tableau de structure d'éléments (je crois que ça existe).
 
Voila, qu'en pensez vous ?
 
 
 
Pour taper, j'avais l'intention de faire une boucle dans le mail avec un bête scanf à chaque fois et si on appuies sur Echap (via code Asci (vous moquez pas je sais jamais comment ça s'écrit) :p ), bah on arréte la saisie, mais bon, ça c'est pour après, faut déjà que je fasse les fonctions principales avant.

Message cité 1 fois
Message édité par benvienne le 27-04-2006 à 10:42:52
n°1354949
Emmanuel D​elahaye
C is a sharp tool
Posté le 27-04-2006 à 10:42:57  profilanswer
 

benvienne a écrit :

Pour taper, j'avais l'intention de faire une boucle dans le mail avec un bête scanf à chaque fois et si on appuies sur Echap (via code Asci (vous moquez pas je sais jamais comment ça s'écrit) :p ), bah on arréte la saisie, mais bon, ça c'est pour après, faut déjà que je fasse les fonctions principales avant.


 
Il faut que tu défisses d'abord le mode de fonctionnement de ton éditeur.  
 

  • quel interaction avec l'utilisateur ?
  • mode ligne ?
  • mode plein ecran ?
  • quelles capacités d'édition (basckspace ou plus...)
  • utilise-t-on les fleches ?
  • y'a-t-il du scrolling ?
  • quelles sont les limitations (nb colonnes, nb lignes)


Bref, il faut commencer par faire une spécificatrion détaillée claire... de façon à cerner le projet, sinon, ça va partir dans tous les sens...


Message édité par Emmanuel Delahaye le 27-04-2006 à 10:50:54

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1354954
Skyrunner6​3
Posté le 27-04-2006 à 10:49:31  profilanswer
 

Regarde dans les sources exemples de Dev-Cpp, il y a un editeur de texte, tu peux largement t'en inspirer...

n°1354957
benvienne
Posté le 27-04-2006 à 10:51:56  profilanswer
 

Alors si je regarde l'énoncé :
 
L'utilisateur tape tout simplement comme moi actuellement.
On doit être en mode console.
On doit pouvoir revenir en arrière pour effacer.
Les flèches ont doit pouvoir s'en servir.
Pas de scrolling je pense.
Pas de limitation en terme de lignes, par contre, 80 caractères en terme de colonne.
 
 
 
 
Je vois que j'ai affaire à des gens bien sympas ici :jap:

n°1354958
benvienne
Posté le 27-04-2006 à 10:53:31  profilanswer
 

Skyrunner63 a écrit :

Regarde dans les sources exemples de Dev-Cpp, il y a un editeur de texte, tu peux largement t'en inspirer...


 
 
J'avais trouvé ceci en fouinant sur le net : http://www.cppfrance.com/code.aspx?ID=31135
 
Mais je n'arrive pas du tout à m'en inspirer, bien trop complexe pour moi  :pt1cable:  

n°1354972
Skyrunner6​3
Posté le 27-04-2006 à 11:10:55  profilanswer
 

Je viens de regarder l'exemple de Dev-Cpp il y a un fichier .c  et un .h ainsi que un fichier ressource, bien sur ce programme est entierement en API Win32.
 
Je te conseil de le regarder.

n°1354977
benvienne
Posté le 27-04-2006 à 11:17:17  profilanswer
 

Skyrunner63 a écrit :

Je viens de regarder l'exemple de Dev-Cpp il y a un fichier .c  et un .h ainsi que un fichier ressource, bien sur ce programme est entierement en API Win32.
 
Je te conseil de le regarder.


 
 
J'ai regardé aussi, mais je comprends pas trop, les librairies on a pas encore fait :(

n°1354990
black_lord
Truth speaks from peacefulness
Posté le 27-04-2006 à 11:28:59  profilanswer
 

windows ou linux ? ou autre ?

n°1355012
franceso
Posté le 27-04-2006 à 11:49:53  profilanswer
 

il me semble que le monsieur a dit plus haut qu'il s'agissait du win XP


---------------
TriScale innov
n°1355018
tholdan
Posté le 27-04-2006 à 11:54:06  profilanswer
 

Tu peux regarder du côté des sources de  SciTE pour voir à peu près comment ça fonctionne. http://www.scintilla.org/SciTE.html


---------------
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn
n°1355021
Elmoricq
Modérateur
Posté le 27-04-2006 à 11:55:37  profilanswer
 

tholdan a écrit :

Tu peux regarder du côté des sources de  SciTE pour voir à peu près comment ça fonctionne. http://www.scintilla.org/SciTE.html


 
 

benvienne a écrit :

J'ai regardé aussi, mais je comprends pas trop, les librairies on a pas encore fait :(


 
 
Moi je pense plutôt qu'il est dans le caca.

n°1355088
Emmanuel D​elahaye
C is a sharp tool
Posté le 27-04-2006 à 13:15:14  profilanswer
 

benvienne a écrit :

Alors si je regarde l'énoncé :
 
L'utilisateur tape tout simplement comme moi actuellement.
On doit être en mode console.
On doit pouvoir revenir en arrière pour effacer.
Les flèches ont doit pouvoir s'en servir.
Pas de scrolling je pense.
Pas de limitation en terme de lignes, par contre, 80 caractères en terme de colonne.


Faudrait préciser tout ça et décrire mieux les comportements.
 
Niveau organisation, je commencerais par un truc comme ça.

Code :
  1. /* main.c */
  2. #include "ed/inc/io.h"
  3. #include "edt.h"
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. static int editor (char *fname)
  7. {
  8.    int err = 0;
  9.    edt_s edt;
  10.    err = edt_init(&edt);
  11.    if (!err)
  12.    {
  13.       if (fname != NULL)
  14.       {
  15.          err = edt_load (&edt, fname);
  16.       }
  17.       if (!err)
  18.       {
  19.          err = edt_loop(&edt);
  20.          if (!err)
  21.          {
  22.             int dyn = 0;
  23.             if (fname == NULL)
  24.             {
  25.                printf("name of the file to be saved or <enter> to cancel\n" );
  26.                fname = get_line ();
  27.                dyn = 1;
  28.             }
  29.             if (fname != NULL)
  30.             {
  31.                err = edt_save (&edt, fname);
  32.                if (dyn)
  33.                {
  34.                   free (fname);
  35.                }
  36.             }
  37.          }
  38.       }
  39.    }
  40.    err = edt_end(&edt);
  41.    return err;
  42. }
  43. int main (int argc, char **argv)
  44. {
  45.    int ret = EXIT_SUCCESS;
  46.    if (argc > 1)
  47.    {
  48.       int err = editor (argv[1]);
  49.       if (err)
  50.       {
  51.          ret = EXIT_FAILURE;
  52.       }
  53.    }
  54.    else
  55.    {
  56.       int err = editor (NULL);
  57.       if (err)
  58.       {
  59.          ret = EXIT_FAILURE;
  60.       }
  61.    }
  62.    return ret;
  63. }


avec

Code :
  1. #ifndef H_EDT
  2. #define H_EDT
  3. /* edt.h */
  4. typedef struct
  5. {
  6.    int dummy;
  7. }
  8. edt_s;
  9. int edt_init(edt_s *self);
  10. int edt_end (edt_s *self);
  11. int edt_load (edt_s *self, char const *fname);
  12. int edt_loop(edt_s *self);
  13. int edt_save (edt_s *self, char const *fname);
  14. #endif


et

Code :
  1. /* edt.c */
  2. #include "edt.h"
  3. #include <stdio.h>
  4. #define TODO(s)\
  5.    printf ("'%s': ... in progress at %s:%d\n", #s, __FILE__, __LINE__)
  6. int edt_init(edt_s *self)
  7. {
  8.    int err = 0;
  9.    TODO(edt_init);
  10.    return err;
  11. }
  12. int edt_load (edt_s *self, char const *fname)
  13. {
  14.    int err = 0;
  15.    TODO(edt_init);
  16.    return err;
  17. }
  18. int edt_loop(edt_s *self)
  19. {
  20.    int err = 0;
  21.    TODO(edt_loop);
  22.    return err;
  23. }
  24. int edt_save (edt_s *self, char const *fname)
  25. {
  26.    int err = 0;
  27.    TODO(edt_save);
  28.    return err;
  29. }
  30. int edt_end (edt_s *self)
  31. {
  32.    int err = 0;
  33.    TODO(edt_end);
  34.    return err;
  35. }


le code manquant est là :  
 
http://mapage.noos.fr/emdel/clib.htm


Message édité par Emmanuel Delahaye le 27-04-2006 à 13:19:10

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Editeur de texte !

 

Sujets relatifs
[GTK] Positionnement précis de texte dans une DrawBox [Auto Résolu]javascript et fichier texte en local
Socket, envoyer autre chose que du texte?réalisation d'un éditeur d'ontologie
[Résolu] PB affection de texte dans un boutonCherche editeur de texte html/php/js
[DELPHI] Enregistrement de fichiers texteEditeur Html online
archivache d'un texte word dans une bd mysql 
Plus de sujets relatifs à : [C] Editeur de texte !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR