emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] Iterate many tables


From: Johan Ekh
Subject: Re: [Orgmode] Iterate many tables
Date: Fri, 14 May 2010 15:05:29 +0200

Hi,
You're right, I'm actually not using the latest version. It fails to install. I use the version "6.33trans".
When I try to upgrade with Git I get the compilation error:


In org-publish-get-base-files-1:
org-publish.el:407:13:Warning: reference to free variable `sitemap-requested'
org-publish.el:915:1:Error: Invalid read syntax: "#"
make: *** [lisp/org-publish.elc] Error 1


Do you know what is wrong? I checked line 915 in "org-publish.el" but there is
no "#" in that line.

Do you know what is wrong?

Best regards,
Johan

On Fri, May 14, 2010 at 2:32 PM, Carsten Dominik <address@hidden> wrote:
Hi Johan,

I think you are not using the latest version of Org?  Please upgrade.

- Carsten


On May 14, 2010, at 12:07 PM, Johan Ekh wrote:

Hi,
I've tried the functions but I get the error described above.
I've put the functions in my .emacs exactly as written in the mail.
I use the latest org-mode (using Git) and I use emacs 23.1.1 on
a 64-bit openSuse 11.1 linux laptop.

Do the cursor need to be located anywhere specific when executing
the functions? I've tried to execute the functions while having all tables
expanded and the cursor somewhere in the last table.

Best regards,
Johan

On Fri, May 7, 2010 at 9:36 AM, Carsten Dominik <address@hidden> wrote:
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





_______________________________________________
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]