史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   VB6.0 的Command與 Textbox 新增第2問題... (http://forum.slime.com.tw/thread247666.html)

Living 2009-05-21 06:39 AM

引用:

作者: kppne0931 (文章 2156708)
快好了 剩最後問題. ..友些會有些便成英文小寫顯示 不能全部改大寫嗎?

大小寫是ASCII取得

你只要不取97到122之間的亂數
就不會跳出小寫英文

或是用UCASE()指令也行 (UPPER CASE)

kppne0931 2009-05-21 11:48 AM

引用:

作者: Living (文章 2156709)
大小寫是ASCII取得

你只要不取97到122之間的亂數
就不會跳出小寫英文

或是用UCASE()指令也行 (UPPER CASE)


那請問我應該用多少為最佳......

cwvdavid 2009-05-21 12:21 PM

函數改一下就好了...

Function NewPassword(intLen)
Dim tmpSTR
Dim i
Dim tmp
Randomize
For i = 1 To intLen
tmp = Int(Rnd * (122 - 49) + 49)
if (tmp>=58 and tmp<=64) or (tmp>=91 and tmp<=96) then
i=i-1
Else
tmpSTR = Chr(tmp)
NewPassword = NewPassword & tmpSTR
End if
Next

'將亂數結果的小寫英文字轉成大寫
NewPassword = UCASE(NewPassword)

End Function

mini 2009-05-21 02:01 PM

引用:

作者: kppne0931 (文章 2156402)
我朋友說LEN可以用 但是我不知道啥事LEN 有人可以交我一下嗎?

還有我用了大大提供的程式碼 發現...還是沒有20位....

:on_47:
有啊~

您不會是一個個數的吧
只要加個 Label1
再在程式碼最後加上
Label1.Caption = Len(sRnd)

每次運行 Label1都是 顯示20 啊

kppne0931 2009-05-21 06:17 PM

引用:

作者: cwvdavid (文章 2156812)
函數改一下就好了...

Function NewPassword(intLen)
Dim tmpSTR
Dim i
Dim tmp
Randomize
For i = 1 To intLen
tmp = Int(Rnd * (122 - 49) + 49)
if (tmp>=58 and tmp<=64) or (tmp>=91 and tmp<=96) then
i=i-1
Else
tmpSTR = Chr(tmp)
NewPassword = NewPassword & tmpSTR
End if
Next

'將亂數結果的小寫英文字轉成大寫
NewPassword = UCASE(NewPassword)

End Function

是都變大寫....但是還是沒有20位數 不知道是不是我用錯....

kppne0931 2009-05-21 07:01 PM

引用:

作者: mini (文章 2156854)
:on_47:
有啊~

您不會是一個個數的吧
只要加個 Label1
再在程式碼最後加上
Label1.Caption = Len(sRnd)

每次運行 Label1都是 顯示20 啊


我想....大大可能誤會我的意思了...我要的是 按下Command 然後再Text3產生"20個英數組成的字串" 而不是顯示"20"這個數字....

mini 2009-05-21 07:42 PM

引用:

作者: kppne0931 (文章 2156901)
我想....大大可能誤會我的意思了...我要的是 按下Command 然後再Text3產生"20個英數組成的字串" 而不是顯示"20"這個數字....

您也誤會了
Label1.Caption = Len(sRnd)
是為了證明 sRnd這個字串是 "20個英數" 所組成
※Len 是得到 "字串長度" 的VB保留字

如果要顯示在Text3上:
me.caption 是視窗標題
只要改成 Text3.text 就可以了

================
為了釐清目的,問一下
試著運行一次得到以下字串
NFHQ0PSN1AUQYU2XFP2I
以上字串不就是 "20個英數組成的字串" 嗎?
(還是你另有所指...?)

Living 2009-05-21 09:58 PM

Len()指令是return一個字串中有多少位字母

Mini大做出來的Label是幫助你去"認證"亂數變出來的字串是不是長度為20個字元
不用Len()去直接顯示出長度, 你要每次一個一個下去算也是可以
只是比較浪費時間

我們以前在寫程式時
會習慣到處加一兩行CODE去顯示一些重要的參數或數據
就像Mini教你的Len()就是一樣的道理
這一行指令對你本身的PROJECT沒有幫助
但可以方便寫程式或測試程式的人很快得知一些重要的數據

這些另外加上去的CODE通常最後會拿掉, 不會讓使用者看到或用到

kppne0931 2009-05-21 10:01 PM

引用:

作者: mini (文章 2156908)
您也誤會了
Label1.Caption = Len(sRnd)
是為了證明 sRnd這個字串是 "20個英數" 所組成
※Len 是得到 "字串長度" 的VB保留字

如果要顯示在Text3上:
me.caption 是視窗標題
只要改成 Text3.text 就可以了

================
為了釐清目的,問一下
試著運行一次得到以下字串
NFHQ0PSN1AUQYU2XFP2I
以上字串不就是 "20個英數組成的字串" 嗎?
(還是你另有所指...?)


感謝大大的指引....現在剩下如何輸入密碼正確時Frame才可以使用((請參照問題2)) 這部分我完全不懂 希望大大可以指引我....

Living 2009-05-21 10:06 PM

Frame可以預設為visible=false
這樣一開始就不會有Frame出現

如果輸入的密碼相同

if text.text=password then
frame.visible=true

這樣密碼正確的話Frame就會出現

kppne0931 2009-05-21 10:21 PM

引用:

作者: Living (文章 2156947)
Frame可以預設為visible=false
這樣一開始就不會有Frame出現

如果輸入的密碼相同

if text.text=password then
frame.visible=true

這樣密碼正確的話Frame就會出現

Dim pw As String
pw = 77996

If Text4.Text <> pw Then
Label15.Caption = "密碼錯誤!"
Else
Label15.Caption = "登入成功!感謝您使用本程式"
End If


說明一下 以上程式碼 當text4輸入77996按下Command檢測正確時Frame(有2個)內的"Check"變為可使用(程式剛啟動時為灰色不可動) 不知道上面的要不要改 以及 Frame 要輸入怎樣的程式碼

Living 2009-05-21 10:35 PM

引用:

作者: kppne0931 (文章 2156953)
Dim pw As String
pw = 77996

If Text4.Text <> pw Then
Label15.Caption = "密碼錯誤!"
Else
Label15.Caption = "登入成功!感謝您使用本程式"
End If


說明一下 以上程式碼 當text4輸入77996按下Command檢測正確時Frame(有2個)內的"Check"變為可使用(程式剛啟動時為灰色不可動) 不知道上面的要不要改 以及 Frame 要輸入怎樣的程式碼

Label15.Caption = "登入成功!感謝您使用本程式"
這一段是密碼正確時執行
所有你要的功能都加在這行之後
比如說frame.enabled=true

kppne0931 2009-05-21 10:50 PM

引用:

作者: Living (文章 2156958)
Label15.Caption = "登入成功!感謝您使用本程式"
這一段是密碼正確時執行
所有你要的功能都加在這行之後
比如說frame.enabled=true

感謝大大的積極指引 目前已經完成 小弟相當感謝...

Living 2009-05-21 10:53 PM

沒看到CODE不知道你哪個部分語法有錯

我估計可能是東COPY一塊, 西COPY一塊, 湊在一起時出問題

kppne0931 2009-05-21 10:55 PM

引用:

作者: Living (文章 2156967)
沒看到CODE不知道你哪個部分語法有錯

我估計可能是東COPY一塊, 西COPY一塊, 湊在一起時出問題

其實....是frame.enabled=true 的frame沒有加上編號1 2 所以沒辦法XD....別打我ㄚ....


所有時間均為台北時間。現在的時間是 10:22 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1