社区
C语言
帖子详情
问一个关于修改文档内容的问题
natineprince
2007-03-18 06:27:14
例如我想将"ABC.DAT"(用16进制存储)里面的"A1 C3 03 95 DD 2A"(用UE32查看)修改成"A1 C3 AA DD 9A 2A".
问题一:
我应该怎么像UE那样将ABC.DAT读取成16进制类UE32的显示放在数组?
问题二:
怎么查找任意长度的16进制数据?
谢谢各位高手指点一二...
...全文
282
9
打赏
收藏
问一个关于修改文档内容的问题
例如我想将"ABC.DAT"(用16进制存储)里面的"A1 C3 03 95 DD 2A"(用UE32查看)修改成"A1 C3 AA DD 9A 2A". 问题一: 我应该怎么像UE那样将ABC.DAT读取成16进制类UE32的显示放在数组? 问题二: 怎么查找任意长度的16进制数据? 谢谢各位高手指点一二...
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jixingzhong
2007-03-19
打赏
举报
回复
注释一下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp=fopen("test.txt", "r+");
int x[6]={0}, //这个是辅助数组,用于读取文件中的数值
y[]={0xA1, 0xC3, 0x03, 0x95, 0xDD, 0x2A}, //需要修改的一系列值
z[]={0xA1, 0xC3, 0xAA, 0xDD, 0x9A, 0x2A}; //修改为这个数组中的值
int i=0, start;
fscanf(fp, "%x", &x[i]);
while(!feof(fp)) //读取并循环,判断是否找到需要修改的系列数据
{
if(x[i] == y[i]){if(i==0)start=ftell(fp);i++;} //start保存修改位置
else i=0;
if(i==6)break; //找到了, break退出
fscanf(fp, "%x", &x[i]);
}
fseek(fp, start-2, SEEK_SET); //移动指针,开始写入信息
fprintf(fp, "%x", z[0]);
for(i=1; i<6; i++)fprintf(fp, " %x", z[i]); //格式控制可以调整 ~
system("PAUSE");
return 0;
}
jixingzhong
2007-03-19
打赏
举报
回复
/*
test.txt 初始内容:
A1 C1 03 95 DD 1A
A1 C2 03 95 DD 2A
A1 C3 03 95 DD 2A //这行是需要修改的
A1 C4 03 95 DD 3A
运行后内容:
A1 C1 03 95 DD 1A
A1 C2 03 95 DD 2A
a1 c3 aa dd 9a 2a //OK
A1 C4 03 95 DD 3A
*/
参考程序:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp=fopen("test.txt", "r+");
int x[6]={0},
y[]={0xA1, 0xC3, 0x03, 0x95, 0xDD, 0x2A},
z[]={0xA1, 0xC3, 0xAA, 0xDD, 0x9A, 0x2A};
int i=0, start;
fscanf(fp, "%x", &x[i]);
while(!feof(fp))
{
if(x[i] == y[i]){if(i==0)start=ftell(fp);i++;}
else i=0;
if(i==6)break;
fscanf(fp, "%x", &x[i]);
}
fseek(fp, start-2, SEEK_SET);
fprintf(fp, "%x", z[0]);
for(i=1; i<6; i++)fprintf(fp, " %x", z[i]);
system("PAUSE");
return 0;
}
jixingzhong
2007-03-19
打赏
举报
回复
问题二:
怎么查找任意长度的16进制数据?
=================
任意长,
那就只有使用字符串 ~
在你的情况下,
没有所谓的任意长,
它们都是 空格分隔 了嘛 ~
所以你可以这样做,
用一连续的数值比较来判断,
恩, 给个例子程序吧,
先等等 ~~
jixingzhong
2007-03-19
打赏
举报
回复
问题一:
我应该怎么像UE那样将ABC.DAT读取成16进制类UE32的显示放在数组?
================
1 字符方式, 这个比较麻烦
2 数值方式:fscanf(fp, "%x", x); //x读取A1这样的 数值, 空格分割数据
然后回写文件时候,
也使用 %x方式就可以是 16进制数据了
goodluckyxl
2007-03-19
打赏
举报
回复
任意长的字符串匹配
看看那些游戏公司处理字符串的过程
搜索引擎也有 搜搜看
了解一些原理会有帮助
bo.cui
2007-03-19
打赏
举报
回复
.....
用不上数组~
你可以读一个就马上显示到屏幕~
不缓冲~~
这样无论多大文件都能解决了~
。。。。
natineprince
2007-03-18
打赏
举报
回复
如果ABC.DAT的容量达到2M级...那么要多大的数组才能模式匹配啊?
mochen5460
2007-03-18
打赏
举报
回复
问题二:
怎么查找任意长度的16进制数据?
-------------------------------------
先将16进制数转换成字符串,然后模式匹配就行了
mochen5460
2007-03-18
打赏
举报
回复
问题一:
我应该怎么像UE那样将ABC.DAT读取成16进制类UE32的显示放在数组?
--------------------------------------------------------------
一个字符一个字符的读,用16进制显示不就是了?
java
修改
文件
内容
_用Java
修改
现有文件
内容
小编典典如对类似
问
题
的公认答案中所建议:同时以写入模式打开
一个
临时文件,对于每一行,读取它,必要时进行
修改
,然后写入该临时文件。最后,删除原始文件并重命名临时文件。根据您的实现,类似于以下
内容
:import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileRead...
HTML DOM
修改
HTML
内容
HTML DOM是
一个
由节点组成的树状结构,每个节点代表HTML
文档
中的
一个
元素。节点包括元素节点、文本节点、属性节点等。通过DOM API,我们可以对这些节点进行操作,从而实现
修改
HTML
内容
的目的。本文介绍了如何使用HTML DOM
修改
HTML
内容
,包括查找元素、
修改
内容
、
修改
属性、添加或删除元素以及事件处理等。通过掌握这些方法,我们可以轻松地实现各种动态效果,提升网页的交互性和用户体验。
批量
修改
替换多个Word
文档
中同一
内容
的方法
群里(Word学习交流群:180627193)一位朋友
问
到,如何一次性批量替换多个word
文档
中的同一
内容
。其实,实现多个Word
文档
的字符进行批量替换的方法有多种。(www.itblw.com) 第一种方法,可以利用第三方软件:全能字符串批量替换机。在网上可以下载到这款软件,利用该软件可以实现多个Word
文档
字符进行批量替换。 第二种方法,使用VBA实现,下面是具体操作步骤。
Linux 文件
内容
查看编辑
处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用 sed 命令处理缓冲区中的
内容
,处理完成后,把缓冲区的
内容
送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。less 命令的作用与 more 十分相似,都可以用来浏览文字档案的
内容
,不同的是 less 命令允许用户向前或向后浏览文件,而 more 命令只能向前浏览。more 名单中内置了若干快捷键,常用的有 H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。
git中不同人同时变更了文件名和文件
内容
如何处理
目录 文章目录目录测试过程关于我最后 测试过程 git中,同时变更了文件名和文件
内容
如何处理呢? 本次的场景为:
一个
用户
修改
了文件名,另
一个
用户在原来旧的文件里对文件
内容
做了
修改
,此时第
一个
用户先进行提交,后面用户再提交时会报错,此时只需要再pull一下,git就会自动帮我们处理冲突
问
题
的。 2个用户先都git pull下: xyy用户改变了index.html文件名: $ git mv index.html index.htm $ git commit -am"Mv index.html t.
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章