CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

读写文件出错,求助!

楼主Plearner(^PloveP^)2005-05-11 21:52:28 在 VB / 基础类 提问

Private   Sub   LinkCmd_Click()  
      Open   App.Path   &   "\cap.jpg"   For   Binary   Access   Read   As   #2  
      Get   #2,   1,   SData$  
      Close   #2  
           
      Open   App.Path   &   "\got.jpg"   For   Binary   Access   Write   As   #1  
      Put   #1,   1,   SData$  
      Close   #1          
  End   Sub  
   
  为何上面的程序会出错?把jpg文件换成txt文件就不会出错。不要用别的方法读写文件,用该方法读写文件应该如何改正程序? 问题点数:30、回复次数:5Top

1 楼Plearner(^PloveP^)回复于 2005-05-11 22:38:21 得分 0

加上     SData$=Space(lof(2))   也不行。  
  得到的got.jpg会比cap.jpg大,然后该jpg不能显示。  
  为什么,求助!Top

2 楼sektor(普通动物)回复于 2005-05-11 22:42:37 得分 0

SData$<=================??  
   
  or   Byte?  
   
   
  that's   all  
   
   
   
   
  Top

3 楼maplevsred(残桓枫雪)回复于 2005-05-11 23:01:40 得分 30

你要读入的是一个二进制型的文件,但却使用了字符串型的变量。可以使用字节数组来存放读入的二进制数据  
   
          Dim   s()   As   Byte  
          Open   "f:\f4.jpg"   For   Binary   Access   Read   As   #2  
          ReDim   s(LOF(2)   -   1)  
          Get   #2,   1,   s  
          Close   #2  
           
          Open   "f:\w4.jpg"   For   Binary   Access   Write   As   #1  
          Put   #1,   1,   s  
          Close   #1  
   
  Top

4 楼Plearner(^PloveP^)回复于 2005-05-12 09:17:16 得分 0

谢谢!顺便再问一下,如果用winsock传输所读取的数据,如果用一字节一字节的传输显然较慢,如何传输比较快。连续不断的传输视频图片。用上面的方法岂不是要  
  发送端  
  Dim   s()   As   Byte  
          Open   "f:\f4.jpg"   For   Binary   Access   Read   As   #2  
          ReDim   s(LOF(2)   -   1)  
          Get   #2,   1,   s  
          Close   #2  
   
  for   i=1   to   lof(2)  
      winsock1.senddata   s(i-1)  
  next  
   
  接收端  
  先得到文件长度  
  dim   s()   as   byte  
  然后redim   s(lenoffile-1)  
  i=0  
  winsock1.getdata   s()  
  i=i+1  
  if   i=lenoffile   then  
        Open   "f:\w4.jpg"   For   Binary   Access   Write   As   #1  
          Put   #1,   1,   s  
          Close   #1  
  endif  
   
  这样做是不是速度会减慢很多。  
  Top

5 楼sektor(普通动物)回复于 2005-05-12 09:21:30 得分 0

上面这个问题你做的太简单了.  
   
  for   i=1   to   lof(2)  
      winsock1.senddata   s(i-1)  
  next  
   
  到网络版看看FAQTop

相关问题

  • 读取.INI文件出错
  • 读文件时出错:(
  • 读写INI 文件,总是出错!(一个很菜的问题)
  • 文件读写出错,只指出行数无其他提示
  • 读写文件时出错。急~~在线等
  • 为什么读取文件会出错?
  • 读取文件出错,帮解决!
  • JDOM读取SVG文件时出错...
  • 在代理中读文件出错!
  • 读取文本文件出错?

关键词

  • 文件
  • access
  • 出错
  • 求助
  • sdata
  • jpg
  • 程序
  • got
  • 方法读写
  • cap

得分解答快速导航

  • 帖主:Plearner
  • maplevsred

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo