无忧启动论坛
标题:
gotomsdos你需要的软件在此
[打印本页]
作者:
wang6071
时间:
2005-5-5 20:27
标题:
gotomsdos你需要的软件在此
gotomsdos:
你在dos区发的关于16进制转换成10进制并存入变量的问题(http://bbs.wuyou.net/cgi-bin/topic.cgi?forum=36&topic=69&show=0)
1:与wbat类似功能的xset软件可在俺的空间下载
http://free.ys168.com/index.aspx?wangsea
在soft目录下。
2: xset并不能解决你提出的问题,现存的dos软件也不能解决你这个特殊问题。所以俺专门写了一个程序来解决它。
[UploadFile=setvar_1115295590.rar]
使用方法:
输入:setvar Skyroads.cfg 6 var 即可
参数skyroads.cfg就是你的游戏记录文件,当然可以是其它名字
6:字节偏移,好象你要取的就是第6位二进制数据吧?
var 环境变量名(当然也可以用其它的名字,如vvar等)
作者:
gotomsdos
时间:
2005-5-6 13:03
标题:
gotomsdos你需要的软件在此
多谢 wang6071 !
解决了, 如果你是用C语言写的,能不能贴出或传个源码出来,我看一下? PASCAL DELPHI,就算了,没学过
本来,这个问题我是想用BAT配合DEBUG等小工具就能解决的,不想还真难办..
还真的要写程序呢...
作者:
wang6071
时间:
2005-5-6 18:47
标题:
gotomsdos你需要的软件在此
较简单的处理,就公布出来给喜欢C的朋友看看。
#include "stdio.h"
char buffer[256];
int vspf(char *fmt, ...)
{
va_list argptr;
int cnt;
va_start(argptr, fmt);
cnt = vsprintf(buffer, fmt, argptr);
va_end(argptr);
return(cnt);
}
keyboard(int choice,char key[])
{
int keybufbott;
int offset,i;
offset=peek(0x40,0x1c);
for(i=0;key
!=';';;i++)
{
if(choice==0)
{pokeb(0x40,offset,0x00);
pokeb(0x40,offset,key
);}
if(choice!=0)
{pokeb(0x40,offset,key
);
pokeb(0x40,offset+1,0x00);}
offset=offset+2;
if(offset==0x3e)offset=0x1e;
}
pokeb(0x40,offset,0x0d);
pokeb(0x40,offset+1,0x00);
offset=offset+2;
pokeb(0x40,0x1c,offset);
}
void main(int argc,char *argv[])
{
FILE *fp;
unsigned char buf[1];
int offset;
if(argc<4){
printf("error: Not Enough command line.\n");
printf("see example: setvar Skyroads.cfg 6 var \n");
exit(1);}
if(argc>4){
printf("error: Too many paterners!\n");exit(1);}
if ( (fp=fopen(argv[1], "rb")) == NULL)
{ printf("File not found!");exit(1);}
if (atoi(argv[2])!=0) offset=atoi(argv[2]);
else
{ printf("param offset must number!");exit(1); }
fseek(fp, offset, SEEK_SET);
fread(buf, 1,1,fp);
if (feof(fp)>0)
{printf("param offset too big!");exit(1);}
vspf("%s%s%s%u", "set ",argv[3],"=",buf[0]);
close( fp );
keyboard(1,buffer);
}
作者:
gotomsdos
时间:
2005-5-6 19:18
标题:
gotomsdos你需要的软件在此
非常感谢! 长假不去玩?
作者:
wang6071
时间:
2005-5-9 07:16
标题:
gotomsdos你需要的软件在此
gotomsdos:
上面的程序在批处理中连续执行确实有问题,改了一下,借用了了horst的Nset.com,现将示例打包在此。
关于你说的
从文件的第6字节(从0开始算是6,从1开始算就是7)开始,把第6,8,10,,,,64处的一个字节(也就是地址每次加2)分别存入变量t1,t2,t3,,,,,,t30.总共30个变量
这样做恐怕不太好,这样一来这个程序只能针对一个程序了不具有通用性。还是像示例一样在批处理中一条一条地加好一点。
说点题外话:一次性设定如此多的环境变量不知道会不会造成环境变量空间不足。如果没有特殊需要还是随用随设吧。[UploadFile=setvar_1115594141.rar]
作者:
gotomsdos
时间:
2005-5-9 11:44
标题:
gotomsdos你需要的软件在此
LMOD是不是包括了NSET的功能?
作者:
wang6071
时间:
2005-5-9 18:45
标题:
gotomsdos你需要的软件在此
关于lmod是否包含nset,要看你怎么用了。比如:
setvar skyroad.cfg 6 var1 |Lmod set $1 >temp.bat
setvar skyroad.cfg 8 var2 |lmod set $1 >>temp.bat
call temp.bat
del temp.bat
可以实现Nset的类似功能,但是要产生临时文件,不便于运用在只读环境(虽然通过技巧也能运行在只读环境)。
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/)
Powered by Discuz! X3.3