|
99122524
初级用户
积分 47
发帖 16
注册 2008-5-6
状态 离线
|
『楼 主』:
(实际问题)考试座位号排版
考试座位号排版:
要求一:
将1.txt中 (400行内容)
按每50行另存为一文件
要求2:以空格为分隔符 选取文件中第三个参数(数字)按从大到小的顺序重新排列每行
要求3:以空格为分隔符 选取文件中第2个参数(假设为C1,C2……)分别重新集中排列
问 三代码分别如何写
|
|
2008-5-8 19:17 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
2 楼』:
GNU
1.
split -n 50 test.txt
2.
sort +2 xaa.txt
3. 看不懂什么意思
|
|
2008-5-8 19:33 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
3 楼』:
要求3没看懂,
先把1.txt的内容按要求2重新排列,再按每50行另存为一文件可以吗?
|
致精致简! |
|
2008-5-8 19:33 |
|
|
99122524
初级用户
积分 47
发帖 16
注册 2008-5-6
状态 离线
|
『第
4 楼』:
3的意思
意思是找到文本中含有C1的行排放在一起
C2的行又排在一起
1,2,3 能否给完整的代码 谢谢了
|
|
2008-5-8 20:20 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
5 楼』:
1
@echo off&setlocal enabledelayedexpansion
set m=0
set n=0
:1
if %m% equ 0 (set /a m+=1) else (set/a m+=50)
set/a n+=50
set x=0
for /f "tokens=*" %%a in (1.txt) do (
set /a x+=1
for /l %%i in (%m% 1 %n%) do if !x! equ %%i set str=%%a&echo !str!>>%m%-%n%.txt
)
if %n% lss 400 goto 1
pause
|
|
2008-5-8 21:12 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
6 楼』:
刚上来,我一个个来写吧:
问题一:
@echo off&setlocal enabledelayedexpansion
set m=2
for /f "delims=" %%i in (1.txt) do (
set /a n+=1
echo %%i>>!m!.txt
if !n! equ 50 set n=0&set /a m+=1
)
echo 另存完成!
pause>nul
|
批处理之家新域名:www.bathome.net |
|
2008-5-8 21:34 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
7 楼』:
第二个问题:
考虑再三为了代码不至于太复杂还是生成一个临时文件好些:
@echo off&setlocal enabledelayedexpansion
for /f "tokens=3 delims= " %%i in (1.txt) do set str=!str! n%%in
for %%i in (!str!) do set a=%%i&call :lp
set str=!str:n=!
for %%a in (!str!) do (
for /f "tokens=1,2,3,4* delims= " %%i in (1.txt) do (
if %%a equ %%k echo %%i %%j %%k %%l %%m>>2.txt
)
)
del /q 1.txt&ren 2.txt 1.txt
echo 排序完成!
pause>nul&goto :eof
:lp
for %%i in (!str!) do (
set b=%%i&set b=!b:~1,-1!&set c=%a:~1,-1%
if !b! gtr !c! (
set str=!str:%a% =!
set str=!str:%%i=%%i %a%!
)
) 附测试文本:
a b 1 c d e
a b 2 c d e
a b 3 c d e
a b 4 c d e
a b 5 c d e
a b 6 c d e
a b 7 c d e
a b 8 c d e
a b 9 c d e
a b 10 c d e
a b 11 c d e
a b 12 c d e
a b 13 c d e
a b 14 c d e
a b 15 c d e
a b 16 c d e
a b 17 c d e
a b 18 c d e
a b 19 c d e
a b 20 c d e [ Last edited by zw19750516 on 2008-5-9 at 12:16 AM ]
|
批处理之家新域名:www.bathome.net |
|
2008-5-8 22:03 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
8 楼』:
第三个问题:
假设是从c1至c10
@echo off
for /l %%i in (1,1,10) do set a=c%%i&call :lp
del /q 1.txt&ren 2.txt 1.txt
echo 重新排列完成!
pause>nul&goto :eof
:lp
for /f "tokens=1,2,3* delims= " %%i in (1.txt) do if "%a%"=="%%j" echo %%i %%j %%k %%l>>2.txt 附测试文本:
a c1 b c d e
a c2 b c d e
a c3 b c d e
a c4 b c d e
a c5 b c d e
a c6 b c d e
a c7 b c d e
a c8 b c d e
a c9 b c d e
a c10 b c d e
a c1 b c d e
a c2 b c d e
a c3 b c d e
a c4 b c d e
a c5 b c d e
a c6 b c d e
a c7 b c d e
a c8 b c d e
a c9 b c d e
a c10 b c d e [ Last edited by zw19750516 on 2008-5-9 at 12:40 AM ]
|
批处理之家新域名:www.bathome.net |
|
2008-5-8 22:16 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
9 楼』:
太悲哀!!!
悲哀啊,现在的新人提个问题就闪人,连个反馈信息都不想给,看来我是太过于热心了!!!
|
批处理之家新域名:www.bathome.net |
|
2008-5-8 23:53 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
10 楼』:
楼主不感谢你,其他人却看在眼里的,论坛需要你这样的热心人。。。
加油。。。。。。
|
致精致简! |
|
2008-5-8 23:55 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
11 楼』:
&&多谢兄弟,其实我没别的意思,我们给的代码不可能每个都正确,也不会每个都自己测试,这就要求我们所帮助的人及时反馈信息,我们才好及时改正啊,我就这个意思。
|
批处理之家新域名:www.bathome.net |
|
2008-5-9 00:04 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
|
2008-5-9 00:06 |
|
|
99122524
初级用户
积分 47
发帖 16
注册 2008-5-6
状态 离线
|
『第
13 楼』:
小弟在此先谢过了
昨天我等了好久 一直没刷新 所以没看到你们的回复 万分的歉意
|
|
2008-5-9 10:24 |
|