设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2023|回复: 7
打印 上一主题 下一主题

[已经解决] 谁知道有批处理填充二进制数据的软件吗?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
跳转到指定楼层
1
发表于 2011-11-21 16:28:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 赛露休斯 于 2011-11-22 14:02 编辑

几千个文件长度不对,想在文件后面填充几个字节的空数据,谁知道有批处理填充二进制数据的软件吗?
最近在研究XAS

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
40703
在线时间
7542 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

2
发表于 2011-11-21 16:54:50 | 只看该作者
本帖最后由 fux2 于 2011-11-21 17:13 编辑

vb可以吧

ole控件dragdrop函数
dim i,s() as byte
for i = 1 to Data.count
  open Data.Files(i) for Binary as #1
    Get #1,,s()
    redim s(lof(1)+补充字节长度) as byte
  close #1
  加字符处理
  open Data.Files(i) for Binary as #2
    Put #2,,s
  close #2
next i
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1000
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

3
发表于 2011-11-21 17:38:57 | 只看该作者
RM就可以了O O
File.size("xxxx")
然後你想填啥就 puts 吧= =

点评

批处理的话这样很蛋疼吖  发表于 2011-11-21 18:05
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
4
 楼主| 发表于 2011-11-21 18:12:53 | 只看该作者
本帖最后由 赛露休斯 于 2011-11-21 18:49 编辑

vb的没看懂,装了vb,但不会用
RM的,我要在后面添加像 00 00 00 00 这样的该怎么做?

点评

2K啊……那就稍微修改一下代码就行。这个要结合批处理调用哦。  发表于 2011-11-22 11:24
最近在研究XAS
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1125
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

5
发表于 2011-11-21 23:24:38 | 只看该作者
用C语言写了一个小工具,输出指定个数个 '\0',当然,应该要小于45个……

ab.rar (5.99 KB, 下载次数: 42)

别吐槽代码了……一分钟先生。(GCC编译通过)ab 5 >> your_file 即可向your_file末尾输出 5 个 00 。
  1. #include <stdio.h>

  2. int main(int argc, char *argv[])
  3. {
  4.         if(argc > 2)
  5.                 return 0;
  6.                
  7.         char buf[] = { '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', \
  8.                                    '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', \
  9.                                    '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', \
  10.                                    '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', \
  11.                                    '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' } ;
  12.         write(1, buf, atoi(argv[1]));
  13.         return 1;
  14. }
复制代码

点评

运行的时候黑屏闪了一下就关闭了,另外后面需要填充也有近2k的 00 吧,不过还是谢了  发表于 2011-11-22 01:56

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1125
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

6
发表于 2011-11-22 13:51:16 | 只看该作者
本帖最后由 DeathKing 于 2011-11-22 13:53 编辑

这个东西当然要和批处理一起用啦,首先你要枚举你要添加的文件,然后计算需要添加的空字节个数。假定是由%NullChar%决定的,批处理大概就是这样:
遍历文件,并置变量%CurFileName%为当前文件名
计算需要添加的空字节个数,并置变量%NullChar%为响应值
ab %NullChar% >> %CurFileName%

使用Shell的重定向,而不直接在C语言编写的程序内进行读写操作,是因为我用的GCC……实现遍历文件不如直接用批处理实现更快。不过这个的字数仍然有限制,2K应该是很轻易的拉~
  1. /**********************************
  2. * Append Binary
  3. * author: DeathKing
  4. * date  : 2011-11-22
  5. **********************************/

  6. #include <stdio.h>
  7. #include <stdlib.h>

  8. int main(int argc, char *argv[])
  9. {
  10.   if(argc == 2) {
  11.     int c = atoi(argv[1]);
  12.     if(c > 32) {
  13.       char *block = (char *)malloc(sizeof(char) * c);
  14.       for(int i=0; i < c; ++i)
  15.         block[i] = '\0';
  16.       write(1, block, c);
  17.     } else {
  18.       char buf[32] = {  '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',\
  19.                          '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',\
  20.                          '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',\
  21.                          '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' };
  22.       write(1, buf, c);
  23.       return 1;
  24.     }
  25.    } else {
  26.     printf("Usage: ab number to output 00 to stdout\n");
  27.     exit(EXIT_FAILURE);
  28.    }
  29. }
复制代码
ab.rar (19.17 KB, 下载次数: 39)

点评

没用Append,我直接用我现成的过程操作的文件。  发表于 2011-11-22 14:59

评分

参与人数 1星屑 +14 收起 理由
赛露休斯 + 14 非常感谢^_^

查看全部评分


See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
7
 楼主| 发表于 2011-11-22 14:00:35 | 只看该作者
这个问题已经找到解决方法了,不过还是谢谢LS了
另外,批处理调用,是在cmd里调用吗?还没试出来,这方面不太了解,请教一下

点评

一般都是保存代码到文件,然后扩展名改成bat。执行的时候的确调用的是cmd。  发表于 2011-11-22 14:05
最近在研究XAS
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
72
在线时间
673 小时
注册时间
2006-10-3
帖子
1795

开拓者

8
发表于 2011-11-22 14:02:51 | 只看该作者
嘿嘿,这个咱昨晚帮解决了。
基本和fux2思路一样。VB OLE。

ATTACH.rar

6.9 KB, 下载次数: 3

点评

这模块真好用= =  发表于 2011-11-22 15:02
VB有个打开文件的方式叫做Append,Fux没用,你应该用了吧?  发表于 2011-11-22 14:32
( ส็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ω ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้【看猫君玩,我也搞一只】)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-2-20 14:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表