递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 404|回复: 8
打印 上一主题 下一主题

[视窗] 我要来吐槽一下"标准文本类"

[复制链接]

18

主题

83

帖子

609

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
609
跳转到指定楼层
楼主
发表于 7 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
命名也不好,"文本型utf8"这样定义类型名也好找,非要搞个独特的名字"标准文本类",通常定义文本变量时按一下文本就出来所有文本类型相关的类型,瞬间就知道自己需要的哪个类型,"标准文本类"得靠脑子记,而且初次不知道它是以什么编码为标准的,得跳进去看一下才知道,看不懂就傻眼只能手动去测试。
火山视窗的文本型通常也就是调用windows API才用的上,用W的API用户心理一般都有数的自己会去转码,保存文件或数据啥的都不喜欢用宽字符保存吧,要跟着系统记事本的标准ut8编码,就算之前设计限制的宽文本字符集就算了,这个”标准文本类“也搞好一些啊,搞的跟文本型用法一样啊,像这样:
标准文本变量 = 标准文本类.创建 ("1") + 文本2 + 标准文本类.创建 ("2") // 不能这样玩
标准文本变量 = "1" // 也不能这样搞
简直不好用额。
至少要做到跟”文本型“一个用法才行啊,根据赋值给目标文本变量的编码类型赋值就行了,如果是参数就根据参数自动转码,如果参数不清晰无法识别的的纯字符串参数就发出警告就行,哪怕中间"+"加了其它编码类型在合并时也要做到自动转码统一到目标变量编码。
这种常用的数据类型也不好好整一下,就目前这个作用范围像个固体的存储型变量,整个放、整个取,整个换,想增加就先去转个码添加完再转码回来吧。
另外的提议,wsv文件通常用来让AI写代码用的,书签可以改成存到配置文件里面去,如果行号超出子程序范围了就跳转到子程序即可,wsv文件内容变化后重载文件后滚动条继续保持在之前的行号即可
回复

使用道具 举报

30

主题

231

帖子

3800

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
3800
沙发
发表于 7 天前 | 只看该作者
要想 标准文本类变量 = "1"   那么火山的  文本型变量就必须得 = L"1"  
标准文本 核心是char  火山文本型是wchar_t  不是一个东西  而且编码与这个没有关系
回复

使用道具 举报

31

主题

2883

帖子

1万

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
10279
板凳
发表于 7 天前 | 只看该作者
609177738 发表于 2026-5-22 20:42
要想 标准文本类变量 = "1"   那么火山的  文本型变量就必须得 = L"1"  
标准文本 核心是char  火山文本型 ...

火山26版的“类型转换”特性可以实现这些功能了
回复

使用道具 举报

31

主题

2883

帖子

1万

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
10279
地板
发表于 7 天前 | 只看该作者
火山的标准文本类本身就是随便封的,九成的命令都没实现。
这方面封装最完整的是PIV模块,但“类型转换”这些特性要等模块的下一个版本。

std::string本来就没区分UTF-8和多字节编码,直到C++20才单独搞一个std::u8string。
回复

使用道具 举报

30

主题

231

帖子

3800

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
3800
5#
发表于 7 天前 | 只看该作者
Xelloss0618 发表于 2026-5-22 22:34
火山26版的“类型转换”特性可以实现这些功能了

其他的情况算是好用的 对应文本来说就是败笔, 明文都需要靠隐士转换来实现太损失性能了
回复

使用道具 举报

18

主题

83

帖子

609

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
609
6#
 楼主| 发表于 6 天前 | 只看该作者
609177738 发表于 2026-5-22 20:42
要想 标准文本类变量 = "1"   那么火山的  文本型变量就必须得 = L"1"  
标准文本 核心是char  火山文本型 ...

底层是char,但是我看着火山的"标准文本类.创建"写的是utf8编码的文本。
火山文本前面加L已经晚了,过去这么长时间了,要改的化只能在IDE上做自动识别了
回复

使用道具 举报

18

主题

83

帖子

609

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
609
7#
 楼主| 发表于 6 天前 | 只看该作者
Xelloss0618 发表于 2026-5-22 22:35
火山的标准文本类本身就是随便封的,九成的命令都没实现。
这方面封装最完整的是PIV模块,但“类型转换”这 ...

真是太随便了,何止九成命令没实现,那里面就2个命令,火山文本创建+取出,没了。就算是让别人去封装,那么大部分人都喜欢直接文本+文本+++的,封装出来的肯定也没有这种方便啊
回复

使用道具 举报

497

主题

2万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
48727
QQ
8#
发表于 6 天前 | 只看该作者
本帖最后由 创世魂 于 2026-5-23 08:14 编辑

不过用了 类型转换 本质上还是调用了内部的转换方法的,并不是直接对这个标准文本赋值。
只是在火山代码层面来说,用起来方便一些了。


                    

                        

                           

                           
正在渲染火山代码...

                        

                    

                    复制代码
               

安卓无障碍课:点击查看
接安卓类库封装,需要的联系570828305
回复

使用道具 举报

31

主题

2883

帖子

1万

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
10279
9#
发表于 6 天前 | 只看该作者
609177738 发表于 2026-5-22 23:22
其他的情况算是好用的 对应文本来说就是败笔, 明文都需要靠隐士转换来实现太损失性能了 ...

使用一点封装技巧,明文可以不做类型转换,但不能写成隐式转换了,只能用方法了。
的确除了文本型,火山的其他对象都没开放+运算符
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2026-5-29 23:40 , Processed in 0.083985 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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