(defun l () (load "gyak4.txt")) (defun run () (menu) ) (defun menukiir () (write-line "Menü:") (write-line "1 - felvitel") (write-line "2 - listázás") (write-line "9 - kilépés") ) (defun menu () (menukiir) (do ( ; első rész... ( ; első változó (lehetne több is...) i ; ciklus változó (read) ; kezdeti érték (read) ; "léptetés" a következőre ) ) ( ; második rész (equal i 9) ; kilépési feltétel t ; kilépési érték ) ; harmadik rész, a "törzs" (cond ((equal i 1)(felvitel)) ((equal i 2)(listazas)) ((equal i 9)(kilepes)) (t (write-line "Nincs ilyen menüpont")) ) (menukiir) ) ; end do ) ; end menu (defun felvitel () (write-line "idézőjelek közti stringek felvitele nil () -ig...") (write-string "File neve:") (setq fn (read-line)) (print fn) (setq fh (open fn :direction :output :if-does-not-exist :create)) (let ((no 1)) (loop (format t "~D. elem:" no) (setq elem (read)) (when (equal elem nil) (return)) (print elem) (write-line elem fh) ; (write elem :stream fh) - elemenként (akár karakterenként) ; (format fh "~D. elem: ~S ~%" no elem) - formázott kiírás (setq no (+ 1 no)) ) ) (close fh) ) (defun listazas () (write-line "listázás") (write-string "File neve:") (setq fn (read-line)) (print fn) (setq fh (open fn :direction :input)) (let ((no 1)) (loop (setq elem (read-line fh nil 'vege)) ; soronként nil=eof, vege=amit visszaad ; (setq elem (read fh nil 'vege)) - kifejezésenként () ! (when (equal elem 'vege) (return)) (format t "~D. elem: ~S ~%" no elem) (setq no (+ 1 no)) ) ) (close fh) )