2016-02-14 2 views
-1

это сам написать:Как прочитать файл с использованием функции Common-lisp формата?

(defun test (x) 
    (with-open-file (stream x :if-does-not-exist nil) 
    (let ((read-line-1 (read-line stream)) 
      ((read-line-2 (read-line stream))) 
     (format t "This is the test-1  ~s~%" read-line-1) 
     (format t "This is the test-2  ~s~%" read-line-2)))) 

я просто хочу знать, как прочитать один файл, благодаря

+0

что вы хотите: распечатать (как в заголовке вопроса) или прочитать (как в вопросе)? Непонятно, что вы хотите сделать и какова ваша фактическая проблема. –

ответ

0

У вас есть базовый опечатка в коде, у вас есть дополнительные скобки вокруг связывания для read-line-2. То, что вы, вероятно, хотите,

(let ((read-line-1 (read-line-stream)) 
     (read-line-2 (read-line-stream))) ... 

Если ввести код, который вы размещены в редакторе, который автоматически отступы Lisp код в соответствии со стандартом, вы увидите, что ваши format линии на самом деле просят связать переменную с именем формата. И если вы попытаетесь скомпилировать отправленный вами код, ваш компилятор, скорее всего, будет жаловаться, что (read-line-2 ... не является символом.

Если вы исправите эту дополнительную скобку, вторая часть вашей проблемы может заключаться в том, что аргумент x должен быть «указателем имени пути», который вы, возможно, неправильно указали для своей реализации.

(test-2 #P"/home/user/fammmm/foo.txt") 

может быть то, что вы хотите.

Смежные вопросы