中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 想破头了,记事本查找最大的数字
« [1] [2] »
作者:
标题: 想破头了,记事本查找最大的数字 上一主题 | 下一主题
dragonamd
中级用户





积分 209
发帖 100
注册 2008-8-1
状态 离线
『楼 主』:  想破头了,记事本查找最大的数字

记事本里都是 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 ]

2008-8-23 02:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 2 楼』:  

如果是一行一串数字,像下面这样的,请试试这个:

  Quote:
1-2.044
2-3.044
3-5.044
4-2.084
5-2.44
5-6.02
3-5.404


@echo off
for /f "tokens=1,2 delims=-" %%a in (a.txt) do (
   if "%%a"=="5" (call set str=%%str%% %%b)
)
for %%a in (%str%) do (
   set n=1
   for %%b in (%str%) do (if %%a gtr %%b set /a n+=1)
   call set _%%n%%=%%a
)
call echo 5-%%_%n%%%
pause


2008-8-23 11:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 3 楼』:  


@echo off
for /f "delims=" %%a in ('findstr "^5" a.txt') do (
              set "var=     %%a"
              call,set "_%%var:~-8%%=%%a"
)
for /f "tokens=2 delims==" %%i in ('set _') do set "max=%%i"
echo %max%
pause
[ Last edited by pusofalse on 2008-8-23 at 11:45 AM ]



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-8-23 11:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dragonamd
中级用户





积分 209
发帖 100
注册 2008-8-1
状态 离线
『第 4 楼』:  

pusofalse 大哥的代码好用了一点,不过还是有缺陷,显示出来的是一行,呵呵
5-2.44    3-5.144
5-6.02    3-5.444
3-5.404   5-7.244
这样的格式就检测不出了    还有下次我要自己定义检测头一个字母应该怎么修改

2008-8-23 12:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 5 楼』:  

你是说一行当中有两列?



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-8-23 12:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dragonamd
中级用户





积分 209
发帖 100
注册 2008-8-1
状态 离线
『第 6 楼』:  

很多列,至少有7-8列左右吧

2008-8-23 12:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 7 楼』:  

只要第一列的第一个数字是5,并且第一列5之后的数值是最大,就把这整行输出,我的理解对吗?



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-8-23 12:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dragonamd
中级用户





积分 209
发帖 100
注册 2008-8-1
状态 离线
『第 8 楼』:  

不是取出一整行 就取出5-7.244 这样的就行
不是第一列的头一个数字而是全部,。取的确实是5-之后的

2008-8-23 13:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 9 楼』:  

建议把实际的样本贴上来,并把要提取的部分高亮标示。



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-8-23 13:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dragonamd
中级用户





积分 209
发帖 100
注册 2008-8-1
状态 离线
『第 10 楼』:  

pusofalse
大哥有QQ吗? 在QQ上聊轻松点  等搞好了,在贴上来

2008-8-23 13:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 11 楼』:  

- -||||贴上来解决



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-8-23 13:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 12 楼』:  

文本内容很机密吗?咋就舍不得贴出来呢?



2008-8-23 13:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dragonamd
中级用户





积分 209
发帖 100
注册 2008-8-1
状态 离线
『第 13 楼』:  

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 ]

2008-8-23 13:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 14 楼』:  


@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (a.txt) do (
     for %%i in (%%a) do (
        set "var=%%i"
        if "!var:~,1!" equ "5" (
            set "var=        !var!"
            set "_!var:~-10!=%%i"
        )
     )
)
for /f "tokens=2 delims==" %%i in ('set _') do set "max=%%i"
echo %max%
pause




心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-8-23 13:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 15 楼』:  

@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
  )
)



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-8-23 14:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: