edit syntax and issue
scooter6 at gmail.com
scooter6 at gmail.com
Wed Jul 31 09:00:57 PDT 2013
Ken,
Thanks - that was VERY helpful - and your simplified version did the trick
Helps to know the 'stepology' for future edits, etc....I was close, given
the fact that I didn't specify to allow spaces...but the screaming part you
had right, until your explanation lol
thanks
Scott
On Wed, Jul 31, 2013 at 11:52 AM, Kenneth Brody <kenbrody at spamcop.net>wrote:
> On 7/31/2013 10:21 AM, scooter6 at gmail.com wrote:
>
>> I'm trying to get our address fields to be more USPS compliant, so I want
>> to 'remove' a comma or period if someone inputs them
>>
>> So far I have :
>>
>> {{A} | {N} | [!","!] | [!"."!]}
>>
>> In testing this edit, if I pust something like: 1234, it changes it
>> to just: 1234 (perfect)
>> If I put 1234 Main St, Apt A I get edit failed
>>
>> If I put 1234. (period) I get edit failed..... shouldn't I at
>> least
>> get the same result using the period, shouldn't it remove it like it does
>> with 1234, (comma) ??
>>
>> How can I make the field NOT allow a comma or a period but can accept
>> all letters and numbers
>>
>
> Two problems:
>
> (1) Your edit won't allow any imbedded spaces, so even "123 Main" would
> fail.
>
> (2) What about other punctuation? What do you want to do with things such
> as hyphens?
>
> Assuming you want only letters/numbers/spaces, and want to accept, but
> eliminate, commas and periods:
>
>
> {{A} | {N} | {" "} | !","! | !"."! }
>
> The addition of accepting spaces should be obvious as to how it works.
> However, the main change is replacing:
>
>
> [!","!] | [!"."!]
>
> with:
>
>
> !","! | !"."!
>
> This is crucial to getting the "remove periods" to work. You are probably
> asking "why?"
>
> Time to learn a little German and conduct a "gedankenexperiment" -- become
> the filePro edit engine...
>
> ==========
>
> You are given the (slightly modified) original edit
>
>
> {{A} | {N} | {" "} | [!","!] | [!"."!]}
>
> and the input string
>
> 123 Main, Apt. 17
>
> The initial character "1" does not pass the "A" edit, causing "{A}" to
> fail. The edit then tries "{N}", which accepts the "1" as well as the
> subsequent "2" and "3". However, the space fails, and the "{N}" ends,
> having accepted "123". The entire or-series has now succeeded, causing the
> edit engine to return to the outermost "{...}" pair.
>
> The next character, the space, fails "A" and "N", and is then accepted by
> the " " edit. Since the next character, "M", fails to pass the " " edit,
> the {" "} ends, the or-series succeeds, and control again returns to the
> outermost "{...}" pair.
>
> Repeat for "Main", which will be accepted by "{A}", stopping at the comma.
>
> The comma fails the A, N, and " " edits. It does, however, pass the next
> part of the edit -- [!","!] -- causing it to be deleted, and control again
> returning to the outermost "{...}".
>
> Repeat for " " and "Apt".
>
> Now, for the part as to why the above fails at the "."...
>
> We have the character ".". It fails A. It fails N. It fails " ".
> However, contrary to what you might expect, the period does, in fact, pass
> the next part of the edit -- [!","!]
>
> "How can a period possibly pass that edit?" I can hear you screaming.
>
> Simple -- the "accept or delete a comma" is *optional*. You have told
> filePro, "if there is a comma, delete it, but if there isn't a comma,
> that's okay too". The or-series is satisfied, and control once again
> returns to the outermost "{...}".
>
> The period never gets accepted, and it never gets deleted. Hence, the
> edit failure.
>
> By removing the "optional" part of the edit, you tell filePro that if
> there isn't a comma to delete, fail that part of the or-series, and
> continue on, at which point the accept-or-delete the period portion of the
> edit kicks in, deleting the period, satisfying the or-series and, as
> always, returns control to the outermost "{...}".
>
> At which point, the edit continues on to the " ", the "17", and the
> trailing spaces, as explained above. The entire field has now been
> accepted (with the appropriate characters deleted), and the edit has passed.
>
>
> ==========
>
> Now, as to my question (2) above... What about other punctuation? For
> example, the hyphen and slash in:
>
> 27-1/2 sixth st.
>
> Your edit will fail on anything that contains any punctuation other than
> commas and periods.
>
> If you want to accept everything *except* commas and periods, the edit can
> be simplified to:
>
> { !","! | !"."! | * }
>
> You can then decide on specific characters you want to delete in addition
> to comma and period, and accept everything else as-is. For example:
>
> { !","! | !"."! | !"?"! | * }
>
>
> --
> Kenneth Brody
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.celestial.com/pipermail/filepro-list/attachments/20130731/20b81fde/attachment.html
More information about the Filepro-list
mailing list