hblovetian
新手,望各位大哥大姐指點(diǎn)。
級(jí)別: 略有小成
![]() |
宏指令中怎么取一個(gè)字符的前幾位,后幾位,和中間幾位。如'0123456789'怎么取12345,12345678,6789。怎么編寫宏指令,謝謝。 |
|
---|---|---|
|
xwk0711
級(jí)別: 略有小成
![]() |
在說明書里面找類似能實(shí)現(xiàn)這樣功能的指令,自己再摸索 |
---|---|
|
hblovetian
新手,望各位大哥大姐指點(diǎn)。
級(jí)別: 略有小成
![]() |
都看了幾遍手冊(cè)了,沒有能實(shí)現(xiàn)的函數(shù),望指點(diǎn) |
|
---|---|---|
|
tyw123456
級(jí)別: 家園常客
![]() ![]() |
你這個(gè)問題有問題,你所說的123456789是十進(jìn)制數(shù),但是我們實(shí)際用或者你設(shè)數(shù)字元件的時(shí)候都沒有十進(jìn)制元件選用的也就是說我們看到的0123456789實(shí)際上是觸摸屏內(nèi)部將16位或是32位的數(shù)值轉(zhuǎn)化過的數(shù)值,實(shí)際上他在內(nèi)部123456789是075BCD15 也就是一個(gè)32位的字符,然后你要獲取的只能說獲取這個(gè)數(shù)的高16位或低16位,然后轉(zhuǎn)換為16位的時(shí)候,你又可以獲取他的高8位和低八位了,指令是什么LOWORO HIWORO LOBIYE HIBIYE,我忘了, 你所說的獲取高中低字是不正確的,這些字符處理的最低是一個(gè)八位二進(jìn)制的數(shù)據(jù),假設(shè)你說按高中低的話也就是 00000000 00000000 00000000 這樣的一段24位二進(jìn)制字符 |
|
---|---|---|
|
lixianji_007
級(jí)別: 工控俠客
![]() |
圖片:
![]() 函數(shù)庫里有這個(gè)函數(shù)的,不過威綸的宏指令手冊(cè)里沒有講解,做了個(gè)樣例仿真一下可以的; macro_command main() char a[10],b[10] //定義 GetData(a[0],"TK6070iP",lw,20,10) //讀取源字符串 StringMid(a[2],6,b[0] ) //從字符串lw20開始的第3個(gè)字符截取6個(gè)字符保存到b[0]開始地址; SetData (b[0],"TK6070iP",lw,100,10) //截取的字符串保存到lw100開始的地址 end macro_command [ 此帖被lixianji_007在2017-03-30 12:22重新編輯 ] |
|
---|---|---|
本帖最近評(píng)分記錄:
|
tyw123456
級(jí)別: 家園常客
![]() ![]() |
圖片:
![]()
試了一下,沒有達(dá)到那種效果啊,還是我對(duì)數(shù)字元件的設(shè)置有錯(cuò),我設(shè)置的是32位浮點(diǎn)數(shù),感覺不對(duì)吧,數(shù)值元件的數(shù)值又不是每一個(gè)數(shù)都是一個(gè)8位二進(jìn)制,怎么可以填充的滿10個(gè)CHAR 函數(shù)呢 |
|
---|---|---|
|
lixianji_007
級(jí)別: 工控俠客
![]() |
這個(gè)是字符串截取,不是浮點(diǎn)數(shù)的截取,如果要10進(jìn)制數(shù)的截取的話可以用算術(shù)運(yùn)算解決,如數(shù)據(jù)是123456,要取前4位的話就除以100,取商;如要取后4位的話就用減法;也可用邏輯運(yùn)算和算術(shù)運(yùn)算配合的方法實(shí)現(xiàn)。 |
|
---|---|---|
|
hblovetian
新手,望各位大哥大姐指點(diǎn)。
級(jí)別: 略有小成
![]() |
就是要這樣的效果,謝謝。我這個(gè)是和電子秤通訊讀里面的數(shù)據(jù),數(shù)據(jù)全是ASCII碼。比如現(xiàn)在稱顯示凈重500KG,接收的數(shù)據(jù)就是wn500.000kg,然后我就是想取500.00進(jìn)行加減運(yùn)算。不知取出的ASCI碼直接不轉(zhuǎn)換能按照10進(jìn)制的方式運(yùn)算嗎?比如第一次是500(ASCII碼),第二次700(ASCII碼),可以直接700-500=200,得出第二次加了200kg的東西嗎?因?yàn)橛玫淖杂煽谕ㄓ崳肐NPUT接收的數(shù)據(jù)第一位(起始位)和第十位(停止位)都在里面,,每次發(fā)送讀取數(shù)據(jù),接收的數(shù)據(jù)都比上一次錯(cuò)2個(gè)位置。 |
|
---|---|---|
|