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

Reply via email to