VB.NET的新麻烦?。。?/h2>首先你定义了两个变量x%,y% 其默认值为0
然后执行条件判断满足第一个条件x1000 ,就将x赋值给y 此时x=0,y=0
跳出判断 , 显示两个0 。
我引用他的话 , 后面就是你没有给他赋值 。差一点代码 。
dim x% ,y%
'可以加一个检测textbox1.text 里只能输入整数的代码 。
x=textbox1.text
if...
'就是你后面的啦不过我也很菜,所以也不知道对不对,对你有 没有用啊 。你试试看吧
VB.NET UNICODE码 显示Public Class Form1
Dim b() As Byte
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
b = System.Text.Encoding.Default.GetBytes(TextBox1.Text)
For i = 0 To UBound(b)
TextBox2.AppendText(i.ToString" ")
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Text = System.Text.Encoding.Default.GetString(b)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Text = "Google free online translation service instantly translates text and web pages 。该翻译器支持: 中文(简体), 中文(繁体), shqip, 日本语, русский, langue fran?aise ..."
End Sub
End ClassVB.Net中用String类型表示字符串,内部采用Unicode编码 。当需要在网络或串口中收发字符串时,就需要在String和Byte数组之间进行转换,这项功能可以通过System.Text.Encoding类实现 。
Private zeroChars() As Char = {ChrW(0)}
Dim descBytes() As Byte = System.Text.Encoding.Unicode.GetBytes(mDescription)
Dim description As String = System.Text.Encoding.Unicode.GetString(rBuffer, offset, length).TrimEnd(zeroChars)
说明:C语言中用'\0'表示字符串结束,而String类型中0是有效字符 , 显示时是空白字符,会占用显示宽度 , 可以用TrimEnd方法将字符串末尾的零字符去掉 。
主要叙说一下StrConv 函数conversion参数最后两个值的含义和用途,并举例说明 。
1、语法
StrConv(string, conversion, LCID)
StrConv 函数的语法有下面的命名参数:
部分 说明
string 必要参数 。要转换的字符串表达式 。
conversion 必要参数 。Integer 。其值的和决定转换的类型 。
LCID 可选的 。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值 。)
设置值
conversion 参数的设置值为:
常数 值 说明
vbUpperCase 1 将字符串文字转成大写 。
vbLowerCase 2 将字符串文字转成小写 。
vbProperCase 3 将字符串中每个字的开头字母转成大写 。
vbWide* 4* 将字符串中单字节字符转成双字节字符 。
vbNarrow* 8* 将字符串中双字节字符转成单字节字符 。
vbKatakana** 16** 将字符串中平假名字符转成片假名字符 。
vbHiragana** 32** 将字符串中片假名字符转成平假名字符 。
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode 。
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页 。
*应用到远东国别 。
**仅应用到日本 。
说明:前面3个参数比较简单,后面4个我们用不上,就不说了 , 主要说说后面两个 。
2、ANSI 格式
语法中说的缺省码页就是ANSI模式 , 英文环境下 的ANSI 格式其实也就是ASCII码,其它环境就不一样了,比如中文环境,就是ASCII,一个字节表示一个字符,GB2312,2个字节表示一个汉字,所以中文环境下的ANSI格式就是ASCII码 GB2312,早期的DOS系统中纯文本就是这种格式,这种格式下,通过最高位来判断是中文字符(最高位是1)还是ASCII字符(最高位是0) 。中文环境下保存文本文件时一般都采用ANSI格式,不过也有其他格式,比如UTF-8 。
3、Unicode编码
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码 。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求 。Unicode用两个字节表示一个字符,涵盖了世界上所有字符,和以前的字符集都不兼容,VB内部字符串就是采用Unicode编码,所以当我们打开一个文本文件读入数据的时候,其内存中的内容和文本文件的内容是不一样的 , 经过了转换 , 除非你采用二进制方式读入 。
4、vbUnicode和vbFromUnicode含义
有了上面叙说,这两个参数的含义就好理解了,就是Unicode编码和ANSI编码的互换 , 例如:
textline= StrConv(plaintext,vbUnicode)
这儿textline是以字符串变量 , plaintext是以字节变量保存着ANSI模式的字符内容,例如,“2”这个字符,一个字节 , 值是50 , 16进制是32 , “皖”这个汉字,两个字节,值是205和238,同样是这两个字符,作为字符串在内存中都是两个字节,例如,“2”这个字符在内存中16进制值是0032 。当VB打开一个文件读取文本内容是,实际上自动进行了上述转换 。
plaintext = StrConv(textline, vbFromUnicode)
这儿进行相反的转换,就是将Unicode字符串转换成ANSI模式,转换结果必须以字节方式保存 。
5、vbUnicode和vbFromUnicode用途
由于字符在内存中的内容和文件中的内容不一致,所以必须要用到这种转换,特别是系统间进行数据交换、数据加密和解密,如果不做转换可能导致得不到正确的结果 。
比如,我们对一个文本文件进行加密 , 这个文件是ANSI格式存储的,当从文件内容读入一行到内存的时候,自动将内容转换成了Unicode格式,如果这时候对其做加密运算 , 其结果和文件中字符串加密结果是不一样的,这样的结果如果让别人解密将无法得到正确的结果 。如果对读入内存的内容先做个转换(textline是读入内容):
plaintext = StrConv(textline, vbFromUnicode)
再对plaintext做加密 , 其结果就一样了 。
举例(按行做加密和解密运算 , 算法是AES Base64):
[vb] view plain copy
Status = "Encrypting File"
Open FileName For Input As #1' 打开输入文件 。
Open FileName2 For Output As #2' 打开输出文件 。
Do While Not EOF(1)
Line Input #1, TextLine
plaintext = StrConv(TextLine, vbFromUnicode)
Status = "Encrypting Data"
m_Rijndael.SetCipherKey pass, KeyBits
m_Rijndael.ArrayEncrypt plaintext, ciphertext, 0
Status = "Converting Text to Base64"
TextLine = Base64Encode(ciphertext)
Status = ""
Print #2, TextLine' 将字符串写入文件 。
Loop
Close
[vb] view plain copy
Status = "Decrypting File"
Open FileName For Input As #1' 打开输入文件 。
Open FileName2 For Output As #2' 打开输出文件 。
Do While Not EOF(1)
Line Input #1, TextLine
Status = "Converting Base64 to Text"
ciphertext = Base64Decode(TextLine)
Status = "Decrypting Data"
m_Rijndael.SetCipherKey pass, KeyBits
If m_Rijndael.ArrayDecrypt(plaintext, ciphertext, 0)0 Then
Status = ""
Exit Sub
End If
TextLine = StrConv(plaintext, vbUnicode)
For i = 0 To UBound(plaintext)
Debug.Print plaintext(i)
Next i
k = InStr(1, TextLine, Chr(0), vbBinaryCompare)
If k0 Then TextLine = Left(TextLine, k - 1)'截掉加密时补的0
MsgBox TextLine"end"
Status = ""
Print #2, TextLine' 将字符串写入文件 。
Loop
Close
VB.NET想用GetWindowRECT获取某窗口的坐标,但测试结果是L,T,R,B显示都是0,0,0,0很简单,原因有二 。第一 , VB里long是32位,但是VB.NET里是64位,Dim ksWND As Integer才对 。第二,VB在API里默认传址,而VB.NET默认传值,所以API里要添加Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,添加"ByRef"lpRect As RECT) As Integer
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,byref lpRect As RECT) As Integer
Private Structure RECT
Dim Left As Integer
Dim Top As Integer
Dim Right As Integer
Dim Bottom As Integer
End Structure
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ksWND As integer
Dim ksTitle As String
Dim winS As RECT
If TextBox1.Text"" Then
ksTitle = TextBox1.Text
ksWND = FindWindow(vbNullString, ksTitle)
GetWindowRect(ksWND, winS)
MsgBox("左上角坐标("winS.Left","winS.Top")"vbCrLf"右下角坐标("winS.Right","winS.Bottom")"vbCrLf"窗口高"winS.Bottom - winS.Top"窗口宽"winS.Right - winS.Left)
Else
MsgBox("请填写窗口名称")
End If
End Sub
VB.NET 写日期到access 格式不对因为Access日期格式设置了 , 在写入中会出现格式不对,可以根据情况自定义修改日期格式写入Access中 。
语法如下:format([日期],"YYYY-MM-DD")
示例:
Format(#2003/10/1#, "aaaa")'星期三
Format(#2003/10/1#, "dddd")'Wednesday
Format(#2003/10/1#, "ww")'402003年的第40周
【包含vb.net显示前导0的词条】Format(#2003/10/1#, "mmmm") 'October
Format(#2003/10/1#, "oooo")'十月
Format(#2003/10/1#, "q")'42003年的第4季
日期时间扩展:
(:):时间分隔符 。在一些区域,可能用其他符号来当时间分隔符 。格式化时间值时 , 时间分隔符可以分隔时、分、秒 。时间分隔符的真正字符在格式输出时取决于系统的设置 。
(/) :日期分隔符 。在一些区域,可能用其他符号来当日期分隔符 。格式化日期数值时 , 日期分隔符可以分隔年、月、日 。日期分隔符的真正字符在格式输出时取决于系统设置 。
c :以 ddddd 来显示日期并且以 ttttt 来显示时间 。如果想显示的数值无小数部分,则只显示日期部分 , 如果想显示的数值无整数部分,则只显示时间部分 。
d :以没有前导零的数字来显示日 (1 – 31) 。
dd :以有前导零的数字来显示日 (01 – 31) 。
ddd :以简写来表示日 (Sun –Sat) 。
dddd :以全称来表示日 (Sunday –Saturday) 。
ddddd :以完整日期表示法显示(包括年、月、日),日期的显示要依系统的短日期格式设置而定 。缺省的短日期格式为 m/d/yy 。
dddddd :以完整日期表示法显示日期系列数(包括年、月、日),日期的显示要依系统识别的长日期格式而定 。缺省的长日期格式为 mmmm dd, yyyy 。
aaaa :与dddd 一样,它只是该字符串的本地化版本 。
w :将一周中的日期以数值表示(1 表星期日~ 7表星期六) 。
ww :将一年中的星期以数值表示 (1 – 54) 。
m :以没有前导零的数字来显示月 (1 – 12) 。如果 m 是直接跟在 h 或 hh 之后,那么显示的将是分而不是月 。
mm :以有前导零的数字来显示月 (01 – 12) 。如果m是直接跟在h或hh之后,那么显示的将是分而不是月 。
mmm :以简写来表示月 (Jan –Dec) 。
mmmm :以全称来表示月 (January –December) 。
oooo :与mmmm一样,它只是该字符串的本地化版本 。
q :将一年中的季以数值表示 (1 – 4) 。
y :将一年中的日以数值表示 (1 – 366) 。
yy :以两位数来表示年 (00 – 99) 。
yyyy :以四位数来表示年 (00 – 99) 。
h :以没有前导零的数字来显示小时 (0 – 23) 。
Hh :以有前导零的数字来显示小时 (00– 23) 。
N :以没有前导零的数字来显示分 (0 – 59) 。
Nn :以有前导零的数字来显示分 (00 – 59) 。
S :以没有前导零的数字来显示秒 (0 – 59) 。
Ss :以有前导零的数字来显示秒 (00 – 59) 。
t t t t t :以完整时间表示法显示(包括时、分、秒),用系统识别的时间格式定义的时间分隔符进行格式化 。如果选择有前导零并且时间是在 10:00 A.M. 或 P.M.之前 , 那么将显示有前导零的时间 。缺省的时间格式为 h:mm:ss 。
AM/PM :在中午前以 12 小时配合大写 AM 符号来使用;在中午和 11:59 P.M.间以 12 小时配合大写 PM 来使用 。
am/pm :在中午前以 12 小时配合小写 am 符号来使用;在中午和 11:59 P.M.间以 12 小时配合小写 pm 来使用 。
A/P :在中午前以 12 小时配合大写A符号来使用;在中午和 11:59 P.M.间以12 小时配合大写P来使用 。
a/p :在中午前以 12 小时配合小写a符号来使用;在中午和 11:59 P.M.间以 12 小时配合小写p来使用 。
AMPM :在中午前以 12 小时配合系统设置的 AM字符串文字来使用;在中午和 11:59 P.M. 间以 12 小时配合系统设置的 PM 字符串文字来使用 。AMPM 可以是大写或小写,但必须和您的系统设置相配 。其缺省格式为 AM/PM 。
vb字符格式转化为时间格式的函数VB.net 中 取系统时间
Dim datestr As String = ""
datestr = Format(Now(), "yyyy/MM/dd H:mm:ss ffff")
用户定义的日期/时间格式(Format 函数)
下表显示可用于创建用户定义的日期/时间格式的字符 。与 Visual Basic 的早期版本不同,这些格式字符区分大小写 。
字符
说明
(:)
时间分隔符 。在某些区域设置中,可以使用其他字符表示时间分隔符 。时间分隔符在格式化时间值时分隔小时、分钟和秒 。格式化输出中用作时间分隔符的实际字符由系统的 LocaleID 值确定 。
(/)
日期分隔符 。在某些区域设置中 , 可以使用其他字符表示日期分隔符 。日期分隔符在格式化日期值时分隔日、月和年 。格式化输出中用作日期分隔符的实际字符由您的区域设置确定 。
(%)
用于表明不论尾随什么字母,随后字符都应该以单字母格式读取 。也用于表明单字母格式应以用户定义格式读取 。有关更多详细信息,请参见下面的内容 。
d
将日显示为不带前导零的数字(如 1) 。如果这是用户定义的数字格式中的唯一字符 , 请使用 %d 。
dd
将日显示为带前导零的数字(如 01) 。
ddd
将日显示为缩写形式(例如 Sun) 。
dddd
将日显示为全名(例如 Sunday) 。
M
将月份显示为不带前导零的数字(如一月表示为 1) 。如果这是用户定义的数字格式中的唯一字符,请使用 %M 。
MM
将月份显示为带前导零的数字(例如 01/12/01) 。
MMM
将月份显示为缩写形式(例如 Jan) 。
MMMM
将月份显示为完整月份名(例如 January) 。
gg
显示时代/纪元字符串(例如 A.D.)
h
使用 12 小时制将小时显示为不带前导零的数字(例如 1:15:15 PM) 。如果这是用户定义的数字格式中的唯一字符 , 请使用 %h 。
hh
使用 12 小时制将小时显示为带前导零的数字(例如 01:15:15 PM) 。
H
使用 24 小时制将小时显示为不带前导零的数字(例如 1:15:15) 。如果这是用户定义的数字格式中的唯一字符,请使用 %H 。
HH
使用 24 小时制将小时显示为带前导零的数字(例如 01:15:15) 。
m
将分钟显示为不带前导零的数字(例如 12:1:15) 。如果这是用户定义的数字格式中的唯一字符,请使用 %m 。
VB.Net 的Chr(0) 问题很多文章说Chr(0)是字符串结束符 , 表示到此字符串已经结束 , 不必往下读
比如添加
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim g() As Char = TextBox1.Text.ToCharArray
End Sub
在调试时何以查询g() 就可知道TextBox1到底有多少个字符
vb.net显示前导0的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、vb.net显示前导0的信息别忘了在本站进行查找喔 。
推荐阅读
- 益智游戏《数数》,数数的数学游戏
- js数组splice和slice,js 数组reverse
- css3让图片垂直居中显示,css图片垂直居中对齐
- 包含最新资讯直播软件交流吧的词条
- java代码生成器模板 java 代码生成器 开源
- 手机css3底部固定的简单介绍
- 二手显卡970怎么样的,970显卡二手700多贵吗
- 如何做好制程管理ppt,如何做好制程管理
- java鼠标连点程序代码 java鼠标连点器