The value argument could be anything. Basically, all I want to do is the following:
- Given any Value_P, get the textual representation of that value as if it had been displayed in the interpreter, *without* any wrapping. Or... - Given any Value_P, get the textual representation of that value as if it had been displayed using ⎕CR with a numeric left argument being the values 1 to 9. Again, without any line wrapping. That's really all I'm trying to do. Regards, Elias On 22 May 2014 22:38, Juergen Sauermann <juergen.sauerm...@t-online.de>wrote: > Hi again, > > it is actually somewhat difficult to see what happens. > The private use characters are not displayed in the same way on all > machines. > Also I can't see how your do_CR() value argument looks like (could be ⍳ > something). > Maybe it is easier to start with an a that does not involve print styles > (such as 5 ⎕CR 'hello'). > > /// Jürgen > > > On 05/22/2014 03:51 PM, Elias Mårtenson wrote: > > Well, I tried with 1 as well, and got the same result. How do you > recommend I deal with it? > > Also, how can I use do_CR to render with the default (non-CR) output > style? > > Regards, > Elias > > > On 22 May 2014 21:47, Juergen Sauermann <juergen.sauerm...@t-online.de>wrote: > >> Hi Elias, >> >> I see, the private use symbols can be made visible with ./configure >> VISIBLE_MARKERS_WANTED-yes >> in case you are interested in the details of APL output formatting. They >> can be removed (visible or not) >> with UCS_string::remove_pad() (which returns another UCS_string >> with these characters replaced with spaces). >> >> Apart from that everything looks really fine :-) . >> >> You probably want to go for 1. anyhow. >> >> /// Jürgen >> >> >> >> On 05/22/2014 03:35 PM, Elias Mårtenson wrote: >> >> Thanks. I tried the second solution, and got the below result. Very >> strange. Here's the code: >> >> const PrintContext pctx( PST_NONE, Workspace::get_PP(), 100000 >> ); >> Value_P cr_formatted = Quad_CR::do_CR( cr_level, *value, pctx ); >> >> const PrintContext pctx2( PST_NONE, Workspace::get_PP(), 100000 >> ); >> PrintBuffer buffer( *cr_formatted, pctx2 ); >> out << buffer; >> >> Then, this renders as a lot of private use symbols (U+EEEE). I've >> attached a screenshot of what it looks like. >> >> Regards, >> Elias >> >> >> On 22 May 2014 21:10, Juergen Sauermann >> <juergen.sauerm...@t-online.de>wrote: >> >>> Hi Elias, >>> >>> if the values was a matrix then you may have another problem that >>> the matrix has no \n at the end of each row (not sure how your output is >>> supposed to look like). >>> >>> Let say do_CR returns *Value_P Z *(which can be a scalar, a vector, or >>> a matrix depending on the value ⎕CRed and the first arg of do_CR(). >>> Then there are two options: >>> >>> 1. Check the rank of *Z* with *Z->get_rank()* and >>> >>> * loop(z, Z->**element_count())* >>> * {* >>> * out << **Z->get_ravel(z)**.get_char_value()**;* >>> * // insert \n as needed, i.e. z%Z->**get_last_shape_item();* >>> * }* >>> >>> 2.Construct a PrintBuffer object from Z (with ⎕PW as needed) and >>> >>> * out << **PrintBuffer object;* >>> >>> I haven't tested this; 1. seems more reliable (and definitely faster) >>> while 2. looks more elegant. >>> >>> >>> /// Jürgen >>> >>> >>> >>> On 05/22/2014 02:46 PM, Elias Mårtenson wrote: >>> >>> Thank you. But I don't see how I can solve my problem then? >>> >>> Regards, >>> Elias >>> >>> >>> On 22 May 2014 20:44, Juergen Sauermann >>> <juergen.sauerm...@t-online.de>wrote: >>> >>>> Hi Elias, >>>> >>>> yes, sorry. Forgot to mention that the APL values used in the >>>> constructor of UCS_string >>>> must have rank ≤ 1 while do_CR() might produce matrices for some left >>>> arguments of ⎕CR. >>>> >>>> /// Jürgen >>>> >>>> >>>> >>>> >>> >>> >> >> > >