感谢BlackBox对此的耐心。过去两天我一直因伤缺阵。再说一次,我正在使用的代码中有大量的专有信息,所以为了发布它,我不得不进行大量的编辑。无论如何顺便说一句,我应该包括在这里,这是一个独立的程序。我认为它的官方行话是COM,意思是它在AutoCAD之外运行。这段代码用于我在这里运行的自动化过程,用户输入不仅是不允许的,而且是不可能的,因为所有这些代码都在局域网深处的服务器上的后台运行。
您在帖子中显示的管道字符实际上是反斜杠字符。当我在手表窗口中检查字符串的值时,我看到了反斜杠字符。下面是我正在使用的更多代码:
- ArrayList myArray = new ArrayList();
- myArray.Add("MyUserName");
- myArray.Add("emaladdress@somewhere.com");
- myArray.Add(42);
- myArray.Add(53);
- .
- .
- . and so forth until all 48 fields are entered
- .
- .
- // Now I need to concatenate a string variable to hold all 48 of those values in a setq command line to be executed by AutoCAD
- vAcadCmd = "(setq ");
- vAcadCmd = vAcadCmd + "username "" + myArray[0] + "" ";
- vAcadCmd = vAcadCmd + "email "" + myArray[1] + "" ";
- vAcadCmd = vAcadCmd + "length "" + myArray[2] + "" ";
- vAcadCmd = vAcadCmd + "width "" + myArray[3] + "" ";
- .
- . and so forth for all 48 variables
- .
- vAcadCmd = ")";
- // Now open up an instance of AutoCAD and send the setq command to it
- . Standard C# code to open up Autocad goes here...
- .
- vAcadDoc = vAcadApp.Documents.Open("C:\Misc\MyAutoCADFile.dwg", true);
- vAcadDoc.SendCommand(vAcadCmd)
现在,我还不确定如何在C语言中正确使用SendCommand的语法。我一直在用VB。但这不是问题所在。我遇到的问题是,当创建字符串vAcadCmd时,我看到它在手表窗口中一步一步地增长。watch窗口显示vAcadCmd的值:
- vAcadCmd "(setq username "MyUserName" email "emaladdress@somewhere.com" "
我不知道为什么反斜杠会出现在手表窗口的值列中。我希望最后得到这样的字符串。注意,这被缩短了,因为我不想浪费所有48个变量的空间:
- (setq username "MyUserName" email "emaladdress@somewhere.com" length 42 width 53).
|