在字符串中搜索标记--labview字符串函数之一

发布者:SparklingMoon最新更新时间:2015-09-08 来源: eefocus关键字:字符串  搜索标记  labview  字符串函数 手机看文章 扫描二维码
随时随地手机看文章
    最近在做的项目需要用到分割字符串中的有效数据,而有效数据的分割一般是两个标识符中间的。一直未能找到合适的字符串函数来解析出来有效数据,而昨天恰恰看到了这样一个字符串函数——在字符串中搜索标记。

    这个函数的描述是这样的:

    在字符串中搜索标记--labview字符串函数之一

    其中标记是连接至函数的分隔符或运算符能够识别的文本片段,在这里就是指我上面所谓的有效数据段。而分隔符是上面所说的标识符。

 

  其他引脚的说明如下:

允许空标记?确定函数在遇到多个相邻分隔符时是否能识别标记。如允许空标记?的值为FALSE(默认值),多个相邻的分隔符可以分隔输入字符串中的两个标记。如允许空标记?的值为TRUE,在每个相邻分隔符对之间都将返回空的标记字符串。
输入字符串是要搜索标记的字符串。
偏移量是输入字符串中开始扫描的点。默认值为0,即字符串的起始位置。
运算符是字符串数组,如输入字符串包含字符串数组,即使它们没有被分隔符分隔,函数仍将其视为标记。如输入字符串的一部分匹配多个运算符,函数将把最长的匹配作为标记。例如,如>、=和>=被定义为运算符,输入字符串4>=0将生成>=作为下一个标记字符串,偏移量为1。

运算符中的字符串可能包含下列特殊格式代码,用于将整个数字作为单个标记进行扫描。
%d 匹配十进制整数
%o 匹配八进制整数
%x 匹配十六进制整数
%b 匹配二进制整数
%e,%f,%g 匹配浮点数或科学计数法实数
%% 匹配单个%字符
  注:  如字符串+或-被定义为运算符,函数将无法识别前导(一元)+或-符号。函数始终将其作为单个标记返回。这是“最长匹配”规则的例外情况。

分隔符该字符串数组可作为标记分隔符。 分隔符中的字符串不会作为标记返回,而是用于分隔相邻的标记。默认的分隔符为空格字符:空格、制表符、换行符和回车。

 

使用缓存中的分隔/运算数据?是可选的高级输入端。如没有连线,标记字符串仍为正常状态。通过使用缓存中的分隔/运算数据?可以显著改进字符串解析的性能。在标记字符串第一次执行时,应将使用缓存中的分隔/运算数据?设置为FALSE,在接下来的执行中,只要运算符和分隔符没有改变,就将其设置为TRUE。使用移位寄存器并将常量FALSE作为输入,TRUE作为输出,可保证运算符和分隔符在循环执行中没有改变的情况下正确运行。如使用缓存中的分隔/运算数据?的值为TRUE,并且运算符或分隔符在上次执行时发生了改变,将产生错误的结果。如运算符和分隔符没有连线或连线至程序框图常量,则无需连线使用缓存中的分隔/运算数据?就可得到优化的性能。

 

字符串输出返回无改变的输入字符串。

 

标记后偏移量确定在输入字符串中的点,这些点紧随最近找到的标记和任意的分隔符。任何对于输入字符串的后续搜索都从该偏移量开始。如偏移量小于0或大于输入字符串中的字符数,或者已经到达字符串的末尾,则标记后偏移量为-1。

 

标记字符串是匹配的标记。它可以是运算符中的字符串或输入字符串中位于分隔符间的任意文本字符串。

 

标记索引如标记字符串匹配运算符中的某个元素,则值为标记字符串在运算符中的索引。如标记字符串是其它字符串,标记索引将返回-1。如函数在到达输入字符串末尾后,仍未找到有效的运算符,标记索引将返回-2。
    利用这个函数我们可以将含有标识符的数据分割成多个有效数据段。

据此,我写了一个简单的小程序。如下:

在字符串中搜索标记--labview字符串函数之一

在字符串中搜索标记--labview字符串函数之一
    输入字符串输入进while循环,通过本函数,搜索c0分割的字符,就会将第一个有效数据段分离出来。然后本函数的输出--标记后偏移量经过移位寄存器再传给函数的输入--偏移量。就不再考虑已经标记下来的有效数据段,进而搜寻下一个有效数据段。当最后的的数据段后面已经没有标识符了,这个输出的偏移量值为-1,我通过这个条件判定while循环结束。 详细具体的输入输出结果,不妨写个顺序结构,一个步骤一个步骤的看。再次不再详述。 只是其中的一个输入——允许空标记?  true时,如果两个标识符中间没有(两个标识符直接相连的话),也会显示出空字符串。如果为false时,则不会显示空字符串,而是将两个标识符视为一个标识符进行操作。

    至于运算符输入项,如果设置了一个条件的话,就会在有效数据段内搜索该运算符,把符合条件的通过标记索引输出出来。

    具体再使用其他更细化功能的话,不妨再进行详细实验。

关键字:字符串  搜索标记  labview  字符串函数 引用地址:在字符串中搜索标记--labview字符串函数之一

上一篇:labview数据互转的积累
下一篇:labview中要注意数据的表示格式

推荐阅读最新更新时间:2024-03-30 23:04

labview怎么调试?基于labview的USB调试教程案例分析
      labview怎么调试是我们在使用NI LabVIEW软件时候经常会碰到的问题,当软件不能按照预期的情况运行时,我们可能会需要有一个自己的调试技巧和技术工具箱。 这些技巧和技术有些是常用的,而剩下的可能是您自己摸索出来的一些技巧。   我们与JKI的LabVIEW程序架构师 ( Cer TI fied LabVIEW Architects, CLA ) 以及LabVIEW社区的朋友进行了交流,向他们学习一些快速识别、隔离和修复漏洞的“绝密”技巧。我们了解到以下几个巧妙的调试技巧。   利用探针   探针是LabVIEW调试的第一个也是最简单的工具,但它们却是非常强大的工具。您可极其轻松地将探针置于线路上,在查找问题
[测试测量]
采用LabVIEW的近红外测量方案
近红外谱区(1)是指位于可见谱区与中红外谱区之间的一段电磁波谱,即介于780-2526nm的光区。近红外光谱(Near-infrared Spectroscopy, NIRS)可划分为短波长近红外波段和长波长近红外波段,其波段范围分别为780-1100nm和1100-2526nm。由于频率较高,NIR谱区分子对其吸收主要是分子振动的倍频与合频吸收。NIRS分析技术是通过被分析物质中的含氢基团,如OH、CH、NH、SH、PH等在近红外区域内表现有特征吸收,利用计算机技术及化学计量学方法,对扫描测试样品的光学数据进行一系列的分析处理,最后完成该样品有关成分的定量分析任务。由于它具有不破坏样品且快速、准确等优点,是20世纪90年代以来发
[模拟电子]
采用<font color='red'>LabVIEW</font>的近红外测量方案
LabVIEW 2010中轻松实现同步测量
 无论你是在使用一个数据采集设备中的不同的子系统,还是在高通道数的系统中需要同步多个数据采集设备,NI的LabVIEW 2010都可以将数据采集和生成的同步问题变得简单。 定时和同步技术可以关联或协调事件发生的时间。将事件同步到一个已知的标准,例如数据采集设备上的采样时钟,即为相对于一个事件为另外一个事件计时,或者说对一个事件做出响应。定时和同步事件是测试、控制和设计应用时的重要基本元素,并在任何系统中都需谨慎考虑。   所有的National Instruments 数据采集 (DAQ)设备均配备NI-DAQmx。NI-DAQmx是一个灵活的硬件驱动程序,可以用来在多种语言中编程,包括LabVIEW程序。其任务包括获取、
[测试测量]
基于LabVIEW的光伏电源监控系统设计
0 引言 光伏发电技术是世界新能源的发展趋势之一,它要求更讲究系统效率、更可靠、也更经济。传统意义上的监控一般建立在近距离条件下,即近距离监控,这种方式要求配备一定的维护人员进行,花费大量的人力、物力和财力,而且随着电站规模的扩大,已经越来越不能适应现代化经济的发展,因此,一种成本低、低功耗、界面简单容易操作、具有配置通用性、方便实用的光伏电源监控系统势在必行。而这种实时监控系统的广泛应用,也会在很大程度上促进国内新能源技术的进一步研究,对于能源及相关工业的发展具有非常重要的意义。 本文在研究虚拟仪器及相关通讯技术的基础上,运用LabView对光伏电源监控界面的研发,最终形成一种基于LabVIEW的多功能监控界面设计方案。此监控
[测试测量]
基于<font color='red'>LabVIEW</font>的光伏电源监控系统设计
通过LabVIEW实现高压无功补偿监控系统的设计与应用
  1  引言   近年来,随着大功率非线性负荷的不断增加,电网的无功冲击和谐波污染呈不断上升的趋势,导致电网的线损增加,电压合格率降低,严重影响供电质量和经济性。采用静止型动态无功补偿装置(svc)可以起到稳定系统电压、改善系统不平衡、提高负荷功率因数等作用,现已成功应用于冶金、采矿和电气化铁路等冲击性负荷的补偿上,而且还具有更广泛的应用前景。                   大容量、实用化svc装置的设计与运行过程中,监控系统的设计与实现是非常必要的,它起着运行信息管理中心的作用。以往监控系统软件通常针对某个具体应用对象采用文本语言编程开发,用户界面不美观,开发周期长,移植和更改困难,而labview开发软件具有广泛的硬件支
[电源管理]
通过<font color='red'>LabVIEW</font>实现高压无功补偿监控系统的设计与应用
基于LabVIEW开发平台实现多通道数据测试系统的应用方案
在以往的测试系统中,一般采用引线式测试法实现信号的同步采集、显示与分析,但在武器系统参数测试装置所工作的高温、高冲击、高压的恶劣环境中,引线式测试法布线复杂,干扰大,采集系统与信号分析系统的实时连通极为困难,而且在测试结束回收过程中,一旦系统意外掉电,则测试数据丢失,导致测试失败。引线式测试法在解决此类问题时遇到了功能上的瓶颈。为解决此类情况,存储式测试法作为一种新的测试方法被提出,即把数据采集与分析系统分割为两个相互独立的子系统,测试时利用存储测试技术,将传感器与记录电路做成一个整体,直接放到待测环境中对相关参数进行测试并存储。测试结束后由专用数据分析系统对测试数据进行后期分析与处理。随着计算机技术的发展,使用虚拟仪器对数据分析
[测试测量]
基于<font color='red'>LabVIEW</font>开发平台实现多通道数据测试系统的应用方案
LabVIEW——事件结构
事件结构 Event Structure 也是一种选择结构,程序根据发生的事件决定执行哪一个页面的程序。此时,LabVIEW 的界面编写与 Visual Basic 的界面程序有些类似。 一. 按照产出源来区分事件的种类 按照事件的产生源来区分,LabVIEW有以下几种事件: 图1:配置事件 1.应用程序事件(),这类事件主要反映整个应用程序状态的变化,例如:程序是否关闭,是否超时等。 2. VI事件(),这类事件反映当前VI状态的改变。例如:当前VI是否被关闭,是否选择了菜单中的某一项等等。 3.动态事件(Dynamic),用于处理用户自己定义的或在程序
[测试测量]
基于LabVIEW的多路时序控制脉冲发生器设计
  0 引 言   在过程控制和自动测量中,经常需要一些时序控制脉冲来触发和关闭不同的控制单元和功能部件的工作。时序脉冲信号的产生,传统上一般采用硬件方式实现,早期大多采用计数器和寄存器进行设计,近年普遍采用可编程逻辑器件(PFGA)或数字信号处理器(DSA)。采用硬件方式实现的时序脉冲信号发生器存在仪器功能单一,信号输出通道路数较少,参数调节不方便,仪器的升级换代困难等缺点;而采用基于LabVIEW的“虚拟仪器”概念设计制作的时序脉冲发生器却具有界面直观、功能多样、参数调节方便、容易升级换代等特点。   1 LabVIEW简介   实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engi
[测试测量]
基于<font color='red'>LabVIEW</font>的多路时序控制脉冲发生器设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved