Re: [AHK-] 計次中如何保持最少位數?

看板EzHotKey作者 (陣雨)時間14年前 (2011/03/14 21:31), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《ScorAlan (漫步在雲端)》之銘言: : 請問大家 : 我想要做一個可以幫我計次的 : 按F10就加1後輸出 : F11就保持原狀不加也不減後輸出 : F12則是減一後輸出 : 但在使用者輸入上需要的最低顯示位數卻不固定 : 譬如開頭是用1,2,3...9,10,11...99,100,101...表示最少顯示位數為一個位數 : 01,02,03,...09,10,11,.....99,100,101...表示最少顯示位數為兩個位數 : 001,002,003,...,009,010,011,...,099,100,111...表示最少顯示為數為三個位數 : 又譬如有時輸入從56開始計算 : 這樣也就沒辦法知道需要最少顯示位數是一個位數還是兩個位數 : 就先當成最低顯示位數為一個位數 : 按下F10時會輸出57,按下F11時會輸出56,按下F12時會輸出55 : 但如果是056開始算的話就可以知道最低顯示位數為三個位數 : 不曉得這樣子有沒有辦法能夠讓程式自動判斷且輸出呢? : 感謝 : ----------------------------------------------------------------------- : Gui, Add, Edit, x11 y14 w100 h20 , %Edit% : Gui, Add, Button, x11 y44 w100 h30 , Button : Gui, Show, autosize, NEW Window : Return : GuiClose: : ExitApp : ButtonButton: : controlgettext,inputvar,edit1, NEW Window : return : F10:: : inputvar:=inputvar+1 : msgbox,%inputvar% : return : F11:: : msgbox,%inputvar% : return : F12:: : inputvar:=inputvar-1 : msgbox,%inputvar% : return : ------------------------------------------------------------------ 用下面這段來找出位數 if instr(inputvar, "0") = 1 a := strlen(inputvar) else a = 1 return 然後在變動inputvar時 加入setformat setformat, float, 0%a%.0 inputvar += 1.0 return 0是表示填零 %a%是數字字元數 負數時"-"也是字元之一 要再寫個判斷的式子 0是小數點位數 1.0是為了讓inputvar變為浮點數(float 是這樣說吧? = =) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.117.1.186 ※ 編輯: fossil313 來自: 59.117.1.186 (03/14 21:40)

03/15 06:33, , 1F
太感謝了 ^^
03/15 06:33, 1F
文章代碼(AID): #1DVXZE2c (EzHotKey)
文章代碼(AID): #1DVXZE2c (EzHotKey)