help with syntax...filepro 5.0.13 OSR 5.0.7
Brian K. White
brian at aljex.com
Thu Jan 19 18:28:10 PST 2006
----- Original Message -----
From: "Enrique Arredondo" <henry at vegena.net>
To: <filepro-list at lists.celestial.com>
Sent: Thursday, January 19, 2006 8:09 PM
Subject: help with syntax...filepro 5.0.13 OSR 5.0.7
> I'm trying to generate a file that will make hundreds of symbolic links
> but I'm missing the right combination of 's and `s within the system
> noredraw command.
>
> here's where the magic takes place :
>
> Then: system noredraw "umask 0;cd /vegedoc;FI=`find . -name"<imp(4){".pd
>
> f -print`;echo 'ln -s $FI"<dd{"' >> /usr2/tmp/foundit"
>
> the outfile being created looks like this :
>
> ln -s $FI
> /vegedoc/CoreCenter/AMC/AMC-150/1---A22-EnsambleDeMotor/E-150-A22.pdf
>
> The $FI becomes not a variable when you put in between 's but if I don't
> put the 's the system tries to execute a ln command.
>
> if I replace the echo part with " ; echo $FI >> /usr2/tmp/foundit"
>
> I get the real value of $FI.
>
> Can you find the problem ??
Sure, don't use single quotes. Escape the double quotes that you don't want
the system() command to see instead.
Just use your existing line without changing anything but replace each '
with \"
system noredraw "umask 0;cd /vegedoc;FI=`find
. -name"<imp(4){".pdf -print`;echo \"ln -s $FI"<dd{"\" >> /usr2/tmp/foundit"
Not that I'd do it that way.
I'd just write ln commands to the file. No need to run find a zillion times
that I can see.
No need to fill a variable (FI) and then use it that I can see either. If
there is more and the value is reused later that's different, but since the
value looks like it changes with every record that can't be the case here.
I'd probably write the file with file-io commands instead of "system echo >>
file" too.
My system command would be:
First one system command in @once or on the first record or otherwise before
the main loop, to create the file with the desired permissions since fp
provides no way to do it and doesnt respect the umask in effect at the time
p/runmenu/clerk/report was called either. And some other stuff to set up the
file-io command:
Then: fn="/usr2/tmp/foundit"
Then: system noredraw "umask 0;>"<fn
Then: fh=open(fn,"wt")
Then: x=writeline(fh,"cd /vegedoc")
then this inside the loop
Then: x=writeline(fh,"ln -s"<imp(4){".pdf"<dd)
then this after the loop
Then: x=close(fh)
When you run foundit, any time the imp(4) wasn't found, ln just generates an
error and no link is created. you and add 2>/dev/null to the writeline or
better just add it to the end of the command that runs foundit.
Or, if the harmless error messages really bother you, you can have fp see if
the file is there and not write a command sometimes by doing exactly the
same as above but only adding this "If: " to the writeline command above
this inside the loop
If: exists("/vegedoc/"{imp(4){".pdf") eq "1"
Then: x=writeline(fh,"ln -s"<imp(4){".pdf"<dd)
And since "/vegedoc" is used more than once I'd make that into a dummy too
and fill it once near the top or bottom of the table with other
"configuration settings" instead of burying it in multiple spots in the code
like that. Just asking for difficulty some day when you need to change it or
copy it for some new similar use.
Brian K. White -- brian at aljex.com -- http://www.aljex.com/bkw/
+++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
filePro BBx Linux SCO FreeBSD #callahans Satriani Filk!
More information about the Filepro-list
mailing list