社区
C++ Builder
帖子详情
怎么用TFileStream读取文件中特定的二进制字符??在线等候!多谢!
sun_wyz
2002-10-23 08:57:50
比如用UtrEdit打开一个文件,
文件中有SIZE这个标志,
我想读取其后的16个字符,
怎么办ni?
Delphi中用$这个东西,
BCB中用什么ni?
多谢大虾了!
...全文
109
3
打赏
收藏
怎么用TFileStream读取文件中特定的二进制字符??在线等候!多谢!
比如用UtrEdit打开一个文件, 文件中有SIZE这个标志, 我想读取其后的16个字符, 怎么办ni? Delphi中用$这个东西, BCB中用什么ni? 多谢大虾了!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangzhengwang
2002-10-24
打赏
举报
回复
BCB中从大文件中读取的算法
char *Flag[]={'S','I','Z','E'};
char *OutBuf=new char[17];//保存要读取的16个字符
char TheChar;//临时字符
int CurrentCount=0;//当前要和“SIZE”比较的字符位置
bool Ret=false;//函数返回值,true为找到了SIZE标志
TFileStream *File=new TFileStream
(FileName,fmOpenRead|fmShareDenyWrite);
try{
while(File->Position<File->Size){
File->Read(&TheChar,1);//每次读一个字节
if(TheChar==Flag[CurrenCount]){
//读取的字符等于标志字符串中特定位置的字符
CurrentCount++;
//标志字符串中特定位置后移
if(CurrentCount==3){
//全部符合,则读取16个字符到输出缓冲
File->Read(OutBuf,16);
//置成功标志
Ret=true;
//退出循环
break;
}
}
else{
//字符比较不对,则标志字符串中特定位置从头开始
CurrentCount=0;
}
}
}
__finally{
delete File;
}
return Ret
sun_wyz
2002-10-24
打赏
举报
回复
还没试呢,先谢谢了!!!
我的宽带晚上10点以后居然上不了论坛:(
zhangzhengwang
2002-10-24
打赏
举报
回复
BCB中从小文件中读取的算法,速度快,但对内存容量有限制
bool Ret=false;//函数返回值,true为找到了SIZE标志
char *OutBuf=new char[16];//保存要读取的16个字符
char *FileBuf;//保存文件缓冲区的指针
char *Point;//查找用的临时指针
int Size=0;//缓冲区大小
TFileStream *File=new TFileStream
(FileName,fmOpenRead|fmShareDenyWrite);
//分配一个和文件一样大小的内存区,一次将整个文件读入
Size=File->Size;
FileBuf=new char[Size];
File->Read(FileBuf,Size);
delete File;
//从文件缓冲区开头循环查找到结束
Point=FileBuf;
while(Point<FileBuf+Size){
if((*Point=='S')&&(*(Point+1)=='I')&&
(*(Point+2)=='Z')&&(*(Point+3)==E)){
//从文件缓冲区中当前查找指针开始的四个字符全部符合,
//则指针后移四个字符后再拷贝16个字符到输出缓冲
Point+=4;
memcpy(OutBuf,FileBuf,16);
//置成功标志
Ret=true;
//退出循环
break;
}
else{
//条件不符合则查找指针后移
Point++;
}
}
delete []FileBuf;
return Ret
注意:以上两个算法没有经过调试,只是演示算法,可能会有错误
delphi读写取流记录文件T
FileStream
delphi读写取流记录文件T
FileStream
img格式图片追加存储
Delphi的T
FileStream
类来创建一个文本文件
Delphi的T
FileStream
类来创建一个文本文件
Delphi以
二进制
方式读取图片并显示出来
摘要:Delphi源码,图形处理,
二进制
Delphi以
二进制
方式读取图片并显示出来,读取图片文件为数据流,通过读取数据流转成十六进制或
二进制
。
向数据库上传
二进制
文件 Delphi
以流的方法向sql server数据库上传
二进制
文件 Delphi7语言编写
使用get()和put()读写
二进制
文件 C++ Builder实现
使用get()和put()读写
二进制
文件 C++ Builder 窗口代码实例
C++ Builder
13,871
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章