Index: txtdb/nada3/First_Sheet.dat ================================================================== --- txtdb/nada3/First_Sheet.dat +++ txtdb/nada3/First_Sheet.dat @@ -72,11 +72,11 @@ N 91 O 79 P 68 Q 51 -[2nd row] +[2nd_row] A 34.299999999999997 B 60 C 90 D 116 E 121 @@ -91,11 +91,11 @@ N 90 O 78 P 63 Q 51 -[3rd row] +[3rd_row] A 34.100000000000001 B 42 C 57 D 69 E 73 @@ -110,11 +110,11 @@ N 88 O 77 P 64 Q 51 -[4th row] +[4th_row] A 34 B 39 C 46 D 52 E 54 @@ -129,11 +129,11 @@ N 81 O 72 P 62 Q 51 -[Exit ] +[Exit] A 34 B 68 C 68 D 68 E 68 Index: txtdb/txtdb.scm ================================================================== --- txtdb/txtdb.scm +++ txtdb/txtdb.scm @@ -337,10 +337,38 @@ (if (null? tal) #f (loop (car tal)(cdr tal))))))) #f))) +;; call with proc = car to get row names +;; call with proc = cadr to get col names +(define (get-rowcol-names path sheet proc) + (let ((fname (conc path "/" sheet ".dat"))) + (if (file-exists? fname) + (let ((dat (read-dat fname))) + (if (null? dat) + #f + (let loop ((hed (car dat)) + (tal (cdr dat)) + (res '())) + (let* ((row-name (proc hed)) + (newres (if (not (member row-name res)) + (cons row-name res) + res))) + (if (null? tal) + (reverse newres) + (loop (car tal)(cdr tal) newres)))))) + #f))) + +(define (get-col-names path sheet) + (let ((fname (conc path "/" sheet ".dat"))) + (if (file-exists? fname) + (let ((dat (read-dat fname))) + (if (null? dat) + #f + (map cadr dat)))))) + (define (edit-refdb path) (let* ((dbname (pathname-strip-directory path)) (tmpf (conc (create-temporary-file dbname) ".gnumeric"))) (if (file-exists? (conc path "/sheet-names.cfg")) (refdb-export path tmpf)) @@ -358,10 +386,12 @@ (edit-refdb (car param))) ((ls) (map print (list-sheets (car param)))))) ((eq? num-params 2) (case action + ((getrownames)(print (string-intersperse (get-rowcol-names (car param)(cadr param) car) " "))) + ((getcolnames)(print (string-intersperse (get-rowcol-names (car param)(cadr param) cadr) " "))) ((import) (let ((fname (car param)) (targname (cadr param))) (import-gnumeric-file fname targname))))) ((eq? num-params 4)