您的位置:程序门 -> vb -> 基础类



读文件,取出后发现少了一个字节,这是怎么回事?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


读文件,取出后发现少了一个字节,这是怎么回事?[已结贴,结贴人:yoyo9250]
发表于:2007-01-06 11:21:10 楼主
我自定义如下:
type   fle_2
    aa(23)         as   integer
    bb(23)       as   integer
    cc(23)     as   integer
    dd(23)     as   integer
。。。。。
。。。。
  end   type
                                                  注:           ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '以上共352字节
type   str_message
    strmessage           as   string
end   type

public   flethr               as   fle_2
public   flethro             as   str_message


然后读文件:
        open   strfpaht   for   binary   as   #1
                  get   #1,   1,   flethr
                  get   #1,   352,   flethro
        close   #1


问题是flethro.strmessage中存取的数据     第一位没有了,不见了


请问这是为什么呢?

先谢谢喽
发表于:2007-01-06 11:22:361楼 得分:2
get   #1,   1,   flethr
改成
  get   #1,   0,   flethr
发表于:2007-01-06 11:59:312楼 得分:0
楼上:
      跟以前一样的效果啊
发表于:2007-01-06 12:02:213楼 得分:0
你第一个字节是什么内容
是不是空的?
发表于:2007-01-06 12:41:504楼 得分:0
flethro.strmessage     中的第一个字节转换成字符型是“m”     不是空
发表于:2007-01-06 13:41:005楼 得分:0
open   strfpaht   for   binary   as   #1
                  get   #1,   1,   flethr         ' '既然已经读了352个字节,那
                  get   #1,   352,   flethro     ' '下面是不是应该从353开始读了。
        close   #1
发表于:2007-01-06 13:52:346楼 得分:0
楼上:
      刚开始   我也是从     353   开始读的,可是那样出来后,是少2个字节。
      从352开始,就少1个字节。
      从351开始,就什么都没有啦
发表于:2007-01-06 14:35:447楼 得分:2
干脆什么都不用试试,如果这样也出问题,可能是你写数据时出错了。

open   strfpaht   for   binary   as   #1
                  get   #1,   ,   flethr         ' '既然已经读了352个字节,那
                  get   #1,   ,   flethro     ' '下面是不是应该从353开始读了。
        close   #1
发表于:2007-01-06 14:43:528楼 得分:5
type   str_message
    strmessage           as   string
end   type
应该跟这个定义有关系,strmessage如果是定长字符串应该不会发生这个问题
使用变长字符串,有可能会把第一个字符当成长度描述符解释,因此会丢掉第一个字符
发表于:2007-01-06 15:14:519楼 得分:20
type   str_message
    strmessage()           as   byte
end   type

public   flethr               as   fle_2
public   flethro             as   str_message


然后读文件:
        open   strfpaht   for   binary   as   #1
                  get   #1,   1,   flethr
                  get   #1,   1+len(flethr),   flethro.strmessage
        close   #1
发表于:2007-01-06 15:15:2010楼 得分:1
type   str_message
    strmessage()           as   string   *1         //也可
end   type


快速检索

最新资讯
热门点击