Remove lines from a file: Difference between revisions

Content added Content deleted
Line 1,084: Line 1,084:
]
]
]</lang>
]</lang>

=={{header|NewLISP}}==

<lang newlisp>
(context 'ABC)

(define (remove-lines-from-a-file filename start num)
(setf new-content "")
(setf row-counter 0)
(setf start-delete-row start)
(setf end-delete-row (+ start num -1))
(setf file-content (read-file filename))
(setf max-rows (length (parse file-content "\n" 0)))

(cond
((<= start 0)
(println "Start line must be >= 1. Value passed: " start))
((<= num 0)
(println "# of lines to remove must be >= 1. Value passed: " num))
((> start max-rows)
(println "Start line must be <= " max-rows ". Value passed: " start))
((> end-delete-row max-rows)
(println "Not so much lines available to be removed. Max " (- max-rows start-delete-row) ". Value passed: " num))
(true
(dolist (row (parse file-content "\n" 0))
(++ row-counter)
(if (or (< row-counter start-delete-row) (> row-counter end-delete-row))
(setf new-content (append new-content row "\n"))
)
)
(write-file (string filename ".NEW") new-content)
)
)
)

(context 'MAIN)

(ABC:remove-lines-from-a-file "foobar.txt" 8 3)
(exit)
</lang>


=={{header|OCaml}}==
=={{header|OCaml}}==