Vbscript 获取只能写入ASCII输出以写入二进制数据的第三方软件

Vbscript 获取只能写入ASCII输出以写入二进制数据的第三方软件,vbscript,io,binary,ascii,Vbscript,Io,Binary,Ascii,问题 我怎样才能使一个程序,能够专门用ASCII写输出文件,能够写二进制数据(特别是32位浮点) 我如何设想最佳答案:一些将浮点值编码为ASCII字符的技术,这样程序就可以将该ASCII编码值(写入.txt文件)并将生成的.txt(重命名为.bin)设置为字节结构,这样就可以将其直接读为二进制(最好是float32或float16,大尾端或小尾端) 我如何设想一种解决方法:一种将ASCII值写入.vbs或.bat文件的技术,然后可以通过程序内的系统调用启动该文件。.vbs/.bat/etc.将

问题

我怎样才能使一个程序,能够专门用ASCII写输出文件,能够写二进制数据(特别是32位浮点)

  • 我如何设想最佳答案:一些将浮点值编码为ASCII字符的技术,这样程序就可以将该ASCII编码值(写入.txt文件)并将生成的.txt(重命名为.bin)设置为字节结构,这样就可以将其直接读为二进制(最好是float32或float16,大尾端或小尾端)
  • 我如何设想一种解决方法:一种将ASCII值写入.vbs或.bat文件的技术,然后可以通过程序内的系统调用启动该文件。.vbs/.bat/etc.将获取(从ASCII硬编码)值,并以所需的二进制格式将其写出

背景

  • 有关我的设置的详细信息:我有一个第三方软件(“3PSW”)应用程序(光学分析的行业标准,仅供参考),带有一种方便的宏语言,用于设置长时间的计算分析。3PSW可以执行系统调用。我在WindowsXP上运行它
  • 问题的重要原因:(A)将输出数据写入一个大的1000x1000矩阵需要更长的时间,而这个IO瓶颈限制了我们可以使用3PSW进行研究的范围(B)ASCII输出占用的磁盘空间明显多于二进制输出(C)我需要3PSW的输出为特定的二进制格式,以便被其他程序读取
  • 我目前的解决方法是:我有MATLAB脚本来读取ASCII输出,并以所需的二进制格式将其写出。虽然这建立了功能,但重新格式化/重写步骤在过程中引入了更多的时间,有时MATLAB和3PSW都因RAM内存使用而挂起。计算时间成本限制了我们探索解决方案空间的粒度,影响了结果的质量。通过说VBSCRIPT而不是RAM密集型MATLAB进行重新格式化将减少MATLAB和/或3PSW因内存而挂起的可能性,即使不会影响持续时间
  • 我已就此通知3PSW的供应商,他们是否计划在未来的版本中包含此信息,我将听天由命


任何帮助/建议/指导/重定向都是非常受欢迎的,这也是您考虑的时间。谢谢。

我认为如果不重写应用程序,您想要的东西是不可能的。如果应用程序能够将其输出写入STDOUT而不是文件,那么您可以实现一个过滤器,在将ASCII数据流写入文件之前将其转换为二进制流,但仅此而已。

我认为不重写应用程序就不可能实现您想要的功能。如果应用程序能够将其输出写入标准输出而不是文件,则可以实现一个过滤器,在将ASCII数据流写入文件之前将其转换为二进制流,但仅此而已。

Powershell(甚至VB.NET或C#可执行文件)将是比vbscript更好的选择。谢谢。我认为,如果我向某个外部脚本(Powershell等)创建(w/in 3PSW)一个系统调用字符串,并将1000x1000矩阵的值作为参数,那么该脚本就可以将值写入/附加到二进制文件中。即使该脚本被限制为一定数量(比如256个)的输入参数,我也可以迭代,直到写出整个矩阵。这种技术可以避免IO持续时间成本(必须写入ASCII输出),即使迭代系统调用会产生剩余的持续时间成本。请让我知道这种方法的明显缺陷/限制。不能马上想到任何。你需要一些二进制格式的专业知识;大概这是标准的东西。Powershell(甚至是VB.NET或C#可执行文件)将是比vbscript更好的选择。谢谢。我认为,如果我向某个外部脚本(Powershell等)创建(w/in 3PSW)一个系统调用字符串,并将1000x1000矩阵的值作为参数,那么该脚本就可以将值写入/附加到二进制文件中。即使该脚本被限制为一定数量(比如256个)的输入参数,我也可以迭代,直到写出整个矩阵。这种技术可以避免IO持续时间成本(必须写入ASCII输出),即使迭代系统调用会产生剩余的持续时间成本。请让我知道这种方法的明显缺陷/限制。不能马上想到任何。你需要一些二进制格式的专业知识;大概这是标准的东西。还有一些选择语言方面的专业知识。谢谢,深入了解3PSW的内部工作可能是取得任何进展的必要条件。我认为让3PSW做一个系统调用,说一个具有二进制编写能力的Powershell脚本,使用浮点值作为输入参数,可能是最有希望的(除了给供应商施加压力)。关于原始技术,我可能会尝试自己编码一些东西,并将分享任何进展。谢谢。谢谢,深入了解3PSW的内部工作可能是取得任何进展的必要条件。我认为让3PSW做一个系统调用,说一个具有二进制编写能力的Powershell脚本,使用浮点值作为输入参数,可能是最有希望的(除了给供应商施加压力)。关于原始技术,我可能会尝试自己编码一些东西,并将分享任何进展。非常感谢。