|  | 
 
| ccwan 金牌会员
 
       
 
 
 积分 2725
 发帖 1160
 注册 2006-9-23
 来自 河北廊坊
 状态 离线
 | 
| 『楼 主』:
 用批处理列举水产品的最低、最高价
 
使用 LLM 解释/回答一下 
 
 
在附件中的a.txt内,有着很多种水产品的单价,(详情请下载后看看) 
现在该如何列举每种水产品的最高价和最低价呢?
 
要求输出格式如下:
 虹鳟鱼:
 最低价:       青岛城阳                   34.00
 最高价:       闽福鼎农贸                 80.00
 
 活鳜鱼:
 
 最低价:       北京新发地                 24.00
 最高价:       北京八里桥                 26.00
 
对于只有一个单价或价格一样的可以这样:
 虹鳟鱼:
 最低价:       闽福鼎农贸                 80.00
 最高价:       闽福鼎农贸                 80.00
 
 活鳜鱼:
 
 最低价:       北京新发地                 26.00
 最高价:       北京八里桥                 26.00
 
 Last edited by ccwan on 2007-1-10 at 06:35 AM ]
 
 
 
 
附件
1:  a.txt (2007-1-10 06:32, 11.22 KiB, 下载附件所需积分 1 点
,下载次数: 49) 
 
 |  
                  |  三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
 |  | 
|  2007-1-10 06:32 |  | 
|  | 
 
| youxi01 高级用户
 
     
 
 
 积分 846
 发帖 247
 注册 2006-10-27
 来自 湖南==》广东
 状态 离线
 | 
|   『第 2 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
也来试试: @echo off
 setlocal enabledelayedexpansion
 
 for /f "tokens=1,2,3" %%i in (a.txt) do (
 if not defined %%j (
 set a=
 set %%j=A
 set/a b+=1
 set str!b!=%%j)
 set/a a+=1
 set MP_%%j!a!=%%i=%%k
 )
 for /l %%i in (1 1 %b%) do (
 set Hprice=
 for /f "tokens=2,3 delims==" %%a in ('set MP_!str%%i!') do (
 set tmp=%%b
 set tmp=!tmp:.=!
 if not defined Hprice (
 set/a Hprice=!tmp! & set/a Lprice=!tmp!
 set Hmarcket=%%a & set Lmarcket=%%a
 ) else (
 if !tmp! GEQ !Hprice! set/a Hprice=!tmp! & set Hmarcket=%%a
 if !tmp! LEQ !Lprice! set/a Lprice=!tmp! & set Lmarcket=%%a)
 )
 echo !str%%i!:
 echo.
 echo 最高价:   !Hmarcket!      !Hprice:~0,-2!.!Hprice:~-2!
 echo 最低价:   !Lmarcket!      !Lprice:~0,-2!.!Lprice:~-2!
 echo.
 )
 pause>nul
 
 
 Last edited by youxi01 on 2007-1-10 at 08:25 AM ]
 
 
 | 此帖被 +10 点积分    点击查看详情 | 评分人:【 redtek 】 | 分数: +5 | 时间:2007-1-10 08:10 |  | 评分人:【 ccwan 】 | 分数: +5 | 时间:2007-1-10 20:48 | 
 | 
 
 
 
 |  | 
|  2007-1-10 07:54 |  | 
|  | 
 
| namejm 荣誉版主
 
        batch fan
 
 
 积分 5226
 发帖 1737
 注册 2006-3-10
 来自 成都
 状态 离线
 |  | 
|  2007-1-10 07:54 |  | 
|  | 
 
| youxi01 高级用户
 
     
 
 
 积分 846
 发帖 247
 注册 2006-10-27
 来自 湖南==》广东
 状态 离线
 | 
| 『第 4 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
TO nameJM:斑竹就是斑竹,看了你的代码真是惭愧啊。我开始的时候还去定义鱼的种类,真是多此一举啊!
 
 还有一个问题就是,我修改之后怎么我的帖子怎么成了2F了,原来是3F的哦!
 
 
 
 
 |  | 
