2 votes

Comment écrire une fonction elisp renvoyant le contenu d'un fichier sous forme de chaîne de caractères ?

Eh bien, le titre dit tout;). Bien sûr, je peux créer un nouveau tampon, insert-file-contents dedans, puis le mettre dans une variable, tuer le tampon et renvoyer la variable - mais cela semble excessif. Y a-t-il un meilleur moyen?

Remarque. Mon cas d'utilisation est une déclaration .emacs de smtpmail-auth-credentials - j'ai mon mot de passe dans un fichier quelconque, et je ne veux pas le remettre dans .emacs.

6voto

Trey Jackson Points 49816

Je crois qu'il n'y a pas de moyen facile de faire ce que vous voulez sans impliquer des tampons. J'utiliserais un tampon temporaire comme ceci:

(defun file-contents (filename)
  (interactive "fTrouver le fichier: ")
  (with-temp-buffer
    (insert-file-contents filename)
    (buffer-substring-no-properties (point-min) (point-max))))

Vous voudrez peut-être utiliser insert-file-contents-literally si vous ne voulez pas de décodage de format, de décompression automatique, etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X