(defun c:test_1 (/ f timer)
;;(c:test_1)
;; ElpanovEvgeniy
(defun pars (s f f1)
(if s
(progn
((lambda (l)
(if (< (car l) (cadr l))
(min_max (car l) (cadr l) (cddr l) f1)
(min_max (cadr l) (car l) (cddr l) f1)
) ;_ if
) ;_ lambda
(read (strcat "(" (VL-STRING-TRANSLATE "," " " s) ")"))
)
(pars (read-line f) f f1)
) ;_ progn
(progn
(close f)
(close f1)
) ;_ progn
) ;_ if
) ;_ defun
(defun min_max (mi ma l f)
(if l
(if (< (car l) mi)
(min_max (car l) ma (cdr l) f)
(if (> (car l) ma)
(min_max mi (car l) (cdr l) f)
(min_max mi ma (cdr l) f)
) ;_ if
) ;_ if
(write-line (strcat (itoa mi) " " (itoa ma)) f)
) ;_ if
) ;_ defun
(setq timer (getvar "millisecs"))
(pars (read-line (setq f (open "D:\\numbers.csv" "R"))) f (open "D:\\result.csv" "W"))
(princ
(strcat
"Process took "
(rtos (/ (- (getvar "millisecs") timer) 1000.0) 2 4)
" seconds."
) ;_ strcat
) ;_ princ
(princ)
) ;_ defun
(defun c:test_2 (/ f f1 timer)
;;(c:test_2)
;; ElpanovEvgeniy
(defun pars (s f)
(if s
(cons (read (strcat "(" (VL-STRING-TRANSLATE "," " " s) ")"))
(pars (read-line f) f)
) ;_ cons
(close f)
) ;_ if
) ;_ defun
(defun min_max (mi ma l f)
(if l
(if (< (car l) mi)
(min_max (car l) ma (cdr l) f)
(if (> (car l) ma)
(min_max mi (car l) (cdr l) f)
(min_max mi ma (cdr l) f)
) ;_ if
) ;_ if
(write-line (strcat (itoa mi) " " (itoa ma)) f)
) ;_ if
) ;_ defun
(setq timer (getvar "millisecs"))
(setq f1 (open "D:\\numbers.csv" "R"))
(setq f (open "D:\\result.csv" "W"))
(foreach l (pars (read-line f1) f1)
(if (< (car l) (cadr l))
(min_max (car l) (cadr l) (cddr l) f)
(min_max (cadr l) (car l) (cddr l) f)
) ;_ if
) ;_ foreach
(close f)
(princ
(strcat
"Process took "
(rtos (/ (- (getvar "millisecs") timer) 1000.0) 2 4)
" seconds."
) ;_ strcat
) ;_ princ
(princ)
) ;_ defun
(defun c:max-min (/ file1 file2 lin linlist max1 min1 timer)
;;(c:max-min)
;;Jeff_M
(defun Split (str / i j lst)
(setq i 0)
(while (setq j (vl-string-search "," str i))
(setq lst (cons (substr str (1+ i) (- j i)) lst)
i (1+ j)
) ;_ setq
) ;_ while
(reverse (cons (substr str (1+ i)) lst))
) ;_ defun
;;;main function
(setq timer (getvar "millisecs"))
(if
(setq
file1 (open "D:\\numbers.csv" "R")
) ;_ setq
(progn
(setq file2
(open "D:\\results.csv"
"W"
) ;_ open
) ;_ setq
(while (setq lin (read-line file1))
(setq linlist (mapcar 'atoi (split lin)))
(setq min1 (apply 'min linlist)
max1 (apply 'max linlist)
) ;_ setq
(write-line (strcat (itoa max1) "," (itoa min1)) file2)
) ;_ while
(close file1)
(close file2)
(princ
(strcat "Process took "
(rtos (/ (- (getvar "millisecs") timer) 1000.0) 2 2)
" seconds."
) ;_ strcat
) ;_ princ
) ;_ progn
) ;_ if
(princ)
) ;_ defun
(defun c:minmax (/ #HI #LOW F1 L1 LINEM NEWFILE TIMER)
;;(c:minmax)
;; Andrea
(setq timer (getvar "millisecs"))
(setq f1 (open "D:\\numbers.csv"
"r"
) ;_ open
l1 (read-line f1)
) ;_ setq
(if l1
(setq newfile (open "D:\\result.txt" "w"))
) ;_ if
(while l1
(setq lineM (read (strcat "(" (acet-str-replace "," " " l1) ")"))
#low (car (vl-sort lineM '<))
#hi (car (vl-sort lineM '>))
) ;_ setq
(write-line (strcat (rtos #hi) " " (rtos #low)) newfile)
(setq l1 (read-line f1))
) ;_ while
(close f1)
(close newfile)
(princ
(strcat "Process took "
(rtos (/ (- (getvar "millisecs") timer) 1000.0) 2 2)
" seconds."
) ;_ strcat
)
(princ)
) ;_ defun
(defun c:test (/ FILEBASE FILEDATA FILENAME HANDLE LST PATH STREAM)
;; CAB
;;(c:test)
(defun sparser1 (str delim / ptr lst)
;; parser by CAB
(while (setq ptr (vl-string-search delim str))
(setq lst (cons (substr str 1 ptr) lst))
(setq str (substr str (+ ptr 2)))
) ;_ while
(reverse (cons str lst))
) ;_ defun
(setq timer (getvar "millisecs"))
(if
(and
(setq filename "D:\\numbers.csv")
(setq handle (open filename "r"))
) ;_ and
(progn
(while (setq stream (read-line handle))
(setq FileData (cons stream FileData))
) ; while
(close handle)
) ;_ progn
) ;_ if
(if FileData
(progn
(setq path (vl-filename-directory filename)
filebase (vl-filename-base filename)
handle (open (strcat path "\\" filebase "-out.csv") "w")
) ;_ setq
(mapcar
(function
(lambda (x)
(setq lst
(mapcar
(function
(lambda (y)
(atoi y)
) ;_ lambda
) ;_ function
(sparser1 x ",")
) ;_ mapcar
) ;_ setq
(princ (apply 'max lst) handle)
(princ "-" handle)
(princ (apply 'min lst) handle)
(princ "\n" handle)
) ;_ lambda
) ;_ function
FileData
) ;_ mapcar
(close handle)
(princ
(strcat "Process took "
(rtos (/ (- (getvar "millisecs") timer) 1000.0) 2 2)
" seconds."
) ;_ strcat
) ;_ princ
) ;_ progn
) ;_ if
(princ)
) ;_ defun
Check:
(c:test) ;; CAB
(c:minmax) ;; Andrea
(c:max-min) ;;Jeff_M
(c:test_2) ;; ElpanovEvgeniy
(c:test_1) ;; ElpanovEvgeniy
;
VLX-Application packed D:/Work/Project/lib/test/test.VLX
_$
Process took 0.83 seconds.
Process took 1.67 seconds.
Process took 0.84 seconds.
Process took 0.469 seconds.
Process took 0.5 seconds.
check 2
_$
Process took 0.81 seconds.
Process took 1.66 seconds.
Process took 0.88 seconds.
Process took 0.469 seconds.
Process took 0.5 seconds.
check 3
_$
Process took 0.83 seconds.
Process took 1.64 seconds.
Process took 0.88 seconds.
Process took 0.453 seconds.
Process took 0.5 seconds.