关于vb的题

来源:百度知道 编辑:UC知道 时间:2024/05/22 02:22:09
在窗体上画一个名称为text1的文本框和一个名称为command1,标题为"转换"的命令按钮.在程序运行时单击"转换"按钮,可以把text1中的大写字母转换为小写,把小写字母转换为大写.
Private Sub Command1_Click()
Dim a$, b$, k%, n%
a$ = ""
' n% = Asc("a") - Asc(?)
For k% = 1 To Len(Text1)
b$ = Mid(Text1, k%, 1)
If b$ >= "a" And b$ <= "z" Then
b$ = String(1, Asc(b$) - n%)
Else
If b$ >= "A" And b$ <= "Z" Then
' b$ = String(1, Asc(b$) ?)
End If
End If
a$ = a$ + b$
Next k%
'Text1.Text = ?

End Sub
非常谢谢,可是能帮我解释一下那几个?处吗

ACSII编码从a-z和A-Z是顺序编码的,你查查ACII编码。
n% = Asc("a") - Asc(?) 就是计算相差值,印象?中是A。通过现在小写字符ASC编码减去这个差值,就变成大写字符的ASC编码的。你喜欢可以n% = Asc("a") - Asc(?) 换成n% = Asc("b") - Asc("B") 或者其他小写和大写字母。

b$ = String(1, Asc(b$) ?) 中?应该是加上这个差值:+n% ,道理如上。

Option Explicit

Private Sub Command1_Click()
Dim a$, b$, k%, n%
a$ = ""
n% = Asc("a") - Asc("A")
For k% = 1 To Len(Text1)
b$ = Mid(Text1, k%, 1)
If b$ >= "a" And b$ <= "z" Then
b$ = String(1, Asc(b$) - n%)
Else
If b$ >= "A" And b$ <= "Z" Then
b$ = String(1, Asc(b$) + n%)
End If
End If
a$ = a$ + b$
Next k%
Text1.Text = a$
End Sub