A workaround could be: place the text lines in a noun like
quote=: 0 :0 '(`'3 ) convert to numbers: }: 3 u: quote 39 40 96 39 51 (drop the LF) Check for end 39-s and intermediate 39-s that need to be doubled correct 39 40 96 39 51 39 40 96 39 39 51 39 convert back to text: u: 39 40 96 39 39 51 39 '(`''3' On 12-02-12 15:40, R.E. Boss wrote: > The (input) string should be considered as one group (of chars). > Quoting is needed if the first or the last (or both) is not a quote, all > inside quotes should be doubled if they are not. > > > R.E. Boss > > >> -----Oorspronkelijk bericht----- >> Van: programming-boun...@jsoftware.com [mailto:programming- >> boun...@jsoftware.com] Namens Don Guinn >> Verzonden: zondag 12 februari 2012 14:03 >> Aan: Programming forum >> Onderwerp: Re: [Jprogramming] quote problem >> >> Given the string contains several groups of non-blanks, would each group >> need to be surrounded with quotes and quotes within it doubled if not a >> number, or only if it contained one or more quotes? Or should the string > be >> considered as one group? Again, when would quoting be needed? >> >> On Sun, Feb 12, 2012 at 1:17 AM, R.E. Boss<r.e.b...@planet.nl> wrote: >> >>> The problem boils down to the fact that J requires a string (of chars) > to >>> be >>> enclosed in (single) quotes and the inside quotes have to be doubled. >>> (Contrary to a spreadsheet (e.g.) where a cell is of type char if it is > not >>> a number.) >>> But what if I don't want bother a user with these requirements, she > enters >>> a >>> string and my verb does the enclosing and doubling, if necessary? >>> >>> >>> R.E. Boss >>> >>> >>>> -----Oorspronkelijk bericht----- >>>> Van: programming-boun...@jsoftware.com [mailto:programming- >>>> boun...@jsoftware.com] Namens Dan Bron >>>> Verzonden: zaterdag 11 februari 2012 20:35 >>>> Aan: J Programming >>>> Onderwerp: Re: [Jprogramming] quote problem >>>> >>>> Oh, just saw Henry's response and he interpreted your question >>> differently. >>>> If you're not typing these strings in, then what is the source? And > what >>> is >>>> processing them (is it ;: ? if it's ". there's more to worry about > than >>> proper >>>> quoting). >>>> >>>> Anyway, if the strings are coming from e.g. a file and the trouble is >>> with >>>> parsing them using ;: (instead of evaluating them in the immex > session), >>> then >>>> you could try something along the lines of (#~ 2 * '''' = ]) y (i.e. >>> double >>>> singleton quotes). >>>> >>>> -Dan >>>> >>>> Please excuse typos; composed on a handheld device. >>>> >>>> -----Original Message----- >>>> From: Dan Bron<j...@bron.us> >>>> Sender: programming-boun...@jsoftware.com >>>> Date: Sat, 11 Feb 2012 14:05:16 >>>> To: Programming forum<programming@jsoftware.com> >>>> Reply-To: Programming forum<programming@jsoftware.com> >>>> Subject: Re: [Jprogramming] quote problem >>>> >>>> Unlike C, where \ introduces an escape sequence within string > liberals, >>> in >>> J, >>>> the only special character in a literal is ' (single quote). >>>> >>>> So, to embed quotes in strings, double them up: a. i. '(`''3' . > Of >>> course, >>>> recursively embedded quotes need quadrupling, octupling, etc (eg 'he >> said >>>> ''she said ''''yes'''', but she lied'', if you can believe that'). >>>> >>>> The syntax error in your first example is due to the juxtaposition of > two >>>> nouns, the string '(`' and the number 3 . >>>> >>>> -Dan >>>> >>>> >>>> On Feb 11, 2012, at 1:04 PM, "R.E. Boss"<r.e.b...@planet.nl> wrote: >>>> >>>>> If I want to process an arbitrary string, I may encounter a string >>> which >>>>> might give a "syntax error" or an "open quote" message. >>>>> >>>>> How can I detect such a situation and how can I repair the given >>> string? >>>>> >>>>> >>>>> a. i. '(`'3 >>>>> >>>>> |syntax error >>>>> >>>>> | a. i.'(`'3 >>>>> >>>>> >>>>> >>>>> a. i. '(`'3' >>>>> >>>>> |open quote >>>>> >>>>> | a.i.'(`'3' >>>>> >>>>> | ^ >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> R.E. Boss >>>>> >>>>> > ---------------------------------------------------------------------- >>>>> For information about J forums see >>>> http://www.jsoftware.com/forums.htm >>>> ---------------------------------------------------------------------- >>>> For information about J forums see >> http://www.jsoftware.com/forums.htm >>>> ---------------------------------------------------------------------- >>>> For information about J forums see >> http://www.jsoftware.com/forums.htm >>> ---------------------------------------------------------------------- >>> For information about J forums see >> http://www.jsoftware.com/forums.htm >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm -- Met vriendelijke groet, @@i = Arie Groeneveld ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm