|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『楼 主』:
如何将字符写到文档的指定位置
有这样一个想法,要求生成一个文档a.txt
内容及格式如下
12121212121212121212121
1212 21 1 1 12 12121 1
1 1 1 1 2
1
1
特点:
内容全是1或2
先随机得到1或2然后写入a.txt
再随机得到1或2再写入a.txt
如此循环写40个
要求:
横向必须是1212121212 不能重复如 112或122都不行
纵向必须全是1或2
先谢谢两位的解答,可能是我说的不够清楚,
我的意识是
先随机得到一个数,不是1就是2,(或a和b也行)
然后将这个数写入a.txt
再随机得到一个数,不是1就是2,(或a和b也行)
再判断上一次得到的是1还是2,如果这次得到的和上次得到的相同,就把这次得到的写在上次得到的下面,反之则另起一行.
[ Last edited by 26933062 on 2007-3-25 at 06:23 PM ]
|
|
2007-3-24 18:46 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
2 楼』:
怎么没人会吗? 还是我说的不够清楚???
|
|
2007-3-25 16:46 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
3 楼』:
横向必须是1212121212 不能重复如 112或122都不行
纵向必须全是1或2?
1212121212
1212121212
1212121212
1212121212
2121212121
2121212121
2121212121
2121212121
那么就这2种?没行的长度多少?还有你的空格部分又是什么?你的要求不清楚
|
|
2007-3-25 23:01 |
|
|
everest79
金牌会员
一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
|
2007-3-26 01:10 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
5 楼』:
To everest79:
兄的代码很精彩,set/a运算可以说用的完美。
另外,有一疑惑,为什么开头的SetLocal后面要加2>nul 3>nul呢?有什么作用?
|
|
2007-3-26 07:56 |
|
|
everest79
金牌会员
一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
6 楼』:
re lxmxn
将所有错误输出全部转向到nul,这样在以后的代码中再也不用2>nul了
主要因为使用set/a计算判断的话一定会输出错误信息
[ Last edited by everest79 on 2007-3-25 at 07:09 PM ]
此帖被 +2 点积分 点击查看详情 评分人:【 lxmxn 】 | 分数: +2 | 时间:2007-3-26 08:14 |
|
|
|
2007-3-26 08:00 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
7 楼』:
everest79
你的代码是很好,不过好像跟我的题意不符合啊,我什么地方说的不够清楚,请指出来,好吗?
|
|
2007-3-26 12:37 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
8 楼』:
楼主的意思好像是排列出来的行字符数是固定的,即长度一定。
|
|
2007-3-26 13:31 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
9 楼』:
行数不是固定的,而是不确定的.
随机得到的数和前一个数比较,一样的就纵向排例,不一样就横向排列
所以文档的内容横向就是 ababababababababab................
不可能是aab或bba
|
|
2007-3-26 13:40 |
|
|
everest79
金牌会员
一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
10 楼』:
随机序列,嘿嘿,又取巧了
@echo off&set lineh=1 2>nul 3>nul
for /l %%i in (1,1,70) do (
call set/arandomx=%%random%%%%%%2+1
call set/a1/^(%%randomx%%-%%ax%%^)&&call :cou %%ay%% %%lineh%%&&set/aa=||call :pri %%randomx%%)
call :cou %%ay%% %%lineh%%
for /l %%i in (1,1,%lineh%) do call set f= %%f%%
for /f "tokens=1,2 delims=[]" %%i in ('find /n /v "" test.txt') do set colw=%%i&set colt%%i=%%j%f%END
set /a lineh=lineh-1 >test.txt
for /l %%a in (0,1,%lineh%) do (
for /l %%b in (1,1,%colw%) do (
call set txt=%%colt%%b%%
call set/p=%%txt:~%%a,1%%<nul >>test.txt
)
echo.>>test.txt)
echo %lineh%xx%ay%xx%colw%&pause&goto :eof
:cou
set/a1/(%1/%2),lineh=%1
set/aay=0&echo.>>test.txt&goto :eof
:pri
set/p="%1"<nul >>test.txt
set/aax=%1,ay+=1&goto :eof
|
|
2007-3-27 02:56 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
11 楼』:
谢谢 everest79
问题解决了,代码没太看懂,慢慢琢磨!
再次谢谢!!!
|
|
2007-3-27 12:56 |
|
|
everest79
金牌会员
一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
12 楼』:
我是按你的意思按行输出的,然后再把他们反过来
|
|
2007-3-27 23:51 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
13 楼』:
everest79兄弟 你的代码好像还有一点小毛病,就是多运行几次后,偶尔会在开头出现一两个空格,怎么回事?
|
|
2007-3-28 05:41 |
|
|
everest79
金牌会员
一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
14 楼』:
嘿嘿,你在最前边一行加上setlocal就可以了
|
|
2007-3-28 06:11 |
|
|
wydos
中级用户
积分 304
发帖 117
注册 2006-4-4
状态 离线
|
『第
15 楼』:
问一下,
set /a aaa=%%random%%%%%%39+1
这行代码是什么意思,那么多的“%”
|
|
2007-3-28 08:28 |
|