home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.pascal.borland      Borland Pascal was actually pretty neat      2,978 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 2,592 of 2,978   
   "Dave R."    
   Re: unknown identifier   
   27 Dec 07 16:02:48   
   
   "Joe"  wrote in message   
   news:13mod69bok30h86@corp.supernews.com...   
   > Dave R. wrote:   
   >> "Joe"  wrote in message   
   >> news:13mnjamps7fpn19@corp.supernews.com...   
   >>> I keep tring to shell out of my program to run a small utility   
   >>> program. I use Exec. and I keep getting the same error, Unknown   
   >>> Identifier. That I don't under stand. That command or option in   
   >>> listed in the help files.   
   >>>   
   >>>   
   >>> Exec ('CMD.EXE /C ' + myutil.exe);   
   >>   
   >> The declaration for Exec is:   
   >>   
   >> procedure Exec(Path, CmdLine: string);   
   >>   
   >> So the compiler is treating myutil.exe as a variable name /   
   >> identifier, but since it hasn't been declared as one the compiler   
   >> throws an error. You probably need something like:   
   >>   
   >> Exec(GetEnv('COMSPEC'), '/C myutil.exe);   
   >>   
   >> GetEnv('COMSPEC') will return the full path to the command   
   >> interpreter, and the '/C myutil.exe' will complete the command line   
   >> you need.   
   >>   
   >> Hope this helps!   
   >>   
   >>   
   > Thanks Dave, But, No. I'm sorry, It doesn't, See I real new to Pascal.   
   > Just over a month, Any way if you have time. This is how I tried to   
   > run it.   
   >   
   > Exec('CMD.EXE /C ' + util + ' i' + ParamStr(0) + 'work\addata.dat' +   
   > forsale + ' ' + ParamStr(0) + 'work\userdata.dat');   
   >   
   > util:= 'path\filename'; // The utils program it self, In a Variable   
   >   
   > addata:=  Command line option for Util   
   > userdata:= Command line option for util   
   >   
      
   It looks like another poster has pointed you in the right direction, but   
   if not (or if his post didn't make it to you):   
      
   Exec takes two parameters, and in Turbo Pascal parameters must be   
   separated by a comma, so the 1st example you posted needed to be   
   something like (without my adjustment to get comspec to make the   
   application more universal, and with the final ' that I missed):   
      
   Exec ('CMD.EXE' , '/C ' + 'myutil.exe');   
      
   And here's your original for comparison:   
      
   Exec ('CMD.EXE /C ' + myutil.exe);   
      
   Note the subtle but important differences.   
      
   Your newer, more complex example would become:   
      
   Exec('CMD.EXE' , '/C ' + util + ' i' + ParamStr(0) + 'work\addata.dat' +   
   forsale + ' ' + ParamStr(0) + 'work\userdata.dat');   
      
   Assuming of course that util (as you've already indicated) and forsale   
   are properly declared.  It also looks like you may need a space at the   
   end of 'work\addata.dat' depending on how the util program takes   
   parameters.   
      
   Regards,   
      
   Dave   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca