[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

Re: Much easier way to do file comparison--DECODE problems



** Reply to message from Russ Urquhart  on Tue, 8
Nov 2005 17:46:16 -0600

Russ:

> When i try and run your program i keep getting a
> Function requires ID and expression. SU03, < is there something i'm missing?

Must be. What it is, though, I can't imagine. I just DLed (from our list
server) the ZIPfile I uploaded to this group an hour ago, UnZIPped UNIQOMP.PM
(overwriting my old copy), and ran the program against two related files.
Worked perfectly.

That error ("Function requires ID and expression") is almost always the product
of improper XPL: unbalanced quotation marks, unbalanced guillemets, etc.
Possibly of improper decoding (if you DECODEd it -- are you using U2 v118?).
Are you using Xy4 v4.018?

Do you possibly have broken lines, i.e. lines that were wrapped by your Emailer
in a different place than the original? Not likely: XPLCODE max line length
is 62, and usually 60, chars.

Another possible problem is this: if you DECODEd it by copying and pasting the
code out of a browser-based, or GUI-style, HTML-capable Email client (you're
using Apple Mail, right? a GUI client by definition), *sometimes* the client
adds extraneous characters or does not render the source Email EXACTLY as it
was written and sent. Which makes you wonder why we're using text-based Email
in the first place -- but these Email clients are doubtless smarter than the
rest of us put together, they must have their reasons. Even though XPLCODE
minimizes this possibility by using only the character set from 32-127 (in
other words the standard character set shared by every Latinate CodePage), some
of these bloody clients change the Emails anyway.

The most common thing they do is add one or more *space characters* between the
last character on a line and the carriage return. You should look at the
not-yet-decoded XPLCODE block after you paste it into a XyWrite window. *If*
there is a space char at the end of every (or *any*) line, appearing
immediately before the carriage return, you gotta get rid of it -- and maybe
think about getting a meticulous Emailer. Command:

ci |{space}{red_carriage_return}|{red_carriage_return}|

Keep issuing that until Xy reports "Not found". Then DECODE

P.S. I just looked at the actual file you just sent to us all -- the message I
am responding to now (not its representation in an Emailer, but the underlying
file). At the bottom of your message, you quote my earlier message to the list
(a msg that I also got, of course, because I get everybody's msgs, including my
own, from the list server). At the end of every line you quote from me, there
are two gratuitous space characters. These *must* have been added by Apple
Mail. When I look at that msg from me in my Emailer, as also processed by the
list server, there are no spaces -- just like the original that I sent. When I
look at msgs from me that quote other people, there are no additional spaces
after the quotes. When I look at quotes of other people in your mails, there
are two spaces. Therefore, the *only* place those space chars could have been
added is inside Apple Mail, either when you received it, and/or sent it, and/or
you added them manually...

Grrrr! (Maybe I can add something to frame DECODE to work around this.
Whenever a *real* space character occurs at the end of a line of XPLCODE, it is
expressed, not as a space, but as "{32}". So any spaces that appear at the end
of a line are gratuitous a.k.a. errors -- and not my errors either!)

-----------------------------
Robert Holmgren
holmgren@xxxxxxxx
-----------------------------