emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [babel] Expertise in string manipulation available?


From: Sebastien Vauban
Subject: Re: [O] [babel] Expertise in string manipulation available?
Date: Fri, 12 Aug 2011 00:17:54 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (windows-nt)

Hi Nick,

Nick Dokos wrote:
> Sebastien Vauban <address@hidden> wrote:
>> Hello,
>> 
>> #+TITLE:     String manipulation
>> 
>> * Data
>> 
>> #+tblname: list-of-couples
>> | Me           | @Here  |
>> | Myself and I | @There |
>> 
>> * Successful outcome
>> 
>> I expect the above table to be transformed to those lines:
>> 
>> #+begin_example
>> ---
>> Me
>> @Here
>> ---
>> Myself and I
>> @There
>> #+end_example
>> 
>
> I can do it easily in python except that I don't know how to produce the 
> #+begin/end_example block.
> My results are preceded by colons:
>
> * Data
>
> #+tblname: list-of-couples
> | Me           | @Here  |
> | Myself and I | @There |
>
> #+begin_src python :var table=list-of-couples :exports code :results output 
> :tangle no
>   for row in table:
>       print "---"
>       for i in range(len(row)):
>           print row[i]
> #+end_src
>
> #+results:
> : ---
> : Me
> : @Here
> : ---
> : Myself and I
> : @There

This works like a charm!  Thank you very much...

Would some good soul give me hints on how to make the next code blocks work
similarly in the other languages, I'd take every advice...

>> * First attempt
>> 
>> ** Code and output
>> 
>> #+begin_src awk :stdin list-of-couples :exports code :results output :tangle 
>> no
>> {
>>     print "---";
>>     print $1;
>>     print $2;
>> }
>> #+end_src
>> 
>> #+results:
>> #+begin_example
>> ---
>> Me
>> @Here
>> ---
>> Myself
>> and
>> #+end_example
>> 
>> ** Issue
>> 
>> The first line of the table is perfectly outputted.
>> 
>> The second line is not, because of the space in its first column: $2 refers
>> then to the second word, not to the string of the second column.
>> 
>> * Second attempt
>> 
>> ** Code and output
>> 
>> #+begin_src emacs-lisp :var data=list-of-couples :exports results :results 
>> output :tangle no
>> (mapc
>>  (lambda (item)
>>    (print (format "---\n%s\n%s\n"
>>                   (first item)
>>                   (second item))))
>>  data)
>> #+end_src
>> 
>> #+results:
>> #+begin_example
>> 
>> "---
>> Me
>> @Here
>> "
>> 
>> "---
>> Myself and I
>> @There
>> "
>> #+end_example
>> 
>> ** Issue
>> 
>> Literal double quotes are inserted in the output. Plus blank lines...

Best regards,
  Seb

-- 
Sebastien Vauban




reply via email to

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