基础的基础(100分) (100分)

  • 主题发起人 主题发起人 luengan
  • 开始时间 开始时间
L

luengan

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在不知怎样从一个文件(bmp或者txt格式)读出二进制或者十六进制的数据。总的思
路是:把从屏幕上截下来的两幅图片异或,只传输与第一幅图片不同的部分。
我用的是delphi 编写。有那一位仁兄可以教教。我的E-Mail是liuhq88.263.net或者
luengan@sina.com.
 
用open打开文件如
open('filename.bmp',O_BINARY,S_IREAD|S_IWRITE)以二进制打开文件读写
再用read读write写
 
需要知道图像文件格式(如.bmp,前一部分指明文件大小,图像大小等信息,以后才是像素信息),
可以用二进制打开读写。
 
to zhongpu:
1.图片的大小不知道
2。如看作是随机的文件呢
 
TO sonie:
谢谢。读出的数据怎样放呢。
 
朋友们,快来参加讨论呀
 
你的问题是读取文件的方式,还是比较的方法?
如果是前者,用Filestream即可。
 
To 左轻侯:
你好!我主要是想得到随机文件的二进制数据。也就是起文件具体的内容,可以进行
Xor/and 运算的
 
你用文件流读进去,然后就可以分析流中的数据了
如果你对文件流不熟,可以看看delphi自己的help
 
TO 左轻侯:
谢谢你的指导,你能不能详细一点。我在delphi 的help查不到filestream的帮助。
 
怎么可能?
打开delphi的help,在索引里敲入Tfilestream,就出来了啊
 
to luengan:
左轻侯说的对,学DELPHI重要的是会用它的帮助
 
to 左轻侯(and all):
谢谢你及大大家的帮助。我是刚刚学delphi的
应该还不到两个月。很多方面不要见笑呀
 
没有这么麻烦吧,
读文件blockread(F, Buffer, ReadLength);
然后就处理Buffer里面的东西就可以了,比如异或
for i := 0 to ReadLength - 1 do
if Buffer1 xor Buffer2= 0 then ...
 
To all:
用blockread读文件,这并不能读出文件的二进制数据!
比如说,读*.bmp文件,第一,第二位是"B","m",
后面就是乱码了,这怎么办?
 
我也一样。学习学习。
 
我也想知道~~
 
不论是用BlockRead,还是ReadFile,或是FileStream读进来的都是一样的,就看你是
怎么处理了。数据在计算机里就是以2进制形式存储的,乱码并不意味着他不是2进制,
只不过不是可打印的ASCII字符罢了。
对于你的处理,你要先查找一下BMP文件的格式,在BMP文件头部含有图片尺寸、颜色
等信息。不过,不管他,直接当作数据处理也可以。
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
787
DelphiTeacher的专栏
D
D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
657
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部