找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 269|回复: 1

[其他教程] 炫语言AI辅助之基础函数手册

[复制链接]

7

主题

12

回帖

133

积分

注册会员

积分
133
QQ
发表于 2025-6-29 23:00:33 | 显示全部楼层 |阅读模式
本帖最后由 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版本  
**作者**: ゞ龍ㄙ吻


下载:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

9

主题

11

回帖

143

积分

注册会员

积分
143
QQ
发表于 昨天 22:32 | 显示全部楼层
高级 萌新看不懂
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|炫语言 | 炫彩界面库 | 用户所需, 正是我所做! ( 鄂ICP备2023014763号-1 )

GMT+8, 2025-7-9 11:17 , Processed in 0.100292 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表