社区
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进制数据?
谢谢各位高手指点一二...
...全文
306
9
打赏
收藏
问一个关于修改文档内容的问题
例如我想将"ABC.DAT"(用16进制存储)里面的"A1 C3 03 95 DD 2A"(用UE32查看)修改成"A1 C3 AA DD 9A 2A". 问题一: 我应该怎么像UE那样将ABC.DAT读取成16进制类UE32的显示放在数组? 问题二: 怎么查找任意长度的16进制数据? 谢谢各位高手指点一二...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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进制显示不就是了?
如何让gpt
修改
文档
里面的
内容
通过以上步骤,我们可以使用GPT等人工智能技术来
修改
文档
内容
,提高其质量和可读性。选择合适的GPT模型和软件,明确
修改
目标和要求,执行
修改
并使用其他工具进一步优化
文档
是实现这一目标的关键步骤。未来随着技术的不断进步和发展,我们期待看到更多创新的方法和工具出现,为
文档
修改
带来更多的可能性。此时,如何运用GPT等人工智能技术来
修改
文档
内容
,提升其质量和可读性呢?大家好,今天来聊聊如何让gpt
修改
文档
里面的
内容
,希望能给大家提供一点参考。在开始
修改
文档
之前,首先需要明确
修改
的目标和要求。
java
修改
文件
内容
_用Java
修改
现有文件
内容
小编典典如对类似
问
题
的公认答案中所建议:同时以写入模式打开
一个
临时文件,对于每一行,读取它,必要时进行
修改
,然后写入该临时文件。最后,删除原始文件并重命名临时文件。根据您的实现,类似于以下
内容
:import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileRead...
git中不同人同时变更了文件名和文件
内容
如何处理
目录 文章目录目录测试过程关于我最后 测试过程 git中,同时变更了文件名和文件
内容
如何处理呢? 本次的场景为:
一个
用户
修改
了文件名,另
一个
用户在原来旧的文件里对文件
内容
做了
修改
,此时第
一个
用户先进行提交,后面用户再提交时会报错,此时只需要再pull一下,git就会自动帮我们处理冲突
问
题
的。 2个用户先都git pull下: xyy用户改变了index.html文件名: $ git mv index.html index.htm $ git commit -am"Mv index.html t.
shell脚本编写(3.
修改
文件
内容
)
一、脚本常用 true > test.txt可以清空文件中的
内容
。 向文件中写东西(追加),要重写的话可以和上面命令配合。 cat >> test.txt << EOF 要写入的东西 EOF PS:一定要以EOF结尾。 2. 输出,等于多个echo。 cat << EOF 要输出的东西 EOF ...
批量
修改
替换多个Word
文档
中同一
内容
的方法
群里(Word学习交流群:180627193)一位朋友
问
到,如何一次性批量替换多个word
文档
中的同一
内容
。其实,实现多个Word
文档
的字符进行批量替换的方法有多种。(www.itblw.com) 第一种方法,可以利用第三方软件:全能字符串批量替换机。在网上可以下载到这款软件,利用该软件可以实现多个Word
文档
字符进行批量替换。 第二种方法,使用VBA实现,下面是具体操作步骤。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章