[REBOL] Re: Help me, Obi Reb Kenobi, you're my only hope!

2002-08-30 Thread Ammon Johnson
Hi, The other suggestions will probably bring you to realise this, but I wanted to make it a little more obvious... When attempting to catch an error and disarm it for your own error handling scheme you will find that using 'set/any is needed rather than a set-word for maximum strength error

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread Tim Johnson
* Brett Handley <[EMAIL PROTECTED]> [020830 05:58]: > > Once you opt for an ActiveX inclusive solution you may as well really > enjoy a > > modern Flash format for all its virtues. > > I agree with you, but it Tim's call he has the need. For me the excercise > has been informative. :^) Hi Guy

[REBOL] Re: Comparing path!

2002-08-30 Thread Carl Read
On 31-Aug-02, Robert M. Muench wrote: > Hi, I'm sure this is again one of those things where I'm just not > smart enough... I would expect 'true instead of 'false with this > code: >>> test: [type contact/company] > == [type contact/company] >>> text: "contact_company" > == "contact_company" >>>

[REBOL] Re: ANN: Planetary defense

2002-08-30 Thread Carl Read
On 31-Aug-02, Cyphre wrote: > Hi Carl, Francesco and all, > for those who are using more than 1 year old version of Rebol/View There's newer versions that work on more than two platforms? (; > I > made a quick patched version of the game. You can run it here: do > http://www.rebol.cz/~cyphre/p

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread Brett Handley
> Earlier, I looked at documentation about this "problem," and it was not to > be a particular problem with earlier versions of Apache. On a lark, I > decided to try the proposed fixes, which meant doing two things. Change the > name of the script to begin with "nph-" meaning non-parsed-headers

[REBOL] Re: help needed from graphics GURUS ?

2002-08-30 Thread Carl Read
On 31-Aug-02, jose wrote: > How can I build a tool to design cool text-based logos > ? > I've used GIMP and it does the job but wouldn't rebol > excel at this, even more than GIMP ? > What font types are available to load and manipulate ? The default fonts, 'font-fixed, 'font-serif and 'font-sa

[REBOL] Re: Comparing path!

2002-08-30 Thread Gabriele Santilli
Hi Scott, On Friday, August 30, 2002, 8:40:07 PM, you wrote: GSJ> Then out of no where it occurred to me that you are using the Beta!!! When GSJ> I fire up the /Core Beta, your script runs fine. Now, I wonder what GSJ> changed??? Paths are evaluated less aggressively in the beta. Regards,

[REBOL] Re: Question on text formatting

2002-08-30 Thread Gabriele Santilli
Hi Anton, On Friday, August 30, 2002, 8:45:44 PM, you wrote: A> That's interesting - if you clear that A> wait-list, windows no longer respond to A> user interface events - mouse-clicks etc. Yup, because DO-EVENTS is just WAIT [], so if you remove the event port from the wait list the event p

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread G. Scott Jones
> Brett wrote: > > The problem I think is that my REBOL script > > does not send any data to the browser until it > > quits. I've tried setting the mode of the output > > port to no-wait, but no change. Can someone > > solve this? From: "Andrew Martin" > I believe that web servers collect all the

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread Andrew Martin
Brett wrote: > The problem I think is that my REBOL script does not send any data to the browser until it quits. I've tried setting the mode of the output port to no-wait, but no change. Can someone solve this? I believe that web servers collect all the output of a CGI program, parse the output,

[REBOL] Re: documenting

