|
Guest
|
Re: Old Keystroke macros
R. A. Becker wrote:
> I didn't mean to imply that the menu commands were the sole components
> of macros. They do, however, seem to be a major part of my problem
> (perhaps THE problem) because they don't execute correctly.
Okeydoke.
> When writing source code (but not the OS compatibility and graphics
> stuff) I input every character of every line of functional code
> manually. That way when it fails to compile I can usually spot the error
> quickly. We primarily work with console apps for broadest applicability.
> My focus is on conceptual viability, not productivity.
I understand you better here, too (I think).
> I think the problems started with the two versions of Qpro7.
I think that's correct. As best I can recall, with QP7 I ended up converting
most of my old macros to the new standard because of problems encountered. I
left only one or two files with slash command syntax, which surprisingly still
ran even under QP8, but I finally thought it unwise to keep pushing my luck.
> The one that runs on 98 is different than the one that runs on 98SE.
I'm not aware of different versions. My QP7's system requirement was Win95, but
I ran it under Win98SE.
> I agree that documentation is critical for both macros and source code.
> This macro was thoroughly documented at the time but hadn't been used
> for 15 years. I can still "read" it though. We had it on disks along
> with printed operating booklets but the boxes of development stuff,
> documentation, and old spreadsheet manuals were archived and difficult
> to dig out. Hence, my query.
I suppose even if "everything's done right," sometimes you might still be
overcome by developments that trump all prior measures taken.
> I ran the macro on different platforms side by side and discovered
> things like, while {let ga48,CX18..EB54}~ worked on early versions,
> later versions required {let ga48,"CX18..EB54"}~. On Qpo 11, the former
> placed the contents of CX18 in ga48 so {put @cell("contents",!ga48)...}
> would return an error. Some fun.
I think what you're dealing with here is different default handling in different
QP versions for data types within macro commands. Not sure what the syntax and
defaults where in prior versions, but in QP8 {LET} includes a parameter option
to FORCE data type when there's ambiguity. In QP8
{let ga48,CX18..EB54}
enters the value residing in CX18 into GA48 (just like QP11 does), whereas
{let ga48,CX18..EB54,s}
enters the string "CX18..EB54", as the original macro apparently intended. QP
Help for {LET} makes clear that in case of ambiguity, it will treat any entry as
a value (if possible), and only if unsuccessful as a string. It seems that
prior versions had a different approach.
BTW, the ~ following your {let} command is superfluous; it neither accomplishes
nor hurts anything.
> Roy does have part of the answer. The macro has two phases, setup and
> data processing. The data processing phase, which has relatively few
> menu commands, ran with some minor problems on Qpro 11 (XP) after
> checking the slash key compatibility box. However, the setup phase with
> literally hundreds of menu commands crashed. If I can sort the data
> processing problems, I'll try to set up the spreadsheet manually. We'll
> see. I'll also check craigslist locally for a used 98. Ironically, we
> just scrapped one in June.
Don't know if it would work, but you might try running an older QP version in
compatibility mode.
Cheers,
Uli
|