2011年4月9日,第一稿
2011年8月28日,第二稿
2011年8月28日,第二稿
7.1 文件间路径的关系
读、写文件(或VI)最关键的步骤就是要准确的定位文件所在的位置,或者说:是要知道被读、写文件的所在路径。
在LabVIEW开发环境中,文件常量子选板提供了许多有关路径的函数和VI,使用时在程序框图中选择:
》编程
》函数
》文件I/O
》文件常量
参见下图。
在LabVIEW开发环境中,文件常量子选板提供了许多有关路径的函数和VI,使用时在程序框图中选择:
》编程
》函数
》文件I/O
》文件常量
参见下图。
在这个子选板中即包含了路径函数也包含了路径VI,对于它们的了解可以通过帮助文件也可以通过程序设计得到更直观的了解。下面我们就通过一段程序来看看这些函数与所引导路径之间的基本关系。
7.1.1 文件常量与所引导的路径间关系
文件常量选板提供的这些函数和内置VI与所引导路径关系我们通过一个VI来演示。具体参见下图。
由上图可见,这些函数与内置VI给出了不同位置的路径,比如引导到vi.lib、引导到系统目录下等等。有了这些路径关系,使用者就可以在程序设计中合理的使用这些函数和内置VI。
实际上,程序中最常用的是“当前VI路径”函数。在前面的动态调用中已经看到过它的实际使用状况。
实际上,程序中最常用的是“当前VI路径”函数。在前面的动态调用中已经看到过它的实际使用状况。
7.1.2 非确定性文件路径的引导
使用上面所展示的函数和内置VI,所导引的路径都是指向某个确定性的文件位置。有时候我们无法定位文件的确定性位置或希望保存文件在自定义的位置时,还可以通过“文件对话框”或“文件路径输入控件”来实现。
文件对话框
在程序框图中选择:
》函数
》编程
》文件I/O
》高级文件函数
》文件对话框
文件路径输入控件
在前面板中,选择:
》控件
》新式
》字符串和路径
》文件路径输入控件
参见下图所示。
文件对话框
在程序框图中选择:
》函数
》编程
》文件I/O
》高级文件函数
》文件对话框
文件路径输入控件
在前面板中,选择:
》控件
》新式
》字符串和路径
》文件路径输入控件
参见下图所示。
在保存某些文件和测试报告时,文件对话框更实用一些。因为有更多对话参数可以设定和选择。
7.1.3 路径的简单拆分
上面图7-2中,我们使用“当前VI路径”函数打开的是第7章文件夹的路径,因为“文件常量引导的路径关系.vi”就放置在第7章文件夹中。
现在,假如我们希望使用第7章的“文件常量引导的路径关系.vi”来打开第6章的文件夹,那就需要进行路径的拆分或创建。LabVIEW中也提供了路径拆分和创建的函数,具体操作为:
》函数
》编程
》文件I/O
》拆分路径(创建路径)
参见下图所示。
现在,假如我们希望使用第7章的“文件常量引导的路径关系.vi”来打开第6章的文件夹,那就需要进行路径的拆分或创建。LabVIEW中也提供了路径拆分和创建的函数,具体操作为:
》函数
》编程
》文件I/O
》拆分路径(创建路径)
参见下图所示。
下面我们看看它的实际应用方法。
当前VI路径——给出了当前所运行VI的路径
拆分路径——拆分一次后导引到“第7章”文件夹
拆分路径——拆分二次后导引到“例子”文件夹
创建路径——创建一个新的第6章文件夹路径
实际的路径关系参见下图。
拆分路径——拆分一次后导引到“第7章”文件夹
拆分路径——拆分二次后导引到“例子”文件夹
创建路径——创建一个新的第6章文件夹路径
实际的路径关系参见下图。
拆分路径和创建路径是经常使用的函数,通过上面展示的关系和拆分及创建过程,应该能够很好的理解拆分和创建函数。
这里需要注意的是:当前VI路径函数是拆分和创建路径的相对起始路径,如果当前VI路径函数所放的位置不同时(比如在其它VI中使用),那么它所拆分和生成的路径将都会发生相应的改变。
这里需要注意的是:当前VI路径函数是拆分和创建路径的相对起始路径,如果当前VI路径函数所放的位置不同时(比如在其它VI中使用),那么它所拆分和生成的路径将都会发生相应的改变。
7.1.4 图形化应用程序与开发环境间的路径关系
最意想不到的是往往在生成图形化应用程序后,原来在开发环境下所创建的读、写文件路径会发生改变,致使图形化应用程序文件的读写出现错误。
这是初学者比较常见的现象之一,而这种现象往往发生在一些非VI类型文件(如Word、INI文件等)读写过程中。出现这种现象的主要原因是由于生成后的图形化应用程序改变了原来存放文件的位置,导致了应用程序读写文件时发生错误。
下面我们通过一个实验来观察图形化应用程序以及开发环境间的路径差别。首先新建一个文件夹,并命名为:“路径试验”。然后,在这个文件夹中新建一个项目:路径关系。
在这个项目中,我们创建两个文件夹分别是:Word(包括一个.Docx文件)和INI(包括一个.ini文件)。
项目中我们还有一个“路径的观察.vi”。
整个项目结构参见下图所示。
下面通过“路径的观察.vi”来察看路径,这里我们添加了一个路径关系,就是引导Word文档。参见下图。
现在将该项目生成应用程序,再来看看到底那些部分发生了改变,参见下图。
现在我们在来看看应用程序运行后,路径间的关系。参见下图。
显然,此时再进行文件的读写就会发生错误,找不到文件。通过这样一个简单的演示,我们就应该清楚,非VI类文件路径在开发环境中与应用程序中是不同的。
下面给出一个简单的解决方法,利用应用程序属性节点来控制不同状态下的路径,参见下图。
下面给出一个简单的解决方法,利用应用程序属性节点来控制不同状态下的路径,参见下图。
按这种方式设计程序并打包后,应用程序导引Word文档的路径关系参见下图。
由于LabVIEW版本间的不同,有可能出现不同的data文件处理方式,所以使用者在出现问题后可以象我们所做的那样,先简单打包试试,慢慢调整后即可。
下面在给出一个利用应用程序属性节点实用的方法。即在开发环境下,停止运行;在应用程序时,退出LabVIEW。比如应用程序验证为非法用户时,退出。参见下图。
下面在给出一个利用应用程序属性节点实用的方法。即在开发环境下,停止运行;在应用程序时,退出LabVIEW。比如应用程序验证为非法用户时,退出。参见下图。

















