TC官方合作论坛

 找回密码
 立即注册
查看: 209|回复: 5

[已解决] 字符串比较的问题

[复制链接]
发表于 2019-3-14 23:10:32 | 显示全部楼层 |阅读模式

马上加入TC

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

x
本帖最后由 kftianji 于 2019-3-14 23:12 编辑
  1. var a="aC_11"
  2. var b="aC_5"
  3. var 答案=字符串比较(a,b)
  4. 调试输出(答案)
复制代码
比较的结果是:a比b的值小

本来要做个批量重命名的工具,遇到了带前缀的文件名,用CMD下的dir命令排序一下:
CMD下排序的结果是这样:
aC_1
aC_10
aC_11
...
aC_19
aC_2
aC_20
....
aC_29
这个差异完全不能理解。于是用--‘字符串比较()’
排序后和CMD下的dir /b的结果一样。该怎么处理呢

尝试用‘字符串格式化()’转成10进制或者16进制再比较,结果字符串转不了。
回复

使用道具 举报

发表于 2019-3-15 00:06:59 | 显示全部楼层
前面一样的话,直接比较后面的数字,前面不一样就先比较前面的字符串是否相等,这个看你自己排序的要求
回复 支持 反对

使用道具 举报

发表于 2019-3-15 00:01:50 | 显示全部楼层
既然用dir /b 命令可以做到,何必研究TC下的字符串函数,还要做到与该命令一模一样,你可以用 dir /b >d:\1.txt 命令将结果输出到D盘的1.txt文件后,用TC读该文件就是这个排序了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-15 23:25:11 | 显示全部楼层
本帖最后由 kftianji 于 2019-3-15 23:26 编辑
chen71512 发表于 2019-3-15 00:01
既然用dir /b 命令可以做到,何必研究TC下的字符串函数,还要做到与该命令一模一样,你可以用 dir /b >d:\1.tx ...

aC_1.jpg
aC_10.jpg
aC_11.jpg
...
aC_19.jpg
aC_2.jpg
aC_20.jpg
....
aC_29.jpg这个就是dir /b>1.txt的结果
字符串排序完 还是这样
如果下面使用‘文件重命名’函数:
  1. 文件重命名("aC_1.jpg","01.jpg")
  2. 文件重命名("aC_10.jpg","02.jpg")
  3. ...
复制代码
第一个文件名,改成01,
第二个文件原名是10,被改成02是错误的。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-15 23:35:01 | 显示全部楼层
本帖最后由 kftianji 于 2019-3-15 23:37 编辑
8545212154 发表于 2019-3-15 00:06
前面一样的话,直接比较后面的数字,前面不一样就先比较前面的字符串是否相等,这个看你自己排序的要求 ...

现在的文件名是aC_1
如果是文件名是'12章第4回1p.jpg'这样类似的,千奇百怪名字的数组该怎么办。
这个批量重命名的程序,每次遇到有前后缀的文件名,便去手动调节,那么软件就没有存在的意义了。

从图册下载的图片,文件名往往是一串超长的字母组成,几乎无规律,但又能自动排序。我想实现的就是这份功能呢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-19 20:09:05 | 显示全部楼层
问题解决了,从高效的字符串格式化对比(可用排序算法,代码简练,快速)改成了低效的字符串长度对比(写更多的代码更多的循环体),试过lua,gcc,10进制对比结果都是反的。
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2019-5-25 22:07 , Processed in 0.040823 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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