新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 在字符串中搜索標記--labview字符串函數之一

        在字符串中搜索標記--labview字符串函數之一

        作者: 時間:2017-01-09 來源:網絡 收藏
        最近在做的項目需要用到分割字符串中的有效數據,而有效數據的分割一般是兩個標識符中間的。一直未能找到合適的字符串函數來解析出來有效數據,而昨天恰恰看到了這樣一個字符串函數——在字符串中搜索標記。

        這個函數的描述是這樣的:

        本文引用地址:http://www.104case.com/article/201701/337126.htm



        其中標記是連接至函數的分隔符或運算符能夠識別的文本片段,在這里就是指我上面所謂的有效數據段。而分隔符是上面所說的標識符。

        其他引腳的說明如下:

        允許空標記?確定函數在遇到多個相鄰分隔符時是否能識別標記。如允許空標記?的值為FALSE(默認值),多個相鄰的分隔符可以分隔輸入字符串中的兩個標記。如允許空標記?的值為TRUE,在每個相鄰分隔符對之間都將返回空的標記字符串。
        輸入字符串是要搜索標記的字符串。
        偏移量是輸入字符串中開始掃描的點。默認值為0,即字符串的起始位置。
        運算符是字符串數組,如輸入字符串包含字符串數組,即使它們沒有被分隔符分隔,函數仍將其視為標記。如輸入字符串的一部分匹配多個運算符,函數將把最長的匹配作為標記。例如,如>、=和>=被定義為運算符,輸入字符串4>=0將生成>=作為下一個標記字符串,偏移量為1。

        運算符中的字符串可能包含下列特殊格式代碼,用于將整個數字作為單個標記進行掃描。
        %d匹配十進制整數
        %o匹配八進制整數
        %x匹配十六進制整數
        %b匹配二進制整數
        %e,%f,%g匹配浮點數或科學計數法實數
        %%匹配單個%字符
        注:如字符串+或-被定義為運算符,函數將無法識別前導(一元)+或-符號。函數始終將其作為單個標記返回。這是“最長匹配”規則的例外情況。

        分隔符該字符串數組可作為標記分隔符。分隔符中的字符串不會作為標記返回,而是用于分隔相鄰的標記。默認的分隔符為空格字符:空格、制表符、換行符和回車。

        使用緩存中的分隔/運算數據?是可選的高級輸入端。如沒有連線,標記字符串仍為正常狀態。通過使用緩存中的分隔/運算數據?可以顯著改進字符串解析的性能。在標記字符串第一次執行時,應將使用緩存中的分隔/運算數據?設置為FALSE,在接下來的執行中,只要運算符和分隔符沒有改變,就將其設置為TRUE。使用移位寄存器并將常量FALSE作為輸入,TRUE作為輸出,可保證運算符和分隔符在循環執行中沒有改變的情況下正確運行。如使用緩存中的分隔/運算數據?的值為TRUE,并且運算符或分隔符在上次執行時發生了改變,將產生錯誤的結果。如運算符和分隔符沒有連線或連線至程序框圖常量,則無需連線使用緩存中的分隔/運算數據?就可得到優化的性能。

        字符串輸出返回無改變的輸入字符串。

        標記后偏移量確定在輸入字符串中的點,這些點緊隨最近找到的標記和任意的分隔符。任何對于輸入字符串的后續搜索都從該偏移量開始。如偏移量小于0或大于輸入字符串中的字符數,或者已經到達字符串的末尾,則標記后偏移量為-1。

        標記字符串是匹配的標記。它可以是運算符中的字符串或輸入字符串中位于分隔符間的任意文本字符串。

        標記索引如標記字符串匹配運算符中的某個元素,則值為標記字符串在運算符中的索引。如標記字符串是其它字符串,標記索引將返回-1。如函數在到達輸入字符串末尾后,仍未找到有效的運算符,標記索引將返回-2。
        利用這個函數我們可以將含有標識符的數據分割成多個有效數據段。

        據此,我寫了一個簡單的小程序。如下:




        輸入字符串輸入進while循環,通過本函數,搜索c0分割的字符,就會將第一個有效數據段分離出來。然后本函數的輸出--標記后偏移量經過移位寄存器再傳給函數的輸入--偏移量。就不再考慮已經標記下來的有效數據段,進而搜尋下一個有效數據段。當最后的的數據段后面已經沒有標識符了,這個輸出的偏移量值為-1,我通過這個條件判定while循環結束。 詳細具體的輸入輸出結果,不妨寫個順序結構,一個步驟一個步驟的看。再次不再詳述。 只是其中的一個輸入——允許空標記?true時,如果兩個標識符中間沒有(兩個標識符直接相連的話),也會顯示出空字符串。如果為false時,則不會顯示空字符串,而是將兩個標識符視為一個標識符進行操作。

        至于運算符輸入項,如果設置了一個條件的話,就會在有效數據段內搜索該運算符,把符合條件的通過標記索引輸出出來。

        具體再使用其他更細化功能的話,不妨再進行詳細實驗。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 乌拉特后旗| 青州市| 高平市| 临朐县| 门源| 兰州市| 那坡县| 确山县| 温宿县| 梁山县| 资源县| 天门市| 兴仁县| 红原县| 龙州县| 马公市| 开原市| 玉屏| 星座| 噶尔县| 阳江市| 慈利县| 仙游县| 阜宁县| 南皮县| 南宁市| 泽州县| 长寿区| 龙井市| 绥中县| 夏邑县| 丹凤县| 左权县| 临泉县| 黔江区| 女性| 景宁| 肃宁县| 军事| 台中县| 密山市|