(defun nmeatodec() (interactive) (goto-char (point-min)) (while (re-search-forward "^[0-9]" nil t) ;; find lat, insert dec point, divide 60, insert (forward-char 1) (insert ".") ;; remove next . (re-search-forward "\\." nil t) (delete-char -1) ;; grab region and /60. (setq pnt (- (point) 2)) (re-search-forward "," nil t) (setq decstring (buffer-substring pnt (- (match-end 0) 1))) (setq dec (/ (string-to-number decstring) 60)) ;; kill and insert (kill-region pnt (- (match-end 0) 1)) (goto-char pnt) (insert (number-to-string dec)) (re-search-forward "," nil t) (forward-char 3) (insert ".") ;; remove next . (re-search-forward "\\." nil t) (delete-char -1) ;; same again (setq pnt (- (point) 2)) (re-search-forward "," nil t) (setq decstring (buffer-substring pnt (- (match-end 0) 1))) (setq dec (/ (string-to-number decstring) 60.0)) ;; now get rid of . (kill-region pnt (- (match-end 0) 1)) (goto-char pnt) (insert (number-to-string dec)) (re-search-backward "\\." nil t) (delete-char 1) (forward-line 1) (beginning-of-line)))