मैं लगभग 50,000 रिकॉर्ड के छोटे डेटाबेस को बनाए रखने के विचार के साथ पीटर सिबेल की पुस्तक Practical Common Lisp के Simple Database अनुभाग को पढ़ रहा था। मैंने सोचा कि Emacs में ऐसा करना एक दिलचस्प, और उपयोगी, व्यायाम हो सकता है। Emacs Lisp कुछ notable differences को छोड़कर सीएल के साथ कुछ हद तक संगत है। प्रारूप उपरोक्त उदाहरण में उपयोग किया गया फ़ंक्शन एक बड़ा अंतर है।Emacs में डेटाबेस बनाना और बनाए रखना?
यहां वह कोड है जिसमें सीएल में डेटाबेस बनाने, सहेजने और लोड करने के लिए आवश्यक सब कुछ शामिल है। क्या इसे Emacs में अच्छी तरह से काम करने के लिए संशोधित किया जा सकता है? मैंने को और का चयन किया जहां फ़ंक्शंस, लेकिन मैं उन्हें शामिल करना चाहता हूं। शायद डेटाबेस बनाने और बनाए रखने का एक बेहतर Emacs तरीका है? निजी तौर पर, मैं इसे सीएल सीखने और मौजूदा समस्या को हल करने के लिए एक अभ्यास के रूप में उपयोग कर रहा हूं।
;; Simple Common Lisp database ;; http://www.gigamonkeys.com/book/practical-a-simple-database.html ;; (defvar *db* nil) (defun make-cd (title artist rating ripped) (list :title title :artist artist :rating rating :ripped ripped)) (defun add-record (cd) (push cd *db*)) (defun dump-db() (dolist (cd *db*) (format t "~{~a:~10t~a~%~}~%" cd))) (defun save-db (filename) (with-open-file (out filename :direction :output :if-exists :supersede) (with-standard-io-syntax (print *db* out)))) (defun load-db (filename) (with-open-file (in filename) (with-standard-io-syntax (setf *db* (read in))))) ; === ; ; Add some records ; (add-record (make-cd "Roses" "Kathy Mattea" 7 t)) (add-record (make-cd "Fly" "Dixie Chicks" 8 t)) (add-record (make-cd "Home" "Dixie Chicks" 9 t)) ; (dump-db) ; (save-db "cd.db") ; (load-db "cd.db")
आप एक नमूना डाटाबेस फ़ाइल को शामिल किया जा सका
यहाँ कोड से कुछ कार्यों कर रहे हैं? आपके आदेश इंटरैक्टिव नहीं हैं। आप उन्हें कैसे बुलाते हैं? –
मैंने (साथ-temp-buffer ...) अनुभाग निकाला और इसका उपयोग किया। –