emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Iterate many tables


From: Carsten Dominik
Subject: Re: [Orgmode] Iterate many tables
Date: Fri, 7 May 2010 09:36:57 +0200

Hi,

both functions work without any problem for me, so I do not know what you are doing differently. maybe you ned to describe exactly how you are calling the functions.

- Carsten

On May 6, 2010, at 1:34 PM, T Helms wrote:

Thanks for bringing this up, it would be a useful tool.

I get an error using the functions as well

org-recalculate-all-tables:
org-recalculate-all-tables: Wrong number of arguments: (lambda (function) "Apply FUNCTION to the start of all tables in the buffer." (save-excursion (save-restriction (widen) (goto-char (point- min)) (while (re-search-forward org-table-any-line-regexp nil t) (message "Mapping tables: %d%%" (/ (* 100.0 (point)) (buffer-size))) (beginning-of-line 1) (when (looking-at org-table-line-regexp) (save- excursion (funcall function)) (or (looking-at org-table-line-regexp) (forward-char 1))) (re-search-forward org-table-any-border-regexp nil 1)))) (message "Mapping tables: done")), 2

org-iterate-all-tables:
while: Wrong number of arguments: (lambda (function) "Apply FUNCTION to the start of all tables in the buffer." (save-excursion (save- restriction (widen) (goto-char (point-min)) (while (re-search- forward org-table-any-line-regexp nil t) (message "Mapping tables: %d %%" (/ (* 100.0 (point)) (buffer-size))) (beginning-of-line 1) (when (looking-at org-table-line-regexp) (save-excursion (funcall function)) (or (looking-at org-table-line-regexp) (forward-char 1))) (re-search-forward org-table-any-border-regexp nil 1)))) (message "Mapping tables: done")), 2


On 05/05/2010 03:37 PM, Johan Ekh wrote:



Any idea what could be wrong?



Error meassage:

org-recalculate-all-tables: Wrong number of arguments: #[(function) "ŠŒ~ˆebˆÄÅÆ#ƒ:


Best regards,
Johan






On Fri, Apr 30, 2010 at 5:03 PM, Carsten Dominik <address@hidden > wrote:

On Apr 30, 2010, at 4:07 PM, Johan Ekh wrote:

Hi all,
I have a series of tables in a single file. Each table have some fields that depends on fields in the previous table. Thus, if I change something in the first table, I must go down manually and recalculate (or iterate) each table. Is there a way to recalculate all tables in a file simultaneously?


Hi Johan,

This should work if the dependence is only backwards.

(defun org-recalculate-all-tables ()
  (interactive)
  (org-table-map-tables (lambda () (org-table-recalculate t)) t))

If you have dependencies in both directions, this might work (untested):

(defun org-iterate-all-tables ()
 (interactive)
 (let* ((imax 10)
        (checksum (md5 (buffer-string)))
        c1
        (i imax))
   (catch 'exit
     (while (> i 0)
       (setq i (1- i))
       (org-table-map-tables (lambda () (org-table-recalculate t)) t)
       (if (equal checksum (setq c1 (md5 (buffer-string))))
           (progn
             (message "Convergence after %d iterations" (- imax i))
             (throw 'exit t))
         (setq checksum c1)))
     (error "No convergence after %d iterations" imax))))

If it does, this could be added to org-hacks on Worg.

HTH

- Carsten



_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten







reply via email to

[Prev in Thread] Current Thread [Next in Thread]