| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1772 人关注过本帖
标题:求教一个二进制方式打开文件的疑问
只看楼主 加入收藏
btt6
Rank: 2
等 级:论坛游民
帖 子:46
专家分:10
注 册:2016-8-13
结帖率:47.83%
收藏
已结贴  问题点数:5 回复次数:5 
求教一个二进制方式打开文件的疑问
如何以二进制方式打开一个文件,并把文件的第一个字符串内容和最后一个字符串内容调换位置,并保存
文件存放目录 c:\a2.bmp
求哪位好心人能给个思路或方法,谢谢了

搜索更多相关主题的帖子: 二进制 字符串 如何 
2017-01-11 11:28
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:2 
既然是二进制数据,怎么会是“第一个字符串内容和最后一个字符串内容”? 搞不懂!字符串不可能是二进制数据!
二进制文件根据存储二进制文件的原始文件不同,其打开二进制文件显示的方式不同,那么你的这个二进制文件的原始文件可能是 *.bmp 文件吧?
况且 *.bmp 文件中也不可能存在字符串数据!

请不要选我!!!
2017-01-11 16:22
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:2 
可能是楼主表达和举例不当。如果是二进制文件直接用open就可以实现

程序代码:
 Dim myByt() As Byte  '定义一个数组
 

 FileSize = FileLen(OldFile) '获取文件长度
 ReDim myByt(FileSize - 1) As Byte

 

 Open OldFile For Binary As #1

 Get #1, , myByt

 Close #1
  

 Dim byt1 As Byte

 byt1 = myByt(LBound(myByt))

 myByt(LBound(myByt)) = myByt(UBound(myByt))

 myByt(UBound(myByt)) = byt1

 

 Open NewFile For Binary As #2

 Put #2, , myByt

 Close #2
2017-01-11 19:41
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
在ADO中有一个Stream对象,可以轻松处理二进制图片的显示、存储,图片可以是 *.bmp、*.gif、*.jpg等。
但楼主的“并把文件的第一个字符串内容和最后一个字符串内容调换位置”没有办法处理。
下面是一个读取二进制图片的程序代码,供参考。
程序代码:
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim mst As New ADODB.Stream
Private Sub List1_Click()
  Dim cnnstr As String
  cnnstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ABC.mdb;Persist Security Info=False"
  cn.Open cnnstr
  rs.Open "select * from 文件表 where 名称='" + List1.Text + "'", cn, adOpenDynamic, adLockOptimistic
  mst.Type = adTypeBinary
  mst.Open
  mst.Write rs.Fields("文件")
  mst.SaveToFile App.Path & "\doc\" & List1.Text & ".jpg", adSaveCreateOverWrite    '在doc目录中存储图片
  Image1.Picture = LoadPicture(App.Path & "\doc\" & List1.Text)    '在 Image1 控件显示图片
  mst.Close
  rs.Close
End Sub

请不要选我!!!
2017-01-12 12:40
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4941
专家分:30047
注 册:2008-10-15
收藏
得分:2 
复制文件,然后
以二进制数据打开文件 ,然后读取第一个字节,取文件长度,读最后一个字节。
把最后一个字节写到第一个字节位置,然后把第一个字节写到最后一个字节位置。

反向解密,同样的操作。


授人于鱼,不如授人于渔
早已停用QQ了
2017-01-12 13:36
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
回复 5楼 风吹过b
这个当然可以,但是必须是在存储二进制文件时必须按你的说法操作,然后在读取文件时再反向操作。不过没有试过,是否可以有待测试。
问题是这样操作就比较麻烦一点,首先需要打开二进制文件,操作二进制文件,然后才能使用ADO对象操作图片的存储与读取。
如果有时间我测试一下看看是否可以。

请不要选我!!!
2017-01-12 13:48
快速回复:求教一个二进制方式打开文件的疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017545 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved