社区
C++ Builder
帖子详情
怎么用TFileStream读取文件中特定的二进制字符??在线等候!多谢!
sun_wyz
2002-10-23 08:57:50
比如用UtrEdit打开一个文件,
文件中有SIZE这个标志,
我想读取其后的16个字符,
怎么办ni?
Delphi中用$这个东西,
BCB中用什么ni?
多谢大虾了!
...全文
103
3
打赏
收藏
怎么用TFileStream读取文件中特定的二进制字符??在线等候!多谢!
比如用UtrEdit打开一个文件, 文件中有SIZE这个标志, 我想读取其后的16个字符, 怎么办ni? Delphi中用$这个东西, BCB中用什么ni? 多谢大虾了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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开发技巧之-文件操作
Windows
中
的通用应用程序的类名 使用API函数复制移动文件 ...读取
二进制
文件使用ASCII显示 转换OEM到ANSI 转换短文件名为长文件名 运行一个程序或打开一个关联文件 返回UNC路径 通过CRC-32验证文件
在Delphi
中
使用T
FileStream
以
二进制
方式保存文本文件注意事项
使用T
FileStream
保存文本文件的一些注意事项
字符
串与
二进制
数之间的互相转换
把
字符
串(可含
中
文
字符
)转为
二进制
数的函数:ConvertStrToBin();把
二进制
数转换为
字符
串的函数:ConvertBinToStr()。 以下两个函数亦可以对包含有
中
文
字符
的
字符
串进行处理,逆转时亦可正常转为
中
文。Function ...
Delphi 读取文本文件的两种方式
用两种方式读取文本文件:文件流读取和文件变量读取 一、文件流方式 {*******************************************************} {功能:读取文本文件的内容 } {参数: ...
【Delphi入门】文件系统(文件分类 & 文件文本变量 & 文件操作 & 文件流操作)
二进制
文件(Flie)
二进制
形式存放数据占有存储空间较少,但不直观;文本文件与之相反 文件是由相同类型的数据元素组成的序列。在DELPHI
中
对文件操作提供强大的支持,常用的文件类型有三种:传统的Pascal文件,带...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章