Hi Ed, Sorrowfully, this is C++ syntax. In a C++ string '\' is used as an escaped character. You need to first transfer the %1 in doubling the \. An alternative is to write a very small C++ program that would - tranform argc[1] to double the '\'. - create a string toe say myScript.cpp(\"...") - call gROOT->ProcessLine(cmd) Cheers, Philippe -----Original Message----- From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Ed Oltman Sent: Tuesday, June 18, 2002 9:20 AM To: Roottalk@Pcroot. Cern. Ch Subject: [ROOT] parsing input line to root Hi, I am using root v3.02/07 on Win32. I have made an OS association of the file type .root to launch root using the the following: %rootsys%\bin\root %rootsys\myScript.cpp(\"%1\") So, for example, when I double click (or type from dos prompt) abc.root, the following is exected: c:\root\bin\root c:\root\myScript.cpp("c:\analysis01\abc.root") So far, so good. Root reports: Processing c:\root\myScript.cpp("c:\analysis01\abc.root")... The problem is, somewhere in the depths of the CINT (I lost the thread within TCint::ProcessLineSynch) the argument to my script is transformed: "c:\analysis\abc.root" --> "c:analysis0bc.root" and of course, it does'nt work. If I could coax windoze into replacing "\" with "\\" everywhere, the association would work perfectly. Is there a way to instruct CINT not to treat a slash as a special character? Thanks. Ed Oltman myScript.cpp looks like: class CManage; void myScript(char *fname) { gROOT->Reset(); gROOT->LoadMacro("myAnalysis.dll"); CManage *pM = new CManage; pM->RestoreAnalyzed(fname); }
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:57 MET