IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

editeur de texte


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de Spidermeu
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 147
    Par défaut editeur de texte
    bonjour, je souhaite faire un editeur de texte plus simple a utiliser que EDIT pour ms-dos.
    Pour cela, j'ai écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    void editeur(char option[]) // option contient le chemin ou on doit creer le fichier.txt
    {
        FILE *fic;
        char phrase[50];
        char commande[K];  //k=100
     
        fic=fopen(option,"w");
        printf("___________________EDITION du fichier %s________________\n",option);
        while // je ne sais pas quoi mettre en condition
        {
     
            fgets(phrase,sizeof(phrase),stdin);
            fprintf(fic,"%s",phrase);
     
        }    
         fclose(fic); 
     
    }
    le probleme, c'est que je veux que l'utilisateur puisse aussi faire des retour a la ligne (retour chariot). Et lorsque l'utilisateur appuie sur la touche "echappe", il sort de la boucle while et termine le programme...
    je n'ai aucune idée sur la maniere de procédé.

    merci

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salut

    Deja c'est super moche de creer le fichier comme tu le fais avec system
    Le fopen() que tu fais apres suffit.
    D'ailleurs tu fais un fopen() à chaque passage de boucle sans fermer le fichier..........

    Apres, si tu veux faire un truc conforme au C standard, tu ne peux pas tester si l'utilisateur appuie sur Echap

    Les editeurs lignes par ligne dans le monde Unix attendent en general que l'utilisateur appuie sur Ctrl+D
    Je ne sais pas si c'est un signal particulier envoyé au processus ou bien un caractere special envoyé.
    Oui ça t'avance pas des masses, désolé.

  3. #3
    Membre confirmé Avatar de FidoDido®
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 101
    Par défaut
    Citation Envoyé par Gruik
    Les editeurs lignes par ligne dans le monde Unix attendent en general que l'utilisateur appuie sur Ctrl+D
    Je ne sais pas si c'est un signal particulier envoyé au processus ou bien un caractere special envoyé.
    Ctrl+D est un signal envoyé au processus.

    cf man 7 signal

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    C'est ton programme, alors on ne va pas faire la conception pour toi.
    Avant de te lancer dans la progr C, il faudrait avoir une idée exacte de ce que tu veux faire, écrire un cahier des charges en somme.
    Une fois que c'est fait, étudie bien ce cahier pour en tirer les différentes parties du programme, les articulations, et vois ce qu'il faut faire pour les mettre en oeuvre, écris en détail chaque étape de la mise en oeuvre dans un pseudo langage codé. Une fois que tu as bien en tête toutes les étapes d'un module, écris le code C, pas avant.
    Bon courage
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Membre confirmé
    Avatar de Spidermeu
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 147
    Par défaut
    et bien si vous souhaitez une pseudo algo je peux le faire :

    ouvrir le fichier contenu dans la variable option;
    tant que l'utilisateur n'a pas appuyer sur la touche echape;

    lire le clavier et le placer dans phrase;
    ecrire dans le fichier le contenu de phrase;

    fin tant que

    fermer le fichier

  6. #6
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Merci FidoDido

    Spidermenu, le truc c'est que tu peux pas sortir de la fonction de lecture de la ligne (fgets() en l'occurrence) en appuyant sur echap

  7. #7
    Membre confirmé Avatar de FidoDido®
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 101
    Par défaut
    Comme le disait Gruik, pour l'echapement, le handling de signal semble la solution la plus adaptée.

    man 7 signal

  8. #8
    Membre confirmé Avatar de FidoDido®
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 101
    Par défaut
    Dans ce style là la capture de signal :

    Déclaration de la fonction de substitution du signal, le "handler"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<unistd.h>
    #include<signal.h>
     
    void handler(int num)
    {
           printf("OK, signal : %d\n On quitte...\n",num);
           exit(0);
    }
    et, dans la fonction main par exemple, définition de la capture de signal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int main(void)
    {
           signal(SIGUNUSED,handler);
           signal(SIGINT,handler);
     
           return 0;
    }
    A noter que les signaux SIGKILL et SIGSTOP ne peuvent être captés, déviés ou stoppés.

  9. #9
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Par contre, je sais pas si ça marche sous windows

Discussions similaires

  1. [Composant] Editeur de texte java
    Par doudine dans le forum Général Java
    Réponses: 17
    Dernier message: 27/01/2010, 17h35
  2. Editeur de texte enrichi
    Par Bidouille dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/11/2004, 02h25
  3. [Composant] Editeur de texte
    Par fendavid dans le forum Général Java
    Réponses: 1
    Dernier message: 05/06/2004, 23h28
  4. [Kylix] [Kylix 3] Un editeur de texte ?
    Par drfreuderick dans le forum EDI
    Réponses: 2
    Dernier message: 14/03/2004, 01h33
  5. Quel EDI/editeur de texte preférez-vous ?
    Par Gandalf dans le forum Choisir un environnement de développement
    Réponses: 5
    Dernier message: 18/09/2003, 18h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo