|
本帖最后由 yyz513 于 2025-6-29 23:02 编辑
根据官方文档个人收集整理,错误之处大佬请指点勿喷
文件下载位于底部 炫语言AI知识库:https://ima.qq.com/wiki/?shareId ... 238fdadbb3e81f4670e
# 炫语言手册之基础函数篇 v1.0
## 目录
1. [调试输出函数](#调试输出函数)
2. [数学计算函数](#数学计算函数)
3. [编码转换函数](#编码转换函数)
4. [字符串处理函数](#字符串处理函数)
5. [数值转换函数](#数值转换函数)
6. [系统信息函数](#系统信息函数)
7. [控制台函数](#控制台函数)
8. [消息框函数](#消息框函数)
9. [程序控制函数](#程序控制函数)
10. [条件选择函数](#条件选择函数)
11. [延时函数](#延时函数)
12. [剪贴板函数](#剪贴板函数)
13. [文件操作函数](#文件操作函数)
14. [随机数函数](#随机数函数)
15. [函数使用注意事项](#函数使用注意事项)
16. [函数分类总结](#函数分类总结)
---
## 调试输出函数
### 基本调试输出
```xc
// 基本调试输出 - 自动分割参数
调试输出("Hello", 123, 3.14) // 输出: Hello, 123, 3.14
// 不分割参数的调试输出
调试输出2("Hello", 123, 3.14) // 输出: Hello1233.14
// 格式化调试输出
调试输出格式化("字符串: %s, 整数: %d, 浮点数: %.2f", "测试", 100, 3.14159)
调试输出格式化A(A"字符串: %s, 整数: %d, 浮点数: %.2f", A"测试", 100, 3.14159)
```
### 数据调试输出
```xc
// 十六进制调试输出
字节型 data[4] = {0x12, 0x34, 0x56, 0x78}
调试输出十六进制(data, 4) // 输出: 12 34 56 78
调试输出十六进制(data, 4, 假, 假) // 输出: 12345678
// 十进制调试输出
调试输出十进制(data, 4) // 输出: 18 52 86 120
// 二进制调试输出
调试输出二进制(data, 4) // 输出: 10010 110100 1010110 1111000
```
---
## 数学计算函数
### 基本数学函数
```xc
// 三角函数
双浮点型 角度 = 3.14159 / 4
调试输出(取正弦(角度)) // sin(π/4)
调试输出(取余弦(角度)) // cos(π/4)
调试输出(取正切(角度)) // tan(π/4)
// 反三角函数
调试输出(取反正弦(0.5)) // asin(0.5)
调试输出(取反余弦(0.5)) // acos(0.5)
调试输出(取反正切(1.0)) // atan(1.0)
调试输出(取反正切2(1.0, 1.0)) // atan2(1.0, 1.0)
// 双曲函数
调试输出(取双曲正弦(2.0)) // sinh(2.0)
调试输出(取双曲余弦(2.0)) // cosh(2.0)
调试输出(取双曲正切(2.0)) // tanh(2.0)
// 指数和对数
调试输出(取E的N次方(2.0)) // exp(2.0)
调试输出(取2的N次方(10)) // exp2(10)
调试输出(取平方根(16)) // sqrt(16)
调试输出(取次方(2, 8)) // pow(2, 8)
// 其他数学函数
调试输出(取绝对值(-10)) // abs(-10)
调试输出(取最大值(10, 20)) // max(10, 20)
调试输出(取最小值(10, 20)) // min(10, 20)
```
---
## 编码转换函数
### 字符串编码转换
```xc
// Unicode与ANSI转换
文本型A ansiStr = W2A("Unicode字符串")
文本型 unicodeStr = A2W(A"ANSI字符串")
// Unicode与UTF-8转换
文本型A utf8Str = W2U("Unicode字符串")
文本型 unicodeStr2 = U2W(U"UTF-8字符串")
// ANSI与UTF-8转换
文本型A utf8Str2 = A2U(A"ANSI字符串")
文本型A ansiStr2 = U2A(U"UTF-8字符串")
// Base64编码解码
文本型A base64Str = Base64编码A(A"原始数据", 6)
文本型A originalData = Base64解码A(base64Str.取地址(), base64Str.取大小())
// URL编码解码
文本型A urlEncoded = URL编码UTF8(A"测试数据")
文本型A urlDecoded = URL解码UTF8(urlEncoded.取地址())
```
---
## 字符串处理函数
### 字符串操作
```xc
文本型 text = "Hello World"
// 字符串截取
文本型 left = 文本取左边(text, 5) // "Hello"
文本型 right = 文本取右边(text, 5) // "World"
文本型 sub1 = 文本取中间(text, 0, 5) // "Hello"
文本型 sub2 = 文本取中间2(text, 0, 5) // "Hello"
文本型 sub3 = 文本取中间3(text, "Hello", "World") // " "
// 字符串查找
整型 pos1 = 文本取子文本位置(text, "World") // 6
整型 pos2 = 文本取子文本位置2(text, "World", 0) // 6
整型 pos3 = 文本取子文本位置右边(text, "o") // 7
整型 pos4 = 文本取子文本位置右边2(text, "o", 5) // 7
// 字符串替换
文本型 replaced = 文本替换(text, "World", "炫语言") // "Hello 炫语言"
文本型A replacedA = 文本替换A(A"Hello World", A"World", A"炫语言")
// 字符串插入
文本型 inserted = 文本插入(text, 5, " Beautiful ") // "Hello Beautiful World"
文本型A insertedA = 文本插入A(A"Hello World", 5, A" Beautiful ")
```
### 字符串格式化
```xc
// 大小写转换
文本型 upper = 文本到大写(text) // "HELLO WORLD"
文本型 lower = 文本到小写(text) // "hello world"
文本型A upperA = 文本到大写A(A"hello world") // A"HELLO WORLD"
文本型A lowerA = 文本到小写A(A"HELLO WORLD") // A"hello world"
// 去除空格
文本型 trimmed = 文本去除空格(" Hello World ") // "Hello World"
文本型 leftTrimmed = 文本去除左边空格(" Hello World ") // "Hello World "
文本型 rightTrimmed = 文本去除右边空格(" Hello World ") // " Hello World"
// 去除空行
文本型 noEmptyRows = 文本去除空行("Hello\n\nWorld\n\n") // "Hello\nWorld\n"
```
### 随机字符串生成
```xc
// 生成随机字符
文本型 randChars = 文本取随机字符(10) // 10个随机字符
文本型A randCharsA = 文本取随机字符A(10) // 10个随机ANSI字符
// 生成随机数字
文本型 randNums = 文本取随机数字(6) // 6位随机数字
文本型A randNumsA = 文本取随机数字A(6) // 6位随机ANSI数字
// 重复文本
文本型 repeated = 文本取重复文本("abc", 3) // "abcabcabc"
文本型A repeatedA = 文本取重复文本A(A"abc", 3) // A"abcabcabc"
```
---
## 数值转换函数
### 数值转字符串
```xc
// 整数转十六进制
文本型 hex1 = 整数到十六进制文本(255) // "FF"
文本型 hex2 = 整数到十六进制文本(255, 假, 假) // "ff"
文本型 hex3 = 整数到十六进制文本(255, 真, 假) // "00FF"
// 长整数转十六进制
文本型 hex64 = 长整数到十六进制文本(123456789) // "075BCD15"
// 整数转二进制
文本型 bin1 = 整数到二进制文本(10) // "1010"
文本型 bin64 = 长整数到二进制文本(10) // "1010"
// 数据转二进制文本
字节型 data[4] = {0x12, 0x34, 0x56, 0x78}
文本型A binData = 数据到二进制文本A(data, 4) // A"00010010 00110100 01010110 01111000"
文本型 binDataW = 数据到二进制文本(data, 4) // "00010010 00110100 01010110 01111000"
```
### 字符串转数值
```xc
// 十六进制转整数
整型 num1 = 十六进制文本到整数("FF") // 255
长整型 num2 = 十六进制文本到长整数("FF") // 255
// 二进制转整数
整型 num3 = 二进制文本到整数("1010") // 10
长整型 num4 = 二进制文本到长整数("1010") // 10
// 字符串转浮点数
双浮点型 float1 = 文本到双浮点("3.14159") // 3.14159
```
---
## 系统信息函数
### 环境变量和路径
```xc
// 获取环境变量
文本型 path = 取环境变量("PATH")
调试输出(path)
// 获取所有环境变量
字典<文本型, 文本型> envMap
如果 取环境变量到字典(envMap)
列表循环 迭代器 iter; envMap
调试输出(iter.键, " = ", iter.值)
// 获取路径信息
文本型 runDir = 取运行目录() // 程序运行目录
文本型 currentDir = 取当前目录() // 当前工作目录
文本型 exeName = 取执行文件名() // 程序文件名
文本型 exePath = 取执行文件全路径() // 程序完整路径
// 检查系统架构
如果 是否64位()
调试输出("64位系统")
否则
调试输出("32位系统")
```
### 屏幕信息
```xc
// 获取屏幕尺寸
整型 screenWidth = 取屏幕宽度() // 屏幕宽度
整型 screenHeight = 取屏幕高度() // 屏幕高度
调试输出("屏幕尺寸:", screenWidth, "x", screenHeight)
```
---
## 控制台函数
### 控制台操作
```xc
// 控制台暂停
控制台暂停() // 等待用户按键
// 控制台输入
字符型A input[256] = {0}
控制台输入A(input, 256) // 读取ANSI字符串
调试输出("输入内容:", input)
// 控制台格式输出
控制台格式输出("Hello %s, 数字: %d\n", "World", 123)
控制台格式输出A(A"Hello %s, 数字: %d\n", A"World", 123)
```
---
## 消息框函数
### 消息框操作
```xc
// 简单消息框
消息框("这是一个消息", "标题")
// 系统消息框
整型 result = 系统消息框(NULL, "确认删除?", "确认", MB_YESNO | MB_ICONQUESTION)
如果 result == IDYES
调试输出("用户选择是")
否则
调试输出("用户选择否")
```
---
## 程序控制函数
### 程序执行和退出
```xc
// 执行程序
HWND hWnd = NULL
执行(hWnd, "open", "calc.exe", "", "", SW_SHOW) // 打开计算器
执行(hWnd, "open", "notepad.exe", "", "", SW_SHOW) // 打开记事本
执行(hWnd, "open", "http://www.xcgui.com", NULL, NULL, SW_SHOW) // 打开网站
// 程序退出
结束(0) // 正常退出
```
---
## 条件选择函数
### 条件选择
```xc
// 三目运算符
整型 result1 = 选择(1 < 2, 10, 20) // 结果为10
// 多项选择
整型 result2 = 多项选择(2, 0, 1, 2, 3, 4) // 结果为2
文本型 result3 = 多项选择(2, "AAA", "BBB", "CCC", "DDD") // 结果为"CCC"
```
---
## 延时函数
### 时间控制
```xc
// 延时操作
延时(1000) // 延时1000毫秒
// 消息循环
处理事件() // 处理Windows消息
```
---
## 剪贴板函数
### 剪贴板操作
```xc
// 设置剪贴板文本
HWND hWnd = 取HWND()
文本型 text = "要复制的文本"
如果 剪贴板置文本(hWnd, text.取地址(), text.取大小())
调试输出("文本已复制到剪贴板")
// 获取剪贴板文本
文本型 clipText = 剪贴板取文本(hWnd)
调试输出("剪贴板内容:", clipText)
```
---
## 文件操作函数
### 简单文件操作
```xc
// 写入文件
字节型 data[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
整型 written = 文件写入("test.bin", data, 10)
调试输出("写入字节数:", written)
// 读取文件
字节集 fileData = 文件读取("test.bin")
调试输出("文件大小:", fileData.取大小())
// 读取文本文件
文本型A textContent = 文件读取文本A("test.txt")
调试输出("文件内容:", textContent)
```
### 文件夹操作
```xc
// 创建文件夹
整型 result = 文件夹创建("newfolder")
如果 result == 0
调试输出("文件夹创建成功")
否则 result == -1
调试输出("文件夹创建失败")
否则 result == -2
调试输出("文件夹已存在")
// 检查文件夹是否存在
如果 文件夹是否存在("newfolder")
调试输出("文件夹存在")
否则
调试输出("文件夹不存在")
// 删除文件夹
如果 删除文件夹("newfolder")
调试输出("文件夹删除成功")
否则
调试输出("文件夹删除失败")
```
### 文件检查
```xc
// 检查文件是否存在
如果 文件是否存在("test.txt")
调试输出("文件存在")
否则
调试输出("文件不存在")
// 检查路径是否存在
如果 路径是否存在("C:\\Windows")
调试输出("路径存在")
否则
调试输出("路径不存在")
// 复制文件
如果 复制文件("dest.txt", "source.txt")
调试输出("文件复制成功")
否则
调试输出("文件复制失败")
```
---
## 随机数函数
### 随机数生成
```xc
// 设置随机数种子
置随机数种子(取时间戳())
// 生成随机数
整型 rand1 = 取随机数(1, 100) // 1到100之间的随机数
整型 rand2 = 取随机数(0, 9) // 0到9之间的随机数
```
---
## 函数使用注意事项
### 编码问题
```xc
// ✅ 正确的编码使用
文本型 unicodeStr = "Unicode字符串"
文本型A ansiStr = A"ANSI字符串"
文本型A utf8Str = U"UTF-8字符串"
// ✅ 正确的编码转换
文本型A converted = W2A(unicodeStr)
文本型 convertedBack = A2W(ansiStr)
// ❌ 错误的编码使用
文本型A wrong = "Unicode字符串" // 错误!应该用A""
文本型 wrong2 = A"ANSI字符串" // 错误!应该用""
```
### 内存管理
```xc
// ✅ 正确的内存使用
字节集 data = 文件读取("largefile.bin")
// 使用data...
// 自动释放内存
// ✅ 正确的字符串使用
文本型 str = "Hello World"
// 使用str...
// 自动释放内存
// ❌ 错误的内存使用(避免手动管理)
// 不要手动分配和释放内存,使用炫语言的内置类型
```
### 错误处理
```xc
// ✅ 正确的错误处理
如果 文件是否存在("test.txt")
文件类 file
如果 file.打开("test.txt")
// 处理文件
file.关闭()
否则
调试输出("文件打开失败")
否则
调试输出("文件不存在")
// ✅ 检查函数返回值
整型 result = 文件夹创建("newfolder")
如果 result == 0
调试输出("创建成功")
否则
调试输出("创建失败,错误码:", result)
```
---
## 函数分类总结
| 分类 | 主要函数 | 用途 |
|------|----------|------|
| 调试输出 | `调试输出()`, `调试输出格式化()` | 程序调试和日志输出 |
| 数学计算 | `取正弦()`, `取平方根()`, `取次方()` | 数学运算 |
| 编码转换 | `W2A()`, `A2W()`, `Base64编码A()` | 字符串编码转换 |
| 字符串处理 | `文本取左边()`, `文本替换()`, `文本到大写()` | 字符串操作 |
| 数值转换 | `整数到十六进制文本()`, `十六进制文本到整数()` | 数值格式转换 |
| 系统信息 | `取运行目录()`, `取屏幕宽度()`, `是否64位()` | 系统信息获取 |
| 控制台 | `控制台暂停()`, `控制台输入A()` | 控制台交互 |
| 消息框 | `消息框()`, `系统消息框()` | 用户界面交互 |
| 程序控制 | `执行()`, `结束()` | 程序执行控制 |
| 时间控制 | `延时()`, `处理事件()` | 时间相关操作 |
| 剪贴板 | `剪贴板置文本()`, `剪贴板取文本()` | 剪贴板操作 |
| 文件操作 | `文件写入()`, `文件读取()`, `文件夹创建()` | 文件系统操作 |
| 随机数 | `置随机数种子()`, `取随机数()` | 随机数生成 |
这些基础函数为炫语言编程提供了强大的功能支持,掌握这些函数的使用方法对于开发高质量的炫语言程序至关重要。
---
**版本**: 1.0
**更新日期**: 2025年6月29日
**适用版本**: 炫语言最新IDE版本
**作者**: ゞ龍ㄙ吻
下载:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|