From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Creating Org Table using Calc on C-syntax hex integers Date: Thu, 25 Jun 2009 06:42:57 +0200 Message-ID: <75821F7A-4B3D-4C8A-BF91-DC54D4A35A69@gmail.com> References: Mime-Version: 1.0 (Apple Message framework v935.3) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MJgnk-0004ke-SX for emacs-orgmode@gnu.org; Thu, 25 Jun 2009 00:43:08 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MJgng-0004ho-1P for emacs-orgmode@gnu.org; Thu, 25 Jun 2009 00:43:08 -0400 Received: from [199.232.76.173] (port=51652 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MJgnf-0004hf-R7 for emacs-orgmode@gnu.org; Thu, 25 Jun 2009 00:43:03 -0400 Received: from mail-ew0-f220.google.com ([209.85.219.220]:51331) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MJgnf-0008Ri-Ar for emacs-orgmode@gnu.org; Thu, 25 Jun 2009 00:43:03 -0400 Received: by ewy20 with SMTP id 20so1975744ewy.42 for ; Wed, 24 Jun 2009 21:43:02 -0700 (PDT) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Joseph Oswald Cc: emacs-orgmode@gnu.org On Jun 25, 2009, at 12:24 AM, Joseph Oswald wrote: > GNU Emacs 22.2.1 (i386-mingw-nt5.1.2600) of 2008-03-26 on RELEASE > Running on Windows XP Pro > org-version 4.67c > > I have composed a table in org including integers using C-syntax > hexadecimal. > > | Variable Name | Current | Target.exe locn | Address of > | | > | | Source | | reference > | Delta | > |---------------------------+---------+-----------------+------------ > +--------| > | read_thread_func | 0x11450 | 0x11450 | 0x113b8 > | | > | MainWndProc | 0x18190 | 0x18190 | 0x11284 > | | > | l_bData | 0x1d1b8 | 0x1d194 | 0x187d8 > | 0x24 | > > I would like to create a formula that causes the difference between > two columns in this format to be calculated and displayed (preferably, > but not necessarily) in the same C-syntax, in the Delta column. (The > 0x24 was calculated by hand in the above excerpt) > > The file itself is primarily an org file, not a C file, and I would > prefer to keep the choice of C-syntax for Calc localized to this > particular .org file, or even better, to this particular table. > > I have tried persuading the embedded calc mode to use the C "language > mode" for the table, it seems like there should be a line like > > % [calc-mode: language-mode: c] > > or % [calc-mode: calc-language-option: c] > > or some other thing that could be placed somewhere near the table or > in the file to affect how Calc treats the numbers in the table, but I > can't seem to figure how to make that happen. I find the Calc > documentation of this stuff to be a little confusing, as to which > names in the source and/or documentation apply to which context. > > It appears from the .el source that the settings specific to org-calc > (i.e., following a semicolon after the formula are hard-coded to the > limited set described in "Formula Syntax for Calc"), not including > this setting. > > 1) Is it possible to do this? > 2) If so, how? Since you like to have C syntax, I am not sure how to do this with calc. But you can always hach your way using a lisp formula instead: | Variable Name | Current | Target.exe locn | Address of | | | | Source | | reference | Delta | |------------------+---------+-----------------+------------+-------| | read_thread_func | 0x11450 | 0x11450 | 0x113b8 | 0x0 | | MainWndProc | 0x18190 | 0x18190 | 0x11284 | 0x0 | | l_bData | 0x1d1b8 | 0x1d194 | 0x187d8 | 0x24 | #+TBLFM: $5='(format "0x%x" (- (read (concat "#" (substring $2 1))) (read (concat "#" (substring $3 1))))) HTH This formula looks more complicated than it really is, because it has to convert the number into Lisp syntax #x11450 before reading it. - Carsten > > Thanks for your help. > > --Joe > > P.S. The org-mode info file "Feedback node" suggests mailing Carsten > Dominik directly for "questions, remarks, or ideas" instead of this > mailing list. I assumed this list was a more appropriate target. > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode