我有個小問題,這是我剛剛才發現的,當我使用ActivX來做Treeview的時候,使用Generate Tree.vi來吃Array時,發現Generate Tree.vi不能處理「功」字。這是我剛剛忽然發現的,我不知道還有沒有其他字也是不能處理的,我想,如果這個問題不能解決的話,我以後就會盡量少使用ActivX來做Treeview,盡量改用LabVIEW內建的Tree.vi了。
附上檔案,希望有經驗的前輩能幫忙解決,究竟未什麼ActivX的Treeview不能吃「功」字。
我有個小問題,這是我剛剛才發現的,當我使用ActivX來做Treeview的時候,使用Generate Tree.vi來吃Array時,發現Generate Tree.vi不能處理「功」字。這是我剛剛忽然發現的,我不知道還有沒有其他字也是不能處理的,我想,如果這個問題不能解決的話,我以後就會盡量少使用ActivX來做Treeview,盡量改用LabVIEW內建的Tree.vi了。
附上檔案,希望有經驗的前輩能幫忙解決,究竟未什麼ActivX的Treeview不能吃「功」字。
我想這是windows的問題, 對中文碼還是沒有辦法完全支援
可是現在的LabVIEW又還不支援Unicode, 所以目前可能沒辦法吧
這就是常見的許功蓋問題
請問只有許功蓋這三個字嗎?還是有其他的字呢?
還有很多, 因為這些字的Big5碼後面都是以 </strong> 結束 , 所以在一些程式上都會出現誤判, 來龍去脈我也不是很清楚, Google上可以找到很多資料
像我在使用String元件上, 我就發現有非常多的中文字使用上有bug, 上次上NI查資料, 未來的LabVIEW可以支援unicode, 到時候就可以解決這個問題了
問題出在Add Item by Path to Tree.vi裡.
在這個Vi裡有一個Match Pattern的Function,當item to add字串輸入時找出與regular expression相同的字並取後面位元的字串出來.
如果以.+\字元與輸入的item to add字元作比較,難以看出來.
但是如果將string設定成Hex的輸入型態時,就可以看出,可能是因為.+\字元的Hex為2E2B 5C,輸入的item to add的"功能"為AA5C AFE0.這二個Hex字串做Match Pattern時,會在item to add裡找到5C這個Hex字元,並且只取5C(不含)後面的字,也就是"能",所以會有這樣的情形發生.
附帶一提,中文跟英文的字元是不一樣的.
[QUOTE=yao]
我想這是windows的問題, 對中文碼還是沒有辦法完全支援
可是現在的LabVIEW又還不支援Unicode, 所以目前可能沒辦法吧
這就是常見的許功蓋問題
[/QUOTE]
這三個字裡面都有5C這個字元
B35C:許
A55C:功
BB5C:蓋
我想只要裡面含有xx5C的都會有問題.
謝謝Yao跟Jimmy,這下我了解原因了。不過如果照這樣來看,目前LabVIEW裡面的Add Item by Path to Tree.vi是以「\」來判斷是幾層的child,所以一定會有這種問題,因為是要中英文比對。所以解決之道就是更改判斷幾層Child的方法,不過還是不能使用Streen Search的方式,樣想想其他方式才行。
Benjamin38441.4860416667