Board logo

标题: [问题求助] 请问有人会用VBS写ansoft Maxwell的脚本吗?能否帮忙解决一个文件读写的问题 [打印本页]

作者: MoTinte    时间: 2017-1-28 13:25     标题: 请问有人会用VBS写ansoft Maxwell的脚本吗?能否帮忙解决一个文件读写的问题

用VBS写ansoft Maxwell的脚本,运行时出现错误
  1. '创建文件
  2. Set objFSO = CreateObject("Scripting.FileSystemObject")
  3. Set objFile = objFSO.CreateTextFile("E:\My_Simulation\UEC\ansoft\ARMFORCE1.txt")
  4. '力数组写入文件
  5. Dim count1
  6. count1=0
  7. Do Until count1=count
  8.    Set objFSO = CreateObject("Scripting.FileSystemObject")
  9.    Set objTextFile = objFSO.OpenTextFile("E:\My_Simulation\UEC\ansoft\ARMFORCE1.txt",ForWriting,true)
  10.    objTextFile.WriteLine(F_x(count))
  11.    objTextFile.Close
  12. Loop  
复制代码
代码主要是要创建一个文本文件,然后把Maxwell中仿真得到的数据写入该文件,但是在Maxwell中导入该脚本后在
  1.    Set objTextFile = objFSO.OpenTextFile("E:\My_Simulation\UEC\ansoft\ARMFORCE1.txt",ForWriting,true)
复制代码
这一行报错
想问下论坛的高手们代码有什么问题吗?
作者: yu2n    时间: 2017-1-28 14:06

代码报错是ForWriting没有定义?

最顶上加一行常量定义:
  1. Const ForWriting = 2
复制代码
参考:
asp(vbs)fso OpenTextFile方法参数说明
http://www.jb51.net/article/64927.htm

作者: MoTinte    时间: 2017-1-28 18:19

回复 2# yu2n


    我改了以后,出现这个报错:
  1. *Global - Messages
  2.   [error] Script macro error: Script Error (Code 800a0046) in file:  E:/My_Simulation/UEC/ansoft/VBScript1.vbs Description: 没有权限 Line(179):  "   Set objTextFile = objFSO.OpenTextFile("E:/My_Simulation/UEC/ansoft/ARMFORCE1.txt",8,true) " Cause: Microsoft VBScript 运行时错误
  3. Project4 (C:/Users/MoTinte/Documents/Ansoft/)
  4.   Maxwell3DDesign1 (Magnetostatic)
复制代码
这个没有权限是什么问题?
作者: yu2n    时间: 2017-1-28 21:19

你查一下 E:/My_Simulation/UEC/ansoft/ARMFORCE1.txt 是否有权限修改、或者文件使用中。
作者: MoTinte    时间: 2017-1-28 22:02

回复 4# yu2n


    有写入权限。下面是代码,能帮忙看一下吗
  1. '创建文件
  2. Dim objFSO
  3. Dim objFile
  4. Dim objTextFile
  5. Set objFSO = CreateObject("Scripting.FileSystemObject")
  6. Set objFile = objFSO.CreateTextFile("E:\My_Simulation\UEC\ansoft\ARMFORCE2.txt")
  7. Set objTextFile = objFSO.OpenTextFile("E:\My_Simulation\UEC\ansoft\ARMFORCE2.txt",8,true)
  8. '力数组写入文件
  9. 'Dim count1
  10. count1=0
  11. Do Until count1=count
  12.    objTextFile.WriteLine(F_x(count1))
  13.    MsgBox F_x(count1)
  14.    count1=count1+1
  15. Loop  
  16. objTextFile.Close
复制代码

作者: MoTinte    时间: 2017-1-28 22:20

本帖最后由 MoTinte 于 2017-1-28 22:23 编辑

回复 4# yu2n
报错出现在这一句
  1. Set objTextFile = objFSO.OpenTextFile("E:\My_Simulation\UEC\ansoft\ARMFORCE2.txt",8,true)
复制代码

作者: yu2n    时间: 2017-1-28 22:51

回复 6# MoTinte


    第 7 行,需要关闭 objFile ,这样就不会出现文件使用中的情况。替换第 7 行为以下代码:
  1. objFSO.CreateTextFile("E:\My_Simulation\UEC\ansoft\ARMFORCE2.txt")
复制代码

作者: WHY    时间: 2017-1-28 23:01

第7行没啥用,删掉好了
作者: MoTinte    时间: 2017-1-28 23:16

回复 7# yu2n


    可以了,谢谢。
作者: MoTinte    时间: 2017-1-28 23:19

回复 7# yu2n


    能加个QQ吗?互相交流
作者: MoTinte    时间: 2017-1-29 15:18

回复 7# yu2n


    请问下标越界是什么意思?
作者: 老刘1号    时间: 2017-1-31 20:15

回复 11# MoTinte


    使用的数组超过所被定义的




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2