Legal notices:
- This sample program is intended as a demonstration only.
- The program is available on an 'as-is' basis with no warranties, either expressed or implied, of any kind.
- You may use the program only at your own risk.
- No license or rights to the program are either given or forfeited.
Everything that follows is direct and unaltered output from the LISP Generator.

; This program was created on December 9 2006 using the LISP Generator.

; Define the function (the program).
(defun c:FILE2BLOCKS ( / FN1 FL1 DATA-STR I DATA-LIST XX YY ZZ ATT1 ATT2 PT1 OLDCE OLDERR OLDTE)
  ; Save the current value of cmdecho then redefine it.
  (setq OLDCE (getvar "cmdecho"))
  (setvar "cmdecho" 1)
  ; Save the current value of texteval then set it to 1
  (setq OLDTE (getvar "texteval"))
  (setvar "texteval" 1)
  ; Save the current value of the error handling subroutine then redefine it.
  (setq OLDERR *error*)
  (defun *error* (errmes)
    (princ (strcat "\nExecution of FILE2BLOCKS halted by the following error: " ERRMES))
    (setvar "cmdecho" OLDCE)
    (setq *error* OLDERR)
    (prin1)
  )
  ;(setq *error* nil)
  ; NOTE: to turn error handling off, erase the semicolon in the line above.

  ; GET a FILE from the user and store it in FN1.
  (setq FN1 (getfiled "File to read" "" "" 12))

  ; OPEN file FN1 for reading as FL1.
  (setq FL1 (open FN1 "r"))

  ; BEGIN LOOP loop1.
  ; LOOP by STEPPING THROUGH the LINES of the FILE FL1, storing them in DATA-STR.
  (setq I -1)
  (while (setq DATA-STR (read-line FL1))
    (setq I (1+ I))

    ; OPERATION - store the result in DATA-LIST.  
    (setq DATA-LIST (READ (STRCAT "(" DATA-STR ")")))

    ; OPERATION - store the result in XX.  
    (setq XX (NTH 0 DATA-LIST))

    ; OPERATION - store the result in YY. 
    (setq YY (NTH 1 DATA-LIST))

    ; OPERATION - store the result in ZZ.  
    (setq ZZ (NTH 2 DATA-LIST))

    ; OPERATION - store the result in ATT1.  
    (setq ATT1 (NTH 3 DATA-LIST))

    ; OPERATION - store the result in ATT2.  
    (setq ATT2 (NTH 4 DATA-LIST))

    ; OPERATION - store the result in PT1.  
    (setq PT1 (LIST XX YY ZZ))

    ; Input to AutoCAD's command line.
    (command
      "insert"
      "test"
      PT1
      ""
      ""
      ""
      ATT1
      ATT2
    )

  ) ; END LOOP loop1.
  ; Reset "cmdecho" to previous value.
  (setvar "cmdecho" OLDCE)
  ; Reset "texteval" to previous value.
  (setvar "texteval" OLDTE)
  ; Reset *error* to previous definition.
  (setq *error* OLDERR)
  ; Exit quietly (no return value.)
  (prin1)
)