(setq abook-file "addressbook.vcf") (setq vcard-dir "vcards") (define (empty-dir dir) (dolist (file (directory dir)) (when (and (!= file ".") (!= file "..") (directory? (append dir "/" file))) (empty-dir (append dir "/" file)) (remove-dir (append dir "/" file))) (when (and (!= file ".") (!= file "..")) (delete-file (append dir "/" file))))) (if (file? vcard-dir) (delete-file vcard-dir)) (if (directory? vcard-dir) (empty-dir vcard-dir) (make-dir vcard-dir 0750)) (setq i 0) (dolist (vcard (find-all "(BEGIN:VCARD\\r?\\n(.+?)\\r?\\n*END:VCARD)" (read-file abook-file) (append $1 "\r\n") 4)) (write-file (append vcard-dir "/" (string (inc i)) ".vcf") vcard)) (exit)