Précédent   Forum du club des développeurs et IT Pro > Autres langages > Langages fonctionnels > Lisp
Lisp Forum d'entraide sur la programmation en langages fonctionnels Lisp et Common Lisp
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/10/2011, 10h55   #1
crespo12
Invité de passage
 
Homme
Enseignant
Inscription : mars 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : mars 2011
Messages : 6
Points : 2
Points : 2
Par défaut Suppression de lignes avec critère

Bonjour,

j'utilise emacs+latex, je voudrais transformer des cours en formulaires.

Il faut transformer un fichier f1 en f2 en supprimant certaines lignes:
celles qui ne sont pas dans certains blocs de balises (\section{}, \propriete{}, \theoreme{} ,...). Les débuts de balises sont toujours en début de ligne.

Je pensais utiliser:
- isearch-forward pour trouver une balise de bloc à conserver
- forward-sexp pour me déplacer à la fin de la balise

Questions:
1-est-ce qu'il vaut mieux enregistrer une macro (je sais le faire) ou écrire une fonction lisp (je ne maîtrise pas...)

2-comment gérer:
- le ou dans la recherche: chercher \section ou \propriete ou \theoreme
- jusqu'à arriver à la fin du fichier

Exemple:

f1
------------------------------------------------------------
\section{}

bla bla bla bla
bla bla bla bla bla

\propriete{texte texte
maths maths
maths
texte texte}

bla bla bla bla
bla bla

\autreBalise{texte
maths maths
texte}
------------------------------------------------------------

f2
------------------------------------------------------------
\section{}

\propriete{texte texte
maths maths
maths
texte texte}

------------------------------------------------------------

Merci d'avance.
crespo12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2012, 12h01   #2
jack-ft
Membre Expert
 
Inscription : avril 2008
Messages : 796
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 796
Points : 1 802
Points : 1 802
Citation:
Envoyé par crespo12 Voir le message
Bonjour,

j'utilise emacs+latex, je voudrais transformer des cours en formulaires.

Il faut transformer un fichier f1 en f2 en supprimant certaines lignes:
celles qui ne sont pas dans certains blocs de balises (\section{}, \propriete{}, \theoreme{} ,...). Les débuts de balises sont toujours en début de ligne.

Je pensais utiliser:
- isearch-forward pour trouver une balise de bloc à conserver
- forward-sexp pour me déplacer à la fin de la balise

Questions:
1-est-ce qu'il vaut mieux enregistrer une macro (je sais le faire) ou écrire une fonction lisp (je ne maîtrise pas...)
Tu peux commencer par écrire une macro, puis appeler une des fonctions comme edit-kbd-macro qui te montre le code correspondant et t'en inspirer pour écrire le code.

Citation:
2-comment gérer:
- le ou dans la recherche: chercher \section ou \propriete ou \theoreme
avec une regexp:
Code :
(re-search-forward (concat "^" "\\\\" "\\(" (mapconcat 'symbol-name '(section propriete theoreme) "\\|") "\\)"))
Citation:
- jusqu'à arriver à la fin du fichier
Code :
1
2
3
4
5
(while (re-search-forward (concat "^\\\\" "\\(" (mapconcat 'symbol-name '(section propriete theoreme) "\\|") "\\)") (not 'bound) 'noerror)
    (forward-sexp)
    (setq beg-of-stuff (point))
    etc.
)
jack-ft est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h16.


 
 
 
 
Partenaires

Hébergement Web