Lew,
I have no idea on that one - there is certainly no point in it at all.

Perhaps the original developer wanted to slow down the Fox because it all
ran toooo fast! 

As to exec(), my tests have found it to be slightly faster. It would be
interesting to do a small test on various "macro substitutions" and compare
speed. Andy Kramek has a few tests on his site and they certainly show
Exec() to be faster.

Dave Crozier
"A computer is a stupid machine with the ability to do incredibly smart
things, while computer programmers are smart people with the ability to do
incredibly stupid things. They are, in short, a perfect match"  - Bill
Bryson
 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Lew Schwartz
Sent: 12 July 2006 15:50
To: profox@leafe.com
Subject: RE: Macros format/style in old code

Hmm... My original post wasn't quite right, sorry. It's not a question of
alternative macros; it's a question of unnecessary ones.  I'm seeing this in
stuff that looks like:

cMemvar = "bob"

Select ...
>From ....
Where person = "&cMemvar."
.... 

Is there any point to this at all?

I'll post others as I find them.

Also, for what it's worth, I don't find exec() faster for one line macros at
all. A simple & wins hands down.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Dave Crozier
Sent: Wednesday, July 12, 2006 10:05 AM
To: [EMAIL PROTECTED]
Subject: RE: Macros format/style in old code

Lew,
&memvar is NOT the same as "&memvar." The former simply replaces the &memvar
with the characters you specify in memvar and this will NOT end up being a
string as far as VFP is concerned in the code A couple of
examples:

Example 1
---------
Hello="Newval"
cStr1="Hello"

cStr2=&cStr1.  && Gives cStr2 as "Newval"
cStr2="&cStr1."  && Gives cStr2 as "Hello"


Example 2
-------------
Memvar="Select *"
&memvar. From Customer into cursor curTest
 
This simply builds theSQL expression but you could use exec() which is
quicker

=Exec(Memvar+" From Customer into cursor curTest")


Example 3
---------
Memvar="Fred"

Replace Name with "&Memvar." in Customer

This is of course the equivalent of:
Replace Name with Memvar

As a matter of course I always terminate a macro with a "." because it makes
the macro expression stand out expecially if you are accessing an object as
the Macro value: 

Memvar="oObject"

vValue=&Memvar..Property1

However It is preferable and quicker to use the Eval() in these
circumstances i.e

vValue=Eval(Memvar+".Property1")

Hope this helps

Dave Crozier
"A computer is a stupid machine with the ability to do incredibly smart
things, while computer programmers are smart people with the ability to do
incredibly stupid things. They are, in short, a perfect match"  - Bill
Bryson
 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Lew Schwartz
Sent: 12 July 2006 14:27
To: profox@leafe.com
Subject: Macros format/style in old code

I'm cleaning up some old code and I keep coming across macros which are
uniformly coded with quotation marks and dots. Eg if a macro is stored in a
memvar, instead of seeing:

&memvar

The code consistently reads:

"&memvar."

All I can find out about this is that the programmer decided that using the
quotation marks and dot all the time avoided problems.

Anyone have any idea what problems are being addressed here, if any?

-Lew


[excessive quoting removed by server]

_______________________________________________
Post Messages to: ProFox@leafe.com
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to