从压缩包中编程 Gambas/函数
字符代码 | ||
Asc | 返回字符的 ASCII 代码 | 每个字符都有一个 ASCII 代码,例如 Asc("A") 是 65。 |
Chr | 从 ASCII 代码返回一个字符 | Chr(65) 是 "A"。Chr(32) 是空格。Chr(1) 是 Ctrl-A 在检查是否按下了键时,请使用 Key["A"] 或 Key[Key.ShiftKey] 代替键盘上键的数字,而不是字符的数字。 |
字符串的一部分 | ||
Left | 字符串的左边部分 | Left("Hello", 4) 是 "Hell" |
Mid | 字符串的“中间”部分 Mid(String, StartingAt, HowLong) |
Mid("Gambas", 3, 2) 是 mb,因为它是从位置 3 开始且长度为 2 个字符的字符串。 |
Right | 字符串的右边部分 | Right("String", 4) 是 "ring" |
查找和替换 | ||
InStr | 第二个字符串在第一个字符串中的位置 InStr(String, LookFor) InStr(String, LookFor, StartingAt) |
InStr("Gambas is basic", "bas") 是 4,因为 bas 从位置 4 开始。 InStr("Gambas is basic", "bas", 6) 是 11,因为 InStr 只从位置 6 开始查找 bas。 如果未找到字符串,则返回 0。 InStr("Gambas is basic", "bas", -5) 是 11。-5 表示只从末尾开始查找 5 个字符直到末尾,即位置 10,即第二个空格。请注意,最后一个字母 c 距离末尾不是 1 个字符。它就是末尾。i 距离末尾 1 个字符。 |
Replace | 一个字符串,其中每个出现的某些东西都被其他东西替换 Replace(String, LookFor, WithThis) |
Replace("Abracadabra", "a", "*") 是 Abr*c*d*br* Message( Replace(LetterText, "<name>", FirstName&" "&LastName) ) |
Subst | 一个字符串,其标记被其他字符串替换 | Subst("Tell &1 to arrive at &2 PM", "Mark", "4") 是 "Tell Mark to arrive at 4 PM" |
更改大小写 | ||
UCase | 将字符串转换为大写。 | UCase("gerard") 是 "GERARD" |
LCase | 字符串转换为小写 | LCase("GERARD") 是 "gerard" |
修整 | ||
Trim | 两端没有空格的字符串 | Trim(" Hello ") 是 "Hello" |
LTrim | 左修整 从开头删除空格的字符串 |
LTrim(" Hello") 是 "Hello" |
RTrim | 右修整 从结尾删除空格的字符串 |
RTrim("Hello ") 是 "Hello" |
构建字符串 | ||
String | 由同一个字符串重复多次组成的字符串。 String(HowMany, WhichString) |
String(6, "*") 是 "******" String(2, "Gambas") 是 "GambasGambas" |
Space | 一个空格字符串 | Space(8) 是 8 个空格 |
Quote | 带引号的字符串 UnQuote 函数会移除它们。 |
Quote("Hello,") & " she said." 是 "Hello," she said. |
其他 | ||
Len | 字符串的长度 | Len("Gambas is basic") 是 15 |
Comp | 比较两个字符串 Comp(FirstString, SecondString) Comp(FirstString, SecondString, Mode) |
如果两个字符串相同,则返回 0。 如果第一个字符串在字典中出现在第二个字符串之后,则返回 +1 如果第一个字符串在字典中出现在第二个字符串之前,则返回 -1 如果 Comp(UserName, "Akiti", gb.IgnoreCase) = 0 Then Message("Welcome Akiti!") else Message("You’re not Akiti!") |
Split | 一个由字符串组成的数组 Split(String, Separator) |
Dim z As String[] = Split("John,Mary,Paul,Gemma,Lucille,Hamish", ",") 字符串在逗号处分割。 |
正数和负数 | ||
Abs | 数字的绝对值 - 移除任何负号。 | Abs(7) = 7 Abs(-7) = 7 |
Sgn | 数字的符号 (+, 0, –) | Sign(3.14) = +1 Sign(–6) = –1 Sign(0) = 0 |
转换为整数 | ||
Int | 数字的整数部分 负数向下取整;正数舍弃小数部分。 |
Int(3.2) = 3 Int(3.9) = 3 Int(6) = 6 Int(-7.2) = -8 Int(-7.9) = -8 |
Round | 将数字四舍五入到最接近的整数或十的次方 例如,10^2 是 100,所以 Round(x,2) 是四舍五入到最接近的 100。 负数表示小数位数 |
Round(Pi, -2) = 3.14 Print Round(1972, 2) = 2000 |
Frac | 数字的小数部分 日期的小数部分是时间。 |
Frac(3.14) = 0.14 Frac(Date(1999, 12, 13, 14, 20, 00)) = 0.597222222015 CDate(Frac(Date(1999, 12, 13, 14, 20, 00))) = 14:20:00 |
Fix | 数字的整数部分 - 移除任何小数部分 | Fix(3.14) = 3 Fix(-3.14) = -3 |
CInt | 转换为整数 完全舍弃小数部分。 |
Int(3.2) = 3 Int(3.9) = 3 Int(6) = 6 Int(-7.2) = -7 Int(-7.9) = -7 |
Floor | 向下取整到下一个最小的整数 | Floor(3.14) = 3 Floor(-3.14) = -4 |
Ceil | 向上取整到下一个最大的整数 | Ceil(3.14) = 4 Ceil(-3.14) = 3 |
比较 | ||
Max | 两个数字中较大的一个 也适用于日期 |
Max(6,4) = 6 |
Min | 两个数字中较小的一个 也适用于日期 |
Min(6,4) = 4 |
增加和减少 | ||
INC | 增加一个变量;与 x += 1 或 x = x+1 相同 这是一个过程而不是函数(没有括号;它是动词而不是名词) |
INC x |
DEC | 减少一个变量;与 x –= 1 或 x = x–1 相同 这是一个过程而不是函数。 |
DEC x |
空字符串是 NULL。IsNull("") 是 True。IsNull("M") 是 False。
IsAscii | 测试字符串是否仅包含 ASCII 字符。 |
IsBlank | 测试字符串是否仅包含空白字符。 |
IsDigit | 测试字符串是否仅包含数字。 |
IsHexa | 测试字符串是否仅包含十六进制数字。 |
IsLCase | 测试字符串是否仅包含小写字母。 |
IsLetter | 测试字符串是否仅包含字母。 |
IsPunct | 测试字符串是否仅包含可打印的非字母数字字符。 |
IsSpace | 测试字符串是否仅包含空格字符。 |
IsUCase | 测试字符串是否仅包含大写字母。 |
Randomize | 没有它,每次运行程序时您都会得到相同的随机数序列。 | Randomize 只用这个词本身。 |
Rand | 两个数字之间的随机整数。 | Rand(1,6) 是 1 到 6(包括 1 和 6)之间的随机数。这可以是骰子掷出的结果。 Rand(1,2) 是 1 或 2 之一。 |
Rnd | 一个随机浮点数。 | Rnd( ) 在 0 到 1 之间 Rnd(9) 在 0 到 9 之间,但永远不会是 9 本身。 Rnd(10, 20) 在 10 到 20 之间,但永远不会是 20。 |
给定的日期和时间在内部存储为两个整数,第一个是日期,第二个是时间。以下示例可能会解释您对日期和时间可以做什么。
示例
Now | 07/08/2019 19:18:54.929 | 2019 年 7 月 8 日,晚上 8:19 左右 当前日期和时间 |
Format(Now, "dddd dd/mm/yyyy hh:nn:ss") | 星期二 09/07/2019 20:45:13 | 关于 Format() 函数的更多信息将在后面介绍。您可以使用它以您想要的方式显示日期和/或时间,或者任何数字。顺便说一下,现在是 7 月 9 日下午 8:46。 |
Date() | 07/07/2019 23:00:00 | 今天开始的时间,减去一个小时的夏令时。 |
Date(1955, 6, 1) | 05/31/1955 23:00:00 | 某人的生日,减去一个小时的夏令时。日期由年、月、日组成。 |
Date(2019, 12, 25, 6, 15, 0) | 12/25/2019 05:15:00 | 2019 年 12 月 25 日上午 6:15。打开圣诞礼物的时间到了。 年、月、日、时、分、秒 |
DateAdd(Date(1955, 6, 1), gb.Day, 14) | 06/14/1955 23:00:00 | 1955 年 6 月 1 日后的 14 天。再次减去一个小时的夏令时。 除了天数外,您还可以添加其他内容 gb.Second, gb.Minute, gb.Hour, gb.Day, gb.Week, gb.WeekDay (忽略星期六和星期日) gb.Month, gb.Quarter, gb.Year |
DateDiff(Date(2019, 7, 6), Date(Now), gb.Day) | 2 | 两天前到现在的天数 |
DateDiff(Date(Now), Date(2018, 12, 25), gb.Day) | 195 | 圣诞节至今的天数? (现在是 2019 年。上一个圣诞节是 2018 年。) DateDiff(RecentDate, PastDate, Units) |
DateDiff(Date(Now), Date(2019, 12, 25), gb.Day) | 170 | 离圣诞节还有多少天? (现在是 2019 年。) |
DateDiff(Date(1955, 6, 1), Now, gb.Second) | 2022959392 | 我活了多少秒 |
DateDiff(Date(1955, 6, 1), Now, gb.Day) | 23413 | 我活了多少天 |
CLong(DateDiff(Date(1955, 6, 1), Now, gb.Minute)) * 72 | 2427551928 ... 不,等等,是 2427552144 ... 不,等等,是 2427552216 ... | 我出生以来有多少次心跳。 必须将 DateDiff 转换为长整数,因为如果没有它,就会出现溢出问题:它显示为负数。长整数可以容纳非常大的数字。 |
日期和时间的各个部分 | ||
Hour(Now) & " hrs " & Minute(Now) & " mins" | 14 hrs 39 mins | 现在是下午 2:39。 您还可以使用这些 Day(), Hour(), Minute(), Month() Second(), Time(), Week(), Weekday() Year() |
"Rip van Winkle, this is " & Year(Now) | Rip van Winkle, this is 2019 | 日期的年份部分 |
WeekDay(Now) | 2 | 0 = 星期日,6 = 星期六 2 表示今天是星期二。 |
如果 WeekDay(Now) = gb.Tuesday 则 label1.text = "今天是星期二。" 否则 label1.text = "今天不是星期二。" | 今天是星期二。 | gb.Tuesday 是一个值为 2 的常量。使用常量意味着您无需记住星期二是 2。 其他还有 gb.Monday, gb.Wednesday, gb.Thursday, gb.Friday, gb.Saturday 和 gb.Sunday |
Time(Now) | 14:58:44.654 | 日期的时间部分(Now 是当前日期和时间) |
Time(14, 08, 25) | 14:08:25 | 从其各个部分组装时间 Time(Hour, Minutes, Seconds) |
Time() | 15:05:09.515 | 现在的准确时间 |
转换 | ||
Val("1/6/55") | 05/31/1955 23:00:00 | 将字符串转换为日期 1 小时的差额是由于夏令时造成的。 |
Val("1/6/55 2:00") | 06/01/1955 01:00:00 | 1955 年 6 月 1 日凌晨 2:00 1 小时的差额是由于夏令时造成的。 |
Val("1-6-55 2:00") | 无 | 对格式非常敏感… 被忽略 |
Str(2484515) | 2484515 | 如果您提供一个数字,Str() 将将该数字转换为字符串。 |
Dim D As Date = 2484515 label1.text = Str(D) |
16/05/2002 01:00:00 | 该数字已更改为日期。 Str() 将其转换为本地日期格式 |
Dim D As Date = 2484515 label1.text = D |
05/16/2002 | 美国日期格式 |
CDate("1-6-55 2:00") | 错误 | “需要日期,但得到的是字符串。” 不仅敏感,而且被冒犯了... |