以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 完整的数据转换文档 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2084) |
-- 作者:狐狸爸爸 -- 发布时间:2009/3/13 15:13:00 -- 可否实现在线EXCEL功能,不让EXCEL到外飞 数据转换函数
示例 Dim s As String = "123.12"Output.Show(Cdate("1999-12-31")) Output.Show(CInt(s)) Output.Show(CDbl(s) + 100)
|
-- 作者:狐狸爸爸 -- 发布时间:2009/3/13 15:13:00 -- 带判断的转换
Dim v As Long = 123 Return CLng(s) + v
除了String(字符)类型外,所有的基本数据类型,都有一个TryParse方法,用于将其它类型的数据转换为本类型的数据。
Type: 目标数据类型,例如Date、Integer、Long、Double等等。 如果转换成功,则将转换结果存储在变量Variant中,并返回True,否则返回False。
Dim d As Double Double.TryParse(s, d) \'将变量s的内容转换为数值,并存放在变量d中 Output.Show(d + 100) \'输出结果是223.1 再例如: Dim d As Date \'变量d用于存储转换结果If Date.TryParse("1999/12/31", d) Then \'如果转换成功 Output.Show(d) \'输出转换结果 Else Output.Show("无效日期格式") \'给出错误提示 End If |
-- 作者:狐狸爸爸 -- 发布时间:2009/3/13 15:13:00 -- 最直接的转换
Visual Basic提供了一个Val函数,用于将字符转换为数值,即使转换失败,也不会报错,而是返回0。
Dim s2 As String = "123.12" Output.Show(Val(s1) + 100) \'等于100 Output.Show(Val(s2) + 100) \'等于232.12
|
-- 作者:狐狸爸爸 -- 发布时间:2009/3/13 15:21:00 -- 日期列的一个意外
Dim d As Date = CurrentTable.Current("日期").AddYears(360)
t = Date.Today - CurrentTable.Current("日期") OutPut.Show("距今天数:" & t.TotalDays)
t = Date.Today - CDate(CurrentTable.Current("日期")) OutPut.Show("距今天数:" & t.TotalDays)
Dim d As Date = CDate(CurrentTable.Current("日期")) t = Date.Today - d OutPut.Show("距今天数:" & t.TotalDays) |
-- 作者:狐狸爸爸 -- 发布时间:2009/3/13 15:23:00 -- 变量的作用范围
为说明上述原理,我们哟内一些例子说明,这些代码本身没有意义,甚至显得非常冗余,但是可以很好地说明问题:
If m > 0 Then Dim n As integer \'n在流程语句之内定义,只能在本流程内使用 n = 1 \'使用n m = n + 1 \'使用m和n End If m = m * 2 \'使用m
If m > 0 Then Dim n As integer \'n在流程语句之内定义,只能在本流程内使用 n = 1 \'使用n m = n + 1 \'使用m和n End If m = m * 2 \'使用m n = n * 2 \'这会导致代码出错,因为变量n不能在流程外使用
If m > 0 Then Dim n As Integer n = 1 Else Dim n As Integer n = 10 End If Select Case m Case 1,3,5,7,8 Dim n As Integer = 1 m = n Case 2,4,6,8,10 Dim n As Integer = 1 m = 2 End Select Messagebox.Show(IIF(m = 1,"奇数","偶数")) 实际使用的时候,如果某一个变量需要在不同的流程中使用,应该直接在流程外定义,如果某个变量只在流程内使用,那么就应该在该流程内定义。
Dim m As Integer = 1If m > 0 Then Dim n As Integer n = 1 Select Case m Case 1,3,5,7,8 n = 1 Case 2,4,6,8,10 n = 2 End Select Messagebox.Show(IIF(n =1,"奇数","偶数")) End If
Dim m As integerDim n As Integer If n > 0 Then Dim n As integer m = 1 End If |
-- 作者:狐狸爸爸 -- 发布时间:2009/3/13 15:24:00 -- 再谈空值
\'代码 End If
|
-- 作者:i52117 -- 发布时间:2009/3/13 15:27:00 -- 谢谢狐狸爸爸 |
-- 作者:kylin -- 发布时间:2009/3/13 16:38:00 -- 收到 |
-- 作者:菜鸟foxtable -- 发布时间:2009/3/14 8:42:00 -- 收藏 |
-- 作者:林中侠 -- 发布时间:2009/3/14 8:45:00 -- 写入帮助中 |