|
1 | 1 | # Tutorial_cpp_SimpleIniParser |
2 | 2 |
|
3 | | -本教程创建于: 2025-12-08 |
4 | | -作者: Charliechen114514 |
5 | | -联系方式: 725610365@qq.com |
| 3 | +> **现代C++工程实践:手写一个 INI 解析器** |
6 | 4 |
|
7 | | -> 本项目隶属于组织[Awesome-Embedded-Learning-Studio](https://github.com/Awesome-Embedded-Learning-Studio)的文档教程 |
| 5 | +本项目配套视频教程:[现代C++工程实践 - B站](https://space.bilibili.com/294645890/lists/7045956) |
8 | 6 |
|
9 | | -## 快速说明 |
| 7 | +--- |
10 | 8 |
|
11 | | -> codes_and_assets下放置着本教程所有的代码, 或硬件电路图或者是PCB文件等 |
12 | | -> 具体的细节,请到[具体的说明步骤🖱](./codes_and_assets/instractions.md) |
13 | | -> tutorial下放置着教程的Markdown文件, 您可以使用其他Markdown浏览器阅读这些教程 |
14 | | -> 您如果不知道从何开始,请到[从这里开始!🖱](./tutorial/index.md)查看! |
| 9 | +## 📺 视频教程 |
15 | 10 |
|
16 | | -## 这是什么? |
| 11 | +### 基础知识 |
17 | 12 |
|
18 | | -## 快速目录 |
| 13 | +| # | 视频标题 | B站链接 | 状态 | |
| 14 | +|---|----------|---------|------| |
| 15 | +| 1 | std::string_view | [📺](https://www.bilibili.com/video/BV1c5qDBiExY/) | ✅ | |
| 16 | +| 2 | std::optional与错误处理 | [📺](https://www.bilibili.com/video/BV1g9BHBgEFC/) | ✅ | |
| 17 | +| 3 | 编写split函数(上) | [📺](https://www.bilibili.com/video/BV1ZUBzBiEtZ/) | ✅ | |
| 18 | +| 4 | 编写split函数(下) | [📺](https://www.bilibili.com/video/BV1fmBzBTE95/) | ✅ | |
| 19 | +| 5 | CMake速讲 | [📺](https://www.bilibili.com/video/BV1LAvUBEEUR/) | ✅ | |
| 20 | +| 6 | trim的实现 | [📺](https://www.bilibili.com/video/BV15TvUB1EiC/) | ✅ | |
| 21 | + |
| 22 | +### IniParser 实战 |
| 23 | + |
| 24 | +| # | 视频标题 | B站链接 | 状态 | |
| 25 | +|---|----------|---------|------| |
| 26 | +| 1 | 从IniParser出发! | [📺](https://www.bilibili.com/video/BV154qjB8EA5/) | ✅ | |
| 27 | +| 2 | 需求细化与接口设计 | [📺](https://www.bilibili.com/video/BV1NVqRBXEem/) | ✅ | |
| 28 | +| 3 | 正式手写IniParser(1) | [📺](https://www.bilibili.com/video/BV1s6i7B1ENs/) | ✅ | |
| 29 | +| 4 | 正式手写IniParser(2) | [📺](https://www.bilibili.com/video/BV1s6i7B2ESh/) | ✅ | |
| 30 | +| 5 | 正式手写IniParser(3) | [📺](https://www.bilibili.com/video/BV1P6i7B2EmH/) | ✅ | |
| 31 | +| 6 | 正式手写IniParser(4) | [📺](https://www.bilibili.com/video/BV1A1i7BVELA/) | ✅ | |
| 32 | + |
| 33 | +--- |
| 34 | + |
| 35 | +## 📚 学习路线 |
| 36 | + |
| 37 | +``` |
| 38 | +┌─────────────────────────────────────────────────────────┐ |
| 39 | +│ IniParser 学习路线 │ |
| 40 | +├─────────────────────────────────────────────────────────┤ |
| 41 | +│ │ |
| 42 | +│ Step 1: 基础知识准备 │ |
| 43 | +│ ├── std::string_view (字符串视图) │ |
| 44 | +│ ├── std::optional (可选值与错误处理) │ |
| 45 | +│ ├── split/trim 函数实现 (字符串处理) │ |
| 46 | +│ └── CMake 基础 │ |
| 47 | +│ │ |
| 48 | +│ Step 2: 需求分析与设计 │ |
| 49 | +│ ├── 从 IniParser 出发 (项目介绍) │ |
| 50 | +│ └── 需求细化与接口设计 │ |
| 51 | +│ │ |
| 52 | +│ Step 3: 实战实现 │ |
| 53 | +│ ├── 正式手写 IniParser (1-4) │ |
| 54 | +│ └── 完整功能实现 │ |
| 55 | +│ │ |
| 56 | +└─────────────────────────────────────────────────────────┘ |
| 57 | +``` |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | +## 🗂️ 项目结构 |
| 62 | + |
| 63 | +``` |
| 64 | +Tutorial_cpp_SimpleIniParser/ |
| 65 | +├── codes_and_assets/ # 代码和资源文件 |
| 66 | +├── tutorial/ # 教程 Markdown 文件 |
| 67 | +│ ├── index.md # 教程导航页 |
| 68 | +│ ├── 从简单的IniParser开启我们的旅程.md |
| 69 | +│ ├── 分解需求——刨析split.md |
| 70 | +│ ├── 改进我们的split.md |
| 71 | +│ └── 实现我们的ini_mappings.md |
| 72 | +├── include/ # 头文件目录 |
| 73 | +├── src/ # 源码目录 |
| 74 | +└── CMakeLists.txt # CMake 配置文件 |
| 75 | +``` |
| 76 | + |
| 77 | +--- |
| 78 | + |
| 79 | +## 🚀 快速开始 |
| 80 | + |
| 81 | +### 环境要求 |
| 82 | + |
| 83 | +- **编译器**: 支持 C++17 的 GCC 8+ / Clang 7+ / MSVC 2017+ |
| 84 | +- **构建工具**: CMake 3.10+ |
| 85 | + |
| 86 | +### 构建项目 |
| 87 | + |
| 88 | +```bash |
| 89 | +# 克隆仓库 |
| 90 | +git clone https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_cpp_SimpleIniParser.git |
| 91 | +cd Tutorial_cpp_SimpleIniParser |
| 92 | + |
| 93 | +# 构建 |
| 94 | +mkdir build && cd build |
| 95 | +cmake .. |
| 96 | +make |
| 97 | + |
| 98 | +# 运行示例 |
| 99 | +./iniparser_demo |
| 100 | +``` |
| 101 | + |
| 102 | +--- |
| 103 | + |
| 104 | +## 📖 配套文档 |
| 105 | + |
| 106 | +- **主仓库**: [CXXBaseComponents](https://github.com/your-username/Project_CXXBaseComponents) |
| 107 | +- **教程文档**: [documentation/tutorial/iniparser/](https://github.com/your-username/Project_CXXBaseComponents/tree/main/documentation/tutorial/iniparser) |
| 108 | + |
| 109 | +--- |
| 110 | + |
| 111 | +## 👨💻 作者 |
| 112 | + |
| 113 | +- **作者**: Charliechen114514 |
| 114 | +- **B站**: [是的一个城管](https://space.bilibili.com/294645890) |
| 115 | +- **组织**: [Awesome-Embedded-Learning-Studio](https://github.com/Awesome-Embedded-Learning-Studio) |
| 116 | + |
| 117 | +--- |
| 118 | + |
| 119 | +## 📄 许可证 |
| 120 | + |
| 121 | +本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 |
0 commit comments