;; Eliminer, dans le titre, tout ce qui ne va pas pour un nom de fichier
(setq title (replace-regexp-in-string "[-!?.,;: ]" "_" title))
(setq title (replace-regexp-in-string "_+" "_" title))
(setq title (replace-regexp-in-string "_$" "" title))
(setq title (replace-regexp-in-string "ç" "c" title))
(setq title (replace-regexp-in-string "[âäà]" "a" title))
(setq title (replace-regexp-in-string "[êëéè]" "e" title))
(setq title (replace-regexp-in-string "[ôö]" "o" title))
(setq title (replace-regexp-in-string "[îï]" "i" title))
(setq title (replace-regexp-in-string "[ûüù]" "u" title))
;; Joindre, s'il y a, le numéro du chant
(if (not (string-equal numero ""))
(setq title (concat title "_" numero)))
;; Revérifier
(setq title (replace-regexp-in-string "-" "_" title))
;; Sauvergarder
(write-file (concat title ".eeec"))
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Florent Georges
Eric Reinbold wrote:
Si vous voyez des trucs bizarres...
Pour un premier essai, je trouve ça assez rapide, elips!
En termes de cycle de developpement ? Assurement !
Quelques suggestions en vrac. Demande si tu n'en comprend pas certaines.
(defun eeec-prompt-field (prompt &optional default) "Prompt for a value. PROMPT is a string to use as the prompt. DEFAULT is the default value if the uer hits directly RET (even nil)." (let ((val (read-string prompt))) (if (equal "" val) default val)))
(defun eeec-prompt-infos () "Prompt for all EEEC infos. TODO: Je ne sais ce qu'est EEEC, et ne peux donc decrire convenablement cette fonction. --drkm Return a list of the form: (TITLE NUM NAME1 NAME2 MEASURE LEN TEMPO KEY USE) Defaults are: (nil nil nil nil "C" "1/8" nil "C" nil)" (list (eeec-prompt-field "Title of the song: ") (eeec-prompt-field "Numero: ") (eeec-prompt-field "First name: ") (eeec-prompt-field "Second name: ") (eeec-prompt-field "Measure: " "C") (eeec-prompt-field "Length: " "1/8") (eeec-prompt-field "Tempo: ") (eeec-prompt-field "Key: " "C") (eeec-prompt-field "Use: ")))
;; TODO: Il devrait exister quelque chose de plus sur. --drkm (defun eeec-title-to-filename (title &optional num) "Return a valid filename based on an EEEC title." (concat (replace-regexp-in-string "[-!?.,;: ]" "_" (replace-regexp-in-string "_+" "_" (replace-regexp-in-string "_$" "" (replace-regexp-in-string "ç" "c" (replace-regexp-in-string "[âäà]" "a" (replace-regexp-in-string "[êëéè]" "e" (replace-regexp-in-string "[ôö]" "o" (replace-regexp-in-string "[îï]" "i" (replace-regexp-in-string "[ûüù]" "u" title))))))))) (or num "") ".eeec"))
;; FIXME: Ceci doit aller soit dans .emacs, soit en tant que form ;; top-level dans la bibliotheque EEEC. --drkm (global-set-key "C-cr" 'create-new-eeec)
Pour un premier essai, je trouve ça assez rapide, elips!
En termes de cycle de developpement ? Assurement !
Quelques suggestions en vrac. Demande si tu n'en comprend pas
certaines.
(defun eeec-prompt-field (prompt &optional default)
"Prompt for a value.
PROMPT is a string to use as the prompt. DEFAULT is the default
value if the uer hits directly RET (even nil)."
(let ((val (read-string prompt)))
(if (equal "" val) default val)))
(defun eeec-prompt-infos ()
"Prompt for all EEEC infos.
TODO: Je ne sais ce qu'est EEEC, et ne peux donc decrire
convenablement cette fonction. --drkm
Return a list of the form:
(TITLE NUM NAME1 NAME2 MEASURE LEN TEMPO KEY USE)
Defaults are:
(nil nil nil nil "C" "1/8" nil "C" nil)"
(list (eeec-prompt-field "Title of the song: ")
(eeec-prompt-field "Numero: ")
(eeec-prompt-field "First name: ")
(eeec-prompt-field "Second name: ")
(eeec-prompt-field "Measure: " "C")
(eeec-prompt-field "Length: " "1/8")
(eeec-prompt-field "Tempo: ")
(eeec-prompt-field "Key: " "C")
(eeec-prompt-field "Use: ")))
;; TODO: Il devrait exister quelque chose de plus sur. --drkm
(defun eeec-title-to-filename (title &optional num)
"Return a valid filename based on an EEEC title."
(concat
(replace-regexp-in-string "[-!?.,;: ]" "_"
(replace-regexp-in-string "_+" "_"
(replace-regexp-in-string "_$" ""
(replace-regexp-in-string "ç" "c"
(replace-regexp-in-string "[âäà]" "a"
(replace-regexp-in-string "[êëéè]" "e"
(replace-regexp-in-string "[ôö]" "o"
(replace-regexp-in-string "[îï]" "i"
(replace-regexp-in-string "[ûüù]" "u" title)))))))))
(or num "")
".eeec"))
;; FIXME: Ceci doit aller soit dans .emacs, soit en tant que form
;; top-level dans la bibliotheque EEEC. --drkm
(global-set-key "C-cr" 'create-new-eeec)
Pour un premier essai, je trouve ça assez rapide, elips!
En termes de cycle de developpement ? Assurement !
Quelques suggestions en vrac. Demande si tu n'en comprend pas certaines.
(defun eeec-prompt-field (prompt &optional default) "Prompt for a value. PROMPT is a string to use as the prompt. DEFAULT is the default value if the uer hits directly RET (even nil)." (let ((val (read-string prompt))) (if (equal "" val) default val)))
(defun eeec-prompt-infos () "Prompt for all EEEC infos. TODO: Je ne sais ce qu'est EEEC, et ne peux donc decrire convenablement cette fonction. --drkm Return a list of the form: (TITLE NUM NAME1 NAME2 MEASURE LEN TEMPO KEY USE) Defaults are: (nil nil nil nil "C" "1/8" nil "C" nil)" (list (eeec-prompt-field "Title of the song: ") (eeec-prompt-field "Numero: ") (eeec-prompt-field "First name: ") (eeec-prompt-field "Second name: ") (eeec-prompt-field "Measure: " "C") (eeec-prompt-field "Length: " "1/8") (eeec-prompt-field "Tempo: ") (eeec-prompt-field "Key: " "C") (eeec-prompt-field "Use: ")))
;; TODO: Il devrait exister quelque chose de plus sur. --drkm (defun eeec-title-to-filename (title &optional num) "Return a valid filename based on an EEEC title." (concat (replace-regexp-in-string "[-!?.,;: ]" "_" (replace-regexp-in-string "_+" "_" (replace-regexp-in-string "_$" "" (replace-regexp-in-string "ç" "c" (replace-regexp-in-string "[âäà]" "a" (replace-regexp-in-string "[êëéè]" "e" (replace-regexp-in-string "[ôö]" "o" (replace-regexp-in-string "[îï]" "i" (replace-regexp-in-string "[ûüù]" "u" title))))))))) (or num "") ".eeec"))
;; FIXME: Ceci doit aller soit dans .emacs, soit en tant que form ;; top-level dans la bibliotheque EEEC. --drkm (global-set-key "C-cr" 'create-new-eeec)
En termes de cycle de developpement ? Assurement !
Et pour la correction, encore plus rapide! ;)
J'ai une erreur depuis: Symbol's function definition is void: eeec-prompt-infos
Si tu veux que je teste ton oeuvre...
;; TODO: Il devrait exister quelque chose de plus sur. --drkm (defun eeec-title-to-filename (title &optional num) "Return a valid filename based on an EEEC title." (concat (replace-regexp-in-string "[-!?.,;: ]" "_" <--| (replace-regexp-in-string "_+" "_" <---- Ca concat dans l'autre sens, vaudrait pas mieux inverser? (replace-regexp-in-string "_$" "" <--| (replace-regexp-in-string "ç" "c" (replace-regexp-in-string "[âäà]" "a" (replace-regexp-in-string "[êëéè]" "e" (replace-regexp-in-string "[ôö]" "o" (replace-regexp-in-string "[îï]" "i" (replace-regexp-in-string "[ûüù]" "u" title))))))))) (or num "") <---- Je pige pas 'or' dans l'intro, faut que je reprenne calmement... ".eeec"))
;; FIXME: Ceci doit aller soit dans .emacs, soit en tant que form ;; top-level dans la bibliotheque EEEC. --drkm (global-set-key "C-cr" 'create-new-eeec)
Ca non plus, je pige pas bien encore, à revoir.
En gros, .eeec est un cousin de .abc, le programme c'est abcm2ps. C'est avec ça que j'écris mes partitions (de musique). J'en avais en peut plein les bottes de reprendre à chaque fois le début, alors....
En termes de cycle de developpement ? Assurement !
Et pour la correction, encore plus rapide! ;)
J'ai une erreur depuis:
Symbol's function definition is void: eeec-prompt-infos
Si tu veux que je teste ton oeuvre...
;; TODO: Il devrait exister quelque chose de plus sur. --drkm
(defun eeec-title-to-filename (title &optional num)
"Return a valid filename based on an EEEC title."
(concat
(replace-regexp-in-string "[-!?.,;: ]" "_" <--|
(replace-regexp-in-string "_+" "_" <---- Ca concat dans l'autre sens, vaudrait pas mieux inverser?
(replace-regexp-in-string "_$" "" <--|
(replace-regexp-in-string "ç" "c"
(replace-regexp-in-string "[âäà]" "a"
(replace-regexp-in-string "[êëéè]" "e"
(replace-regexp-in-string "[ôö]" "o"
(replace-regexp-in-string "[îï]" "i"
(replace-regexp-in-string "[ûüù]" "u" title)))))))))
(or num "") <---- Je pige pas 'or' dans l'intro, faut que je reprenne calmement...
".eeec"))
;; FIXME: Ceci doit aller soit dans .emacs, soit en tant que form
;; top-level dans la bibliotheque EEEC. --drkm
(global-set-key "C-cr" 'create-new-eeec)
Ca non plus, je pige pas bien encore, à revoir.
En gros, .eeec est un cousin de .abc, le programme c'est abcm2ps.
C'est avec ça que j'écris mes partitions (de musique).
J'en avais en peut plein les bottes de reprendre à chaque fois le début, alors....
En termes de cycle de developpement ? Assurement !
Et pour la correction, encore plus rapide! ;)
J'ai une erreur depuis: Symbol's function definition is void: eeec-prompt-infos
Si tu veux que je teste ton oeuvre...
;; TODO: Il devrait exister quelque chose de plus sur. --drkm (defun eeec-title-to-filename (title &optional num) "Return a valid filename based on an EEEC title." (concat (replace-regexp-in-string "[-!?.,;: ]" "_" <--| (replace-regexp-in-string "_+" "_" <---- Ca concat dans l'autre sens, vaudrait pas mieux inverser? (replace-regexp-in-string "_$" "" <--| (replace-regexp-in-string "ç" "c" (replace-regexp-in-string "[âäà]" "a" (replace-regexp-in-string "[êëéè]" "e" (replace-regexp-in-string "[ôö]" "o" (replace-regexp-in-string "[îï]" "i" (replace-regexp-in-string "[ûüù]" "u" title))))))))) (or num "") <---- Je pige pas 'or' dans l'intro, faut que je reprenne calmement... ".eeec"))
;; FIXME: Ceci doit aller soit dans .emacs, soit en tant que form ;; top-level dans la bibliotheque EEEC. --drkm (global-set-key "C-cr" 'create-new-eeec)
Ca non plus, je pige pas bien encore, à revoir.
En gros, .eeec est un cousin de .abc, le programme c'est abcm2ps. C'est avec ça que j'écris mes partitions (de musique). J'en avais en peut plein les bottes de reprendre à chaque fois le début, alors....
Merci en attendant, Eric
Florent Georges
Eric Reinbold wrote:
"Florent Georges" writes:
J'ai une erreur depuis: Symbol's function definition is void: eeec-prompt-infos
As-tu bien evalue toutes les formes ? Notamment tous les 'defun' ? Et bien sur, plus precisement, la definition de 'eeec-prompt-infos' ?
> (or num "") <---- Je pige pas 'or' dans l'intro, faut que je rep renne calmement... > ".eeec"))
'or' est une forme speciale qui retourne le premier de ses argument qui est non-nil, sans evaluer les arguments suivants. donc dans ce cas-ci, elle evalue d'abord 'num'. S'il est non-nil, elle "retourne" la valeur de 'num'. Sinon, elle evalue l'argument suivant, qui est non-nil puisqu'il s'agit de la chaine "", et retourne donc "".
> ;; FIXME: Ceci doit aller soit dans .emacs, soit en tant que form > ;; top-level dans la bibliotheque EEEC. --drkm > (global-set-key "C-cr" 'create-new-eeec)
Ca non plus, je pige pas bien encore, à revoir.
Si tu as un fichier separe pour definir tes fonctions, mais que tu veux que cette sequence soit definie avant le chargement de ce fichier, tu inseres l'appel ci-dessus dans ton .emacs, qui lui est lu a chaque demarrage. Tu ajoutes :
(autoload 'create-new-eeec "eeec")
et Emacs s'occupe de charger le fichier a sa premiere utilisation.
En gros, .eeec est un cousin de .abc, le programme c'est abcm2ps. C'est avec ça que j'écris mes partitions (de musique). J'en avais en peut plein les bottes de reprendre à chaque fois le déb ut, alors....
Je ne suis pas certain, mais il semble qu'il te faille un mode majeur. Ce n'est pas complique a mettre en place, et une fois fait, c'est plus simple a developper car il y a moins d'interraction avec le contexte global.
Mais si je me souviens bien j'ai vu justement une 'eeec-mode' passer il ya peu ici meme. Si tu veux que l'on jette un oeil a ce que tu as pour l'instant, met ton fichier en ligne.
--drkm
Eric Reinbold wrote:
"Florent Georges" writes:
J'ai une erreur depuis:
Symbol's function definition is void: eeec-prompt-infos
As-tu bien evalue toutes les formes ? Notamment tous les 'defun' ?
Et bien sur, plus precisement, la definition de 'eeec-prompt-infos' ?
> (or num "") <---- Je pige pas 'or' dans l'intro, faut que je rep renne calmement...
> ".eeec"))
'or' est une forme speciale qui retourne le premier de ses argument
qui est non-nil, sans evaluer les arguments suivants. donc dans ce
cas-ci, elle evalue d'abord 'num'. S'il est non-nil, elle "retourne"
la valeur de 'num'. Sinon, elle evalue l'argument suivant, qui est
non-nil puisqu'il s'agit de la chaine "", et retourne donc "".
> ;; FIXME: Ceci doit aller soit dans .emacs, soit en tant que form
> ;; top-level dans la bibliotheque EEEC. --drkm
> (global-set-key "C-cr" 'create-new-eeec)
Ca non plus, je pige pas bien encore, à revoir.
Si tu as un fichier separe pour definir tes fonctions, mais que tu
veux que cette sequence soit definie avant le chargement de ce fichier,
tu inseres l'appel ci-dessus dans ton .emacs, qui lui est lu a chaque
demarrage. Tu ajoutes :
(autoload 'create-new-eeec "eeec")
et Emacs s'occupe de charger le fichier a sa premiere utilisation.
En gros, .eeec est un cousin de .abc, le programme c'est abcm2ps.
C'est avec ça que j'écris mes partitions (de musique).
J'en avais en peut plein les bottes de reprendre à chaque fois le déb ut, alors....
Je ne suis pas certain, mais il semble qu'il te faille un mode
majeur. Ce n'est pas complique a mettre en place, et une fois fait,
c'est plus simple a developper car il y a moins d'interraction avec le
contexte global.
Mais si je me souviens bien j'ai vu justement une 'eeec-mode' passer
il ya peu ici meme. Si tu veux que l'on jette un oeil a ce que tu as
pour l'instant, met ton fichier en ligne.
J'ai une erreur depuis: Symbol's function definition is void: eeec-prompt-infos
As-tu bien evalue toutes les formes ? Notamment tous les 'defun' ? Et bien sur, plus precisement, la definition de 'eeec-prompt-infos' ?
> (or num "") <---- Je pige pas 'or' dans l'intro, faut que je rep renne calmement... > ".eeec"))
'or' est une forme speciale qui retourne le premier de ses argument qui est non-nil, sans evaluer les arguments suivants. donc dans ce cas-ci, elle evalue d'abord 'num'. S'il est non-nil, elle "retourne" la valeur de 'num'. Sinon, elle evalue l'argument suivant, qui est non-nil puisqu'il s'agit de la chaine "", et retourne donc "".
> ;; FIXME: Ceci doit aller soit dans .emacs, soit en tant que form > ;; top-level dans la bibliotheque EEEC. --drkm > (global-set-key "C-cr" 'create-new-eeec)
Ca non plus, je pige pas bien encore, à revoir.
Si tu as un fichier separe pour definir tes fonctions, mais que tu veux que cette sequence soit definie avant le chargement de ce fichier, tu inseres l'appel ci-dessus dans ton .emacs, qui lui est lu a chaque demarrage. Tu ajoutes :
(autoload 'create-new-eeec "eeec")
et Emacs s'occupe de charger le fichier a sa premiere utilisation.
En gros, .eeec est un cousin de .abc, le programme c'est abcm2ps. C'est avec ça que j'écris mes partitions (de musique). J'en avais en peut plein les bottes de reprendre à chaque fois le déb ut, alors....
Je ne suis pas certain, mais il semble qu'il te faille un mode majeur. Ce n'est pas complique a mettre en place, et une fois fait, c'est plus simple a developper car il y a moins d'interraction avec le contexte global.
Mais si je me souviens bien j'ai vu justement une 'eeec-mode' passer il ya peu ici meme. Si tu veux que l'on jette un oeil a ce que tu as pour l'instant, met ton fichier en ligne.