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

Lisp Discussion :

Fonction "modification?" besoin d'aide


Sujet :

Lisp

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Fonction "modification?" besoin d'aide
    Bonjour,
    cela fait quelques jours que je me suis mis au LISP et je cherche à créer un lisp qui vérifiera qu'un fichier a été modifié avant de charger la date et de l'afficher à l'intérieur de celui ci. Pour afficher la date j'ai réussi à me débrouiller mais le problème se trouve dans le fait de savoir si le fichier a été modifié ou non, de plus j'aimerais que se lisp se lance à l'appuie sur le bouton enregistrer.

    J'ai donc définit une fonction qui se construirais comme cela :

    (defun c:toto()
    (programme de vérification)
    (command "_qsave")
    )

    j'ai aussi modifié le bouton de sauvegarde de manière à ce qu'il appelle C^Ctoto lors de l'appui.

    Mon problème réside donc dans la fonction de vérification de modification du fichier. Existe t-il un moyen de vérifier qu'un fichier a été modifié physiquement (c'est à dire autrement que par un zoom) par rapport à une version antérieur de lui même?

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Je suppose que tu parles de elisp ? Le lisp pour emacs ?
    Je ne connais pas ses bibliothèques. Je ne peux donc pas bien t'aider.

  3. #3
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Pour savoir si un buffer Emacs a été modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    buffer-modified-p is a built-in function.
    (buffer-modified-p &optional BUFFER)
     
    Return t if BUFFER was modified since its file was last read or saved.
    No argument or nil as argument means use current buffer as BUFFER.
    C'est bien de cela que tu as besoin ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par penou Voir le message
    Bonjour,
    cela fait quelques jours que je me suis mis au LISP et je cherche à créer un lisp qui vérifiera qu'un fichier a été modifié avant de charger la date et de l'afficher à l'intérieur de celui ci. Pour afficher la date j'ai réussi à me débrouiller mais le problème se trouve dans le fait de savoir si le fichier a été modifié ou non, de plus j'aimerais que se lisp se lance à l'appuie sur le bouton enregistrer.

    J'ai donc définit une fonction qui se construirais comme cela :

    (defun c:toto()
    (programme de vérification)
    (command "_qsave")
    )

    j'ai aussi modifié le bouton de sauvegarde de manière à ce qu'il appelle C^Ctoto lors de l'appui.

    Mon problème réside donc dans la fonction de vérification de modification du fichier. Existe t-il un moyen de vérifier qu'un fichier a été modifié physiquement (c'est à dire autrement que par un zoom) par rapport à une version antérieur de lui même?
    Citation Envoyé par Garulfo Voir le message
    Je suppose que tu parles de elisp ? Le lisp pour emacs ?
    Je ne connais pas ses bibliothèques. Je ne peux donc pas bien t'aider.
    Citation Envoyé par LLB Voir le message
    Pour savoir si un buffer Emacs a été modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    buffer-modified-p is a built-in function.
    (buffer-modified-p &optional BUFFER)
     
    Return t if BUFFER was modified since its file was last read or saved.
    No argument or nil as argument means use current buffer as BUFFER.
    C'est bien de cela que tu as besoin ?
    Bonjour,

    si ton but est de faire en sorte qu'emacs inscrive, à l'intérieur d'un fichier, sa date de dernière modification, alors je te suggère de jeter un coup d'oeil à la fonctionnalité "time-stamp" (ou à son code) qui modifie, au moment de la sauvegarde, la date écrite dans les premières lignes de l'en-tête d'un fichier:

    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
    `time-stamp' is an interactive autoloaded Lisp function
      -- autoloads from "time-stamp"
     
    Documentation:
    Update the time stamp string in the buffer.
    If you put a time stamp template anywhere in the first 8 lines of a file,
    it can be updated every time you save the file.  See the top of
    `time-stamp.el' for a sample.  The template looks like one of the following:
        Time-stamp: <>
        Time-stamp: " "
    The time stamp is written between the brackets or quotes, resulting in
        Time-stamp: <95/01/18 10:20:51 gildea>
    Only does its thing if the variable  time-stamp-active  is non-nil.
    Typically used on  write-file-hooks  for automatic time-stamping.
    The format of the time stamp is determined by the variable  time-stamp-format.
    The variables time-stamp-line-limit, time-stamp-start, and time-stamp-end
    control finding the template.
    HTH

    )jack(

Discussions similaires

  1. Fonction de Coherence, mschoherence, besoin d'aide
    Par souf308 dans le forum Signal
    Réponses: 4
    Dernier message: 28/08/2013, 11h06
  2. Besoin d'aide sur les fonction d'interbase
    Par BOUBOU81 dans le forum InterBase
    Réponses: 2
    Dernier message: 05/11/2004, 10h00

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