中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 12:34
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,254 会员排行
DOS批处理 & 脚本技术(批处理室) » 想破头了,记事本查找最大的数字
可打印版本  1,942 / 17
第1楼 dragonamd 发表于 2008-08-23 02:22
中级用户 发帖 100 积分 209
想破头了,记事本查找最大的数字
记事本里都是 1-2.044 2-3.044 3-5.044 4-2.084 5-2.44 5-6.02 3-5.404
这样的数字而且没有规律,。应该怎么做才能取的最大数字,要求是5开头的 取的是5以后的最大列数字,是一段数字比如5-6.02 5-2.44 比较出来的是5-6.02 并显示出来

[ Last edited by dragonamd on 2008-8-23 at 02:25 AM ]
第2楼 moniuming 发表于 2008-08-23 11:26
银牌会员 发帖 574 积分 1,335 来自 广西
如果是一行一串数字,像下面这样的,请试试这个:
1-2.044
2-3.044
3-5.044
4-2.084
5-2.44
5-6.02
3-5.404


第3楼 pusofalse 发表于 2008-08-23 11:32
银牌会员 发帖 646 积分 1,604


[ Last edited by pusofalse on 2008-8-23 at 11:45 AM ]
第4楼 dragonamd 发表于 2008-08-23 12:39
中级用户 发帖 100 积分 209
pusofalse 大哥的代码好用了一点,不过还是有缺陷,显示出来的是一行,呵呵
5-2.44 3-5.144
5-6.02 3-5.444
3-5.404 5-7.244
这样的格式就检测不出了 还有下次我要自己定义检测头一个字母应该怎么修改
第5楼 pusofalse 发表于 2008-08-23 12:43
银牌会员 发帖 646 积分 1,604
你是说一行当中有两列?
第6楼 dragonamd 发表于 2008-08-23 12:50
中级用户 发帖 100 积分 209
很多列,至少有7-8列左右吧
第7楼 pusofalse 发表于 2008-08-23 12:58
银牌会员 发帖 646 积分 1,604
只要第一列的第一个数字是5,并且第一列5之后的数值是最大,就把这整行输出,我的理解对吗?
第8楼 dragonamd 发表于 2008-08-23 13:09
中级用户 发帖 100 积分 209
不是取出一整行 就取出5-7.244 这样的就行
不是第一列的头一个数字而是全部,。取的确实是5-之后的
第9楼 pusofalse 发表于 2008-08-23 13:13
银牌会员 发帖 646 积分 1,604
建议把实际的样本贴上来,并把要提取的部分高亮标示。
第10楼 dragonamd 发表于 2008-08-23 13:21
中级用户 发帖 100 积分 209
pusofalse
大哥有QQ吗? 在QQ上聊轻松点 等搞好了,在贴上来
第11楼 pusofalse 发表于 2008-08-23 13:24
银牌会员 发帖 646 积分 1,604
- -||||贴上来解决
第12楼 HAT 发表于 2008-08-23 13:29
版主 发帖 5,017 积分 9,023
文本内容很机密吗?咋就舍不得贴出来呢?
第13楼 dragonamd 发表于 2008-08-23 13:33
中级用户 发帖 100 积分 209
R02 u70.843 i-19.91 5-10.17 I5.641
U71.796 B-18.487 5-8.11 I4.556
G75.13 H-10.666 5-9.16 I-9.209
F75.13 5-7.27 H-10.666 I-9.209

上面的这段中,5-以后的10.17数字最大了,就显示5-10.17

HAT大哥说的严重了,。文本不机密, 只是不会在论坛上标示高亮,所以一点点搞,呵呵

[ Last edited by dragonamd on 2008-8-23 at 01:37 PM ]
第14楼 pusofalse 发表于 2008-08-23 13:54
银牌会员 发帖 646 积分 1,604
第15楼 slore 发表于 2008-08-23 14:12
铂金会员 发帖 2,478 积分 5,212
@echo off&Setlocal Enabledelayedexpansion
Set MV=0
for /f "delims=" %%i in (T.txt) do (
Set L=%%i
Set L=!L:5-=轩!
Call :MaxValue "!L!"
)
pause>nul
exit /b

:MaxValue
Set L=%1
for /f "tokens=2 delims=轩" %%i in (%L%) do (
for /f "delims= " %%j in ("%%i") do (
rem 因为不支持浮点运算所以用GTR没有得到正确结果,自己改吧。
rem If %%j GTR !MV! Set MV=%%j
echo %%j
)
)
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023