|  2007-1-10 08:00 |  | 
|  | 
 
| namejm 荣誉版主
 
        batch fan
 
 
 积分 5226
 发帖 1737
 注册 2006-3-10
 来自 成都
 状态 离线
 | 
| 『第 5 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by youxi01 at 2007-1-9 19:00:斑竹就是斑竹,看了你的代码真是惭愧啊。我开始的时候还去定义鱼的种类,真是多此一举啊!
 还有一个问题就是,我修改之后怎么我的帖子怎么成了2F了,原来是3F的哦!
 
 
  我的代码存在一点瑕疵,具体看我代码里的说明。另外,你的代码有点问题,不知道你仔细查看了运行后的结果了没有。<img src="images/smilies/face-raspberry.png" align="absmiddle" border="0">
 
  呵呵,因为我操作不慎,编辑帖子的时候,误点了删除,导致我发在2楼的帖子被删掉了-_-|
 
 Last edited by namejm on 2007-1-9 at 07:08 PM ] 
 
 
 
 
 |  
                  |  尺有所短,寸有所长,学好CMD没商量。
 考虑问题复杂化,解决问题简洁化。
 |  | 
|  2007-1-10 08:04 |  | 
|  | 
 
| redtek 金牌会员
 
       
 
 
 
 积分 2902
 发帖 1147
 注册 2006-9-21
 状态 离线
 | 
| 『第 6 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
精彩!!!欣赏~~~上面那两种鱼我都没吃过:(  ~~口水直流~~````
 
 
 
 
 
 |  
                  |  Redtek,一个永远在网上流浪的人……
 
 _.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
 |  | 
|  2007-1-10 08:08 |  | 
|  | 
 
| youxi01 高级用户
 
     
 
 
 积分 846
 发帖 247
 注册 2006-10-27
 来自 湖南==》广东
 状态 离线
 | 
| 『第 7 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by namejm at 2007-1-10 08:04 AM:
 我的代码存在一点瑕疵,具体看我代码里的说明。另外,你的代码有点问题,不知道你仔细查看了运行后的结果了没有。:P
 
 呵呵,因为我 ...
 
你提出的问题,我写的也没有考虑,其它的还没看到? 
 
 
 
 |  | 
|  2007-1-10 08:12 |  | 
|  | 
 
| namejm 荣誉版主
 
        batch fan
 
 
 积分 5226
 发帖 1737
 注册 2006-3-10
 来自 成都
 状态 离线
 | 
| 『第 8 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
  那我提示一下:在最后那几种产品中,产地显示有错误,应该是你没有注意清空变量导致的。 
 
 
 
 
 |  
                  |  尺有所短,寸有所长,学好CMD没商量。
 考虑问题复杂化,解决问题简洁化。
 |  | 
|  2007-1-10 08:17 |  | 
|  | 
 
| youxi01 高级用户
 
     
 
 
 积分 846
 发帖 247
 注册 2006-10-27
 来自 湖南==》广东
 状态 离线
 |  | 
|  2007-1-10 08:26 |  | 
|  | 
 
| ccwan 金牌会员
 
       
 
 
 积分 2725
 发帖 1160
 注册 2006-9-23
 来自 河北廊坊
 状态 离线
 |  | 
|  2007-1-10 20:50 |  | 
|  | 
 
| namejm 荣誉版主
 
        batch fan
 
 
 积分 5226
 发帖 1737
 注册 2006-3-10
 来自 成都
 状态 离线
 |  | 
|  2007-1-12 03:57 |  | 
|  | 
 
| ccwan 金牌会员
 
       
 
 
 积分 2725
 发帖 1160
 注册 2006-9-23
 来自 河北廊坊
 状态 离线
 | 
| 『第 12 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
临时文件没关系,重要的是解决了问题。 
 
 
 
 
 |  
                  |  三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
 |  | 
|  2007-1-12 04:31 |  | 
|  | 
 
| zh159 金牌会员
 
       
 
 
 积分 3687
 发帖 1467
 注册 2005-8-8
 状态 离线
 | 
|   『第 13 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
结果和 11 楼 namejm 版主的一样,也是效率较低,但不用生成临时文件。  ::zh159@bbs.cn-dos.net 2007-1-11
 @echo off
 setlocal EnableDelayedExpansion
 for /f "tokens=1-3" %%i in (a.txt) do set $%%i %%j %%k=$
 for /f "tokens=1-2" %%i in (a.txt) do if not "%%j" == "!Type!" set Type=%%j&&call :Scan %%j
 pause
 exit
 
 :Scan
 set Min=1000000
 set Max=0
 for /f "tokens=1-3* delims==$ " %%i in ('set $^|find "%1"') do (
 set num=%%k&&set num=!num:.=!
 if !num! LEQ !Min! set Min=!num!
 if !num! GEQ !Max! set Max=!num!
 )
 echo %1:
 echo.
 for /f "tokens=1-3* delims==$ " %%i in ('set $^|find "%1"') do set num=%%k&&set num=!num:.=!&&if "!num!" == "!Min!" echo   最低价:  %%i	%%k
 for /f "tokens=1-3* delims==$ " %%i in ('set $^|find "%1"') do set num=%%k&&set num=!num:.=!&&if "!num!" == "!Max!" echo   最高价:  %%i	%%k
 echo.------------------------------
 goto :eof
 
 
 Last edited by zh159 on 2007-1-11 at 11:45 PM ]
 
 
 | 此帖被 +14 点积分    点击查看详情 | 评分人:【 ccwan 】 | 分数: +7 | 时间:2007-1-12 21:03 |  | 评分人:【 redtek 】 | 分数: +7 | 时间:2007-1-12 23:09 | 
 | 
 
 
 
 |  | 
|  2007-1-12 12:42 |  | 
|  | 
 
| tuesposo 初级用户
 
   
 
 
 
 积分 68
 发帖 28
 注册 2006-12-29
 状态 离线
 |  | 
|  2007-1-12 21:28 |  | 
|  | 
 
| zh159 金牌会员
 
       
 
 
 积分 3687
 发帖 1467
 注册 2005-8-8
 状态 离线
 | 
|  『第 15 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
修改了一下,提高了效率,也不用生成临时文件。 ::zh159@bbs.cn-dos.net 2007-1-13@echo off
 title 水产最低价^&最高价  zh159@bbs.cn-dos.net  2007-1-13
 setlocal EnableDelayedExpansion
 for /f "tokens=1-3*" %%i in (a.txt) do set %%j.%%i.%%k=.
 for /f "tokens=1-3*" %%i in (a.txt) do if not "%%j" == "!Type!" set Type=%%j&&call :Scan %%j
 pause
 exit
 
 :Scan
 set Min=M
 set Max=0
 for /f "tokens=1-4* delims==." %%i in ('set "%1"') do (
 if %%k%%l LEQ !Min! set Min=%%k%%l
 if %%k%%l GEQ !Max! set Max=%%k%%l
 )
 echo %1:
 echo.
 for /f "tokens=1-4* delims==." %%i in ('set "%1"') do if "%%k%%l" == "%Min%" echo   最低价:  %%j	%%k.%%l
 for /f "tokens=1-4* delims==." %%i in ('set "%1"') do if "%%k%%l" == "%Max%" echo   最高价:  %%j	%%k.%%l
 echo.------------------------------
 goto :eof
 
 
 | 此帖被 +15 点积分  点击查看详情 | 评分人:【 namejm 】 | 分数: +8 | 时间:2007-1-14 01:16 |  | 评分人:【 ccwan 】 | 分数: +7 | 时间:2007-1-14 01:38 | 
 | 
 
 
 
 |  | 
|  2007-1-13 23:54 |  |