2002-08-30 Thread Andrew Martin
jose wrote: > Do you consider that your Values functions are in to the higher documentation standard ? To me, that is the basic way to document proposed by rebol and more than enough (in fact more than basic, because you include Example in many headers and I recall RT has separate files with more

[REBOL] Re: InformIT.com Articles Introduction to Water™ A New Native Web Services

2002-08-30 Thread G. Scott Jones
From: "Gerard Cote" > In a similar way, I am also currently working - shen > free time is left - to find a way to fork a PHP or > PERL script that could launch a REBOL engine for > doing CGI on ISPs HOSTs that don't want to support > REBOL CGI with their APACHE Web server. My > own Linux based ISP

[REBOL] Re: Comparing path!

2002-08-30 Thread Gregg Irwin
Hey Scott, << Then out of no where it occurred to me that you are using the Beta!!! When I fire up the /Core Beta, your script runs fine. Now, I wonder what changed??? >> Aaaa! Dang. You know, I've been using it for so long now that I *very* rarely go back and test these quickie things, whi

[REBOL] Re: documenting

2002-08-30 Thread Gregg Irwin
<< ViewRef ? Do you mean Ref-Words ? >> Yes. Sorry. << Different objectives. I've checked Volker's snippet's viewer and it's great.>> Volker always comes up with cool, useful stuff. --Gregg -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with "unsubscribe" in the

[REBOL] Re: Question on text formatting

2002-08-30 Thread Anton
That's interesting - if you clear that wait-list, windows no longer respond to user interface events - mouse-clicks etc. Anton. > insert tail system/ports/wait-list port > ; and your port will be automatically "waited" every time > ; you call WAIT, i.e. also when you show a window; t

[REBOL] Re: InformIT.com Articles Introduction to Water™ A New Native Web Services

2002-08-30 Thread Gerard Cote
Hi Jason, You wrote: I can see you are fired up about something potent, modular, edu-oriented and rebolistic. > Please can you try to explain in a couple of paragraphs your main idea. > I hope nothing less than to do one of these 2 things : 1) permit collaboration with some existing eLearning

[REBOL] Re: Comparing path!

2002-08-30 Thread G. Scott Jones
Hi, Gregg, From: "Gregg Irwin" > Sorry I didn't provide a usage > example. Let me know if the > following example helps. > >> (select test 'type) = path-from-dlm-string text "_" > == true That was what I was doing. Even with a fresh REBOL session, I get: >> (select test 'type) = path-from-d

[REBOL] help needed from graphics GURUS ?

2002-08-30 Thread jose
How can I build a tool to design cool text-based logos ? I've used GIMP and it does the job but wouldn't rebol excel at this, even more than GIMP ? What font types are available to load and manipulate ? Can anybody point to some examples ? Thanks _

[REBOL] Re: Comparing path!

2002-08-30 Thread Robert M. Muench
> -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > On Behalf Of Gregg Irwin > Sent: Friday, August 30, 2002 6:47 PM > To: [EMAIL PROTECTED] > Subject: [REBOL] Re: Comparing path! > When you do to-path on the string, it doesn't parse the > string and create a p

[REBOL] Re: Comparing path!

2002-08-30 Thread Robert M. Muench
> -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > On Behalf Of Gabriele Santilli > Sent: Friday, August 30, 2002 7:53 PM > To: Robert M. Muench > Subject: [REBOL] Re: Comparing path! > TO-PATH is not doing what you expect it to do (maybe this > is a bug, w

[REBOL] Re: documenting

2002-08-30 Thread jose
> I think a good starting point for this would be > something like ViewRef. Not > that HTML or PDF aren't good, but the "active > documents" that REBOL is so > good at (EasyVID, etc.), are head and shoulders > above them IMO. I have some > tool ideas along those lines, but haven't had time > to pu

[REBOL] Re: InformIT.com Articles Introduction to Water™ A New Native Web Services

2002-08-30 Thread Gerard Cote
Hi Robert, You wrote : > Hi, might be the message was to cryptic... I didn't got in the first > reading. -- Gerard - You are completely right Robert, since I have some difficulty to cope with my English, I often have to take long and winding roads to express my idea

[REBOL] Re: Comparing path!

2002-08-30 Thread Gregg Irwin
LOAD! DOH! See, I *knew* there was an eaiser way. :) --Gregg -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with "unsubscribe" in the subject, without the quotes.

[REBOL] Re: Comparing path!

2002-08-30 Thread Gregg Irwin
Robert, Scott, et al << I couldn't get Gregg's to work; maybe I misunderstand its use; maybe I'm not reading carefully enough again! Very common theme...>> Sorry I didn't provide a usage example. Let me know if the following example helps. --Gregg >> path-from-dlm-string: func [string dlm /loc

[REBOL] Re: system/ports/echo

2002-08-30 Thread Gabriele Santilli
Hi RebOldes, On Friday, August 30, 2002, 11:40:54 AM, you wrote: R> does anybody know what's the system/ports/echo ? (it's set to none) >> help echo USAGE: ECHO target DESCRIPTION: Copies console output to a file. ECHO is a function value. ARGUMENTS: target -- (Type: file

[REBOL] Re: multipart/form-data

2002-08-30 Thread Gabriele Santilli
Hi Andreas, On Friday, August 30, 2002, 7:22:32 PM, you wrote: AB> When you store some REBOL code into a vanilla snip, look out for {}'s AB> in the original code, as these are valid string delimiters in REBOL AB> but special characters in vanilla. BTW Andres and Chris, what about using somethi

[REBOL] Re: Comparing path!

2002-08-30 Thread Anton
Ok, so this does essentially the same, but it does it in place and doesn't use any extra words: (select test 'type) = to-path foreach str parse text "_" [append [] to-word str] except for 'str, which is tucked away safely in the foreach's context. Anton. > << I'm sure this is a

[REBOL] Re: Comparing path!

2002-08-30 Thread Gabriele Santilli
Hi Robert, On Friday, August 30, 2002, 6:21:02 PM, you wrote: >>> (select test 'type) = (to-path replace text "_" "/") TO-PATH is not doing what you expect it to do (maybe this is a bug, what do others think?); use LOAD instead. >> p: 'a/b/c/d == a/b/c/d >> p/1 == a >> p/2 == b >> p/3 == c

[REBOL] Re: Question on text formatting

2002-08-30 Thread Gabriele Santilli
Hi Andy, On Friday, August 30, 2002, 6:05:37 PM, you wrote: AF> hate polling :-) ) Is there any way to set rebol up to trigger a call AF> to a routine automatically if any characters are received at the port ? You bet. :-) port: open tcp://etc. port/awake: func [port] [ ; thi

[REBOL] Re: system/ports/echo

2002-08-30 Thread Gregg Irwin
Hi Oldes, << does anybody know what's the system/ports/echo ? (it's set to none) >> If you say: echo %my-file.txt output to the console will be echoed to the file. Then you can say: echo none to turn it off. Handy for catching the output of PROBE or SOURCE. --Gregg -- To u

[REBOL] Re: multipart/form-data

2002-08-30 Thread Andreas Bolka
-- comment [ ; for Jason only When you store some REBOL code into a vanilla snip, look out for {}'s in the original code, as these are valid string delimiters in REBOL but special characters in vanilla. Use my original code as posted on the mailing list as you've one of these "escpaing mist

[REBOL] Re: system/ports/echo

2002-08-30 Thread G. Scott Jones
From: "RebOldes" > does anybody know what's the system/ports/echo ? (it's set to none) Hi, Oldes, Looks like it is currently used in the echo command: >> source echo echo: func [ "Copies console output to a file." [catch] target [file! none!] ][ if port? system/ports/echo [

[REBOL] Re: Comparing path!

2002-08-30 Thread G. Scott Jones
Hi, Robert, From: "Robert M. Muench" > Hi, I'm sure this is again one of those things where I'm just not smart > enough... I would expect 'true instead of 'false with this code: > > >> test: [type contact/company] > == [type contact/company] > >> text: "contact_company" > == "contact_company" > >

[REBOL] system/ports/echo

2002-08-30 Thread RebOldes
Hello rebol-list, does anybody know what's the system/ports/echo ? (it's set to none) -- >>do [send to-email join 'oliva [EMAIL PROTECTED] "BESsssT REgArrrD, RebOldes"] -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with "unsubscribe" in the subject, withou

[REBOL] Re: locale

2002-08-30 Thread RebOldes
Hello Andrew, Monday, August 26, 2002, 7:22:59 AM, you wrote: AM> Just thinking out loud. AM> What about an automatic language translation of Rebol code? With a language AM> field set in the header of the script? Like: AM> Rebol [ AM> Name: 'Test AM> Language: 'English; Could be Cz

[REBOL] Re: Question on text formatting

2002-08-30 Thread Gregg Irwin
Hi Andy, << Let's say I'm waiting on a tcp port for a character string. Currently, in my clock update feel, I'm checking if there are any characters available on the port. This works pretty well, but isn't elegant. (I hate polling :-) ) Is there any way to set rebol up to trigger a call to a

[REBOL] Re: Comparing path!

2002-08-30 Thread Gregg Irwin
Hi Robert, << I'm sure this is again one of those things where I'm just not smart enough... I would expect 'true instead of 'false with this code: >> test: [type contact/company] == [type contact/company] >> text: "contact_company" == "contact_company" >> (select test 'type) = (to-path replace t

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread Gabriele Santilli
Hi Scott, On Friday, August 30, 2002, 11:26:13 AM, you wrote: >> I am still a bit confused by this thread. GSJ> Me too! ;-) I think Tim is trying to send a sequence of jpeg images to the browser, so that it looks like a video. (I wonder, wouldn't sending a video be simpler?) GSJ>

[REBOL] Comparing path!

2002-08-30 Thread Robert M. Muench
Hi, I'm sure this is again one of those things where I'm just not smart enough... I would expect 'true instead of 'false with this code: >> test: [type contact/company] == [type contact/company] >> text: "contact_company" == "contact_company" >> (select test 'type) = (to-path replace text "_" "/

[REBOL] Re: Question on text formatting

2002-08-30 Thread Andy Finkel
Well, this list has been great so far :-) The interface and my understanding of the tricks available in rebol are both growing :-) Let me ask another question, then... Let's say I'm waiting on a tcp port for a character string. Currently, in my clock update feel, I'm checking if there are an

[REBOL] Re: documenting

2002-08-30 Thread Gregg Irwin
Hi Jose, << think of learning rebol core but not having a list of the functions >> I think a good starting point for this would be something like ViewRef. Not that HTML or PDF aren't good, but the "active documents" that REBOL is so good at (EasyVID, etc.), are head and shoulders above them IMO.

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread G. Scott Jones
Hi, Brett From: "Brett Handley" > ... I hoped my little test script would > display a number of iterations corresponding to > it waiting for each stream output from the server, > but it only gives one - at the end. Which is my clue > to REBOL not delivering the goods until it quits. ... Apparent

[REBOL] Re: ANN: Planetary defense

2002-08-30 Thread Christian Langreiter
> I've just released one old 8-bit Atari classic game "PLANETARY DEFENSE". The > original game was written in 1984 by two great programmers: That's truly a great game (and one of the many Atari games I haven't know before ;-)! Thank you very much, Cyphre. > PS: Tom Hudson is responsible for the

[REBOL] Re: documenting

2002-08-30 Thread jose
first link make-autodoc.zip seems is broken second is OK thanks --- Francesco De Napoli <[EMAIL PROTECTED]> escribió: > Hello jose > > On 30-Ago-02, jose wrote: > > Has anybody modified rebdoc to document the > functions > > in a set of scripts, either in HTML or even better > PDF > > I'm wor

[REBOL] Re: ANN: Planetary defense

2002-08-30 Thread Cyphre
Hi Carl, Francesco and all, for those who are using more than 1 year old version of Rebol/View I made a quick patched version of the game. You can run it here: do http://www.rebol.cz/~cyphre/pdefense2.r This version should work on both View 1.2 and any further betaversion...let me know if there

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread Jason Cunliffe
> I believe the objective is to "stream" a series of images to the browser > from a server (original source a web cam). > > The multipart/x-mixed-replace is a way to deliver to the browser multiple > versions of the "same" image so that the browser should replace the image > when it receives the n

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread Brett Handley
> Once you opt for an ActiveX inclusive solution you may as well really enjoy a > modern Flash format for all its virtues. I agree with you, but it Tim's call he has the need. For me the excercise has been informative. :^) Regards, Brett. -- To unsubscribe from this list, please send an email

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread Brett Handley
Hi Scott, I tried the shutdown and restart Apache thingy too, but it didn't give me the streaming effect. I posted the script with a wait of 1 second but I should have made it about 4 to 5. I hoped my little test script would display a number of iterations corresponding to it waiting for each str

[REBOL] Re: ANN: Planetary defense

2002-08-30 Thread Francesco De Napoli
Hello Carl On 30-Ago-02, Carl Read wrote: > ** Script Error: as-pair has no value > ** Where: view > ** Near: f/offset: as-pair f/x f/y > f/changes: > > Someone not tested it on a non-beta View perhaps? (; I got the same error on REBOL/View 1.2.1.1.1 21-Jun-2001 for AmigaOS REBOL/View 1.2.1

[REBOL] Re: InformIT.com Articles Introduction to Water™ A New Native Web Services

2002-08-30 Thread Jason Cunliffe
Hi Gerard Thanks for a lot of interesting links. hmm.. I can see you are fired up about something potent, modular, edu-oriented and rebolistic. Please can you try to explain in a couple of paragraphs your main idea. thanks ./Jason -- To unsubscribe from this list, please send an email to [EMAI

[REBOL] multipart/form-data

2002-08-30 Thread Jason Cunliffe
Andreas, you kindly posted a multipart/form-data script for uploading files via HTTP with some instructions in a later email. Alas I am struggling still to get HTTP upload working smoothly in REBOL. Your solution is now __almost__ working for me. But man I feel so dumb :-( Some simple basic cgi o

[REBOL] Re: encap and build.r

2002-08-30 Thread Carl at REBOL
Ashley, We have a handy program that we use for building REBOL distributions. It's a sort of REBOL preprocessor. In addition to include files, it also allows you to write macro functions in REBOL. For instance, if you want to auto update your version number, it can do that. I'll take a few minut

[REBOL] Re: documenting

2002-08-30 Thread Francesco De Napoli
Hello jose On 30-Ago-02, jose wrote: > Has anybody modified rebdoc to document the functions > in a set of scripts, either in HTML or even better PDF I'm working on something similar. http://members.xoom.it/amigazette/rebol/make-autodoc.zip Now it support only HTML output, but I will add PDF o

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread G. Scott Jones
From: "Brett Handley" > The problem I think is that my REBOL script does not send any data to the > browser until it quits. I've tried setting the mode of the output port to > no-wait, but no change. Can someone solve this? At first, I was trying to get around reconstituting the gif's, but I cr

[REBOL] Re: Event datatype

2002-08-30 Thread Carl Read
On 30-Aug-02, G. Scott Jones wrote: > From: "Carl Read" > >> However, if you did understand the function fully and it doesn't >> actually need to know event is an event!, then I can't see any >> reason why you shouldn't do this. ie... >> e: event >> event: reduce [e/1 e/2 e/3 e/4 e/5 e/6 e/7 e/8

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread Brett Handley
> If there are any further questions, I would be happy to shed further > confusion. ;-) My turn... :^) I believe the objective is to "stream" a series of images to the browser from a server (original source a web cam). The multipart/x-mixed-replace is a way to deliver to the browser multiple

[REBOL] Re: saving data with cgi script

2002-08-30 Thread Anton
Type: usage at the rebol console to see a reference on command line switches. Anton. > Try using the command line option for security. > > e.g For my local Apache installation on NT I use: > > #!e:/program files/rebol/core/rebol -cs > > Regards, > Brett. > > > Hi, > > > > I am

[REBOL] Re: Question on text formatting

2002-08-30 Thread Anton
Andy, and anyone else who's interested, I just hacked together an example of a grid of buttons that responds to keys: url: http://www.lexicon.net/anton/rebol/gui/highlight-button.r load-thru url do path-thru url Anton. -- To unsubscribe from this list, please send an email to [

[REBOL] Re: documenting

2002-08-30 Thread Robert M. Muench
> -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > On Behalf Of jose > Sent: Friday, August 30, 2002 3:17 AM > To: [EMAIL PROTECTED] > Subject: [REBOL] documenting > Has anybody modified rebdoc to document the functions > in a set of scripts, either in HTML or

[REBOL] Re: InformIT.com Articles Introduction to Water™ A New Native Web Services

2002-08-30 Thread Robert M. Muench
> -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > On Behalf Of Gerard Cote > Sent: Thursday, August 29, 2002 8:08 PM > To: [EMAIL PROTECTED] > Subject: [REBOL] Re: InformIT.com Articles Introduction to > WaterT A New Native Web Services > Not much answers to

[REBOL] Re: Event datatype

2002-08-30 Thread G. Scott Jones
From: "Carl Read" > However, if you did understand the function fully and it doesn't > actually need to know event is an event!, then I can't see any reason > why you shouldn't do this. ie... > > e: event > event: reduce [e/1 e/2 e/3 e/4 e/5 e/6 e/7 e/8] > > Other than checking if an event dataty

[REBOL] Re: encap and build.r

2002-08-30 Thread jose
> A good approach or not? (I was toying with the idea > of further reducing the > source size by tokensing user-defined words, but the > cost / benefit didn't > seem justified). Great approach, I think. The more tools we have the less errors we'll do (as long as the tools are truly reliable). I'

[REBOL] Re: Problems rendering an image + jpeg images not working

2002-08-30 Thread G. Scott Jones
From: "Jason Cunliffe" > I am still a bit confused by this thread. Me too! ;-) > Please can you post the full working script and form ? Certainly. Of course, you will want to change your paths and pic names. #!/path/to/rebol --cgi -s REBOL [] print "Content-type: image/jpeg^/" set-modes syst

[REBOL] Re: Event datatype

2002-08-30 Thread Carl Read
On 30-Aug-02, G. Scott Jones wrote: > Hi, Carl, > That is some neat stuff that Cyphre uncovered. I wasn't able to take > it any further than he did. I'd discovered that you could get at event/1 etc, but not got any futher either. > Previously, I developed a way to screen events to a specific wi

[REBOL] Re: documenting

2002-08-30 Thread jose
Hi Andrew, Do you consider that your Values functions are in to the higher documentation standard ? To me, that is the basic way to document proposed by rebol and more than enough (in fact more than basic, because you include Example in many headers and I recall RT has separate files with more in

[REBOL] Re: documenting

2002-08-30 Thread jose
No need to rewrite for basic documentation, just 2 steps 1. Parsing all the functions in the scripts 2. Applying a modified version of source to each function and generating a document from that --- Andrew Martin <[EMAIL PROTECTED]> escribió: > jose wrote: > > Has anybody modified rebdoc to doc

[REBOL] Re: simple as that

2002-08-30 Thread Petr Krenzelok
Francesco De Napoli wrote: >Hello Francesco > >On 28-Ago-02, Francesco De Napoli wrote: > > > >>-- Binary/unsupported file stripped by Listar -- >>-- Type: application/x-zip >>-- File: locale.zip >> >> >> > >Sorry! I don't that attachment are not allowed. > >If you want ge > >http://members

[REBOL] Re: saving data with cgi script

2002-08-30 Thread Brett Handley
Try using the command line option for security. e.g For my local Apache installation on NT I use: #!e:/program files/rebol/core/rebol -cs Regards, Brett. - Original Message - From: "Scott Jaderholm" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, August 30, 2002 5:45 PM

[REBOL] saving data with cgi script

2002-08-30 Thread Scott Jaderholm
Hi, I am trying to save some data from my cgi script, but I just get REBOL Security Violation whenever I try. -rwxrwxrwx1 scottscott 198 Aug 30 02:41 tasks* I don't know what else I can do to give it access. Do I need to change the owners or will it not let me save to a file no

[REBOL] Simple text-list modifications

2002-08-30 Thread atruter
The following script may be of use to those requiring a simple way of managing a text-list. Note that the (tab) method may not be appropriate for more complex data structures (especially if column widths vary greatly), but I have found this works well for key / value pairs where the key is a numbe