我有一个数据文件,里面记录的一些电脑使用情况
我分析的情况来看,他把每天的内容都用固定的格式记录下来了,我现在基本上也能读出来前面的记录,但是它在不同天的时候好像加入了一个0c的字符来间隔资料,在ue里面看上去是一条线,我的程序自动读到这里就认为数据不符合变量自动退出,请问怎么跳过去阿?
还有,delphi里面的TDateTime变量vb里面的date能不能正好对应阿?

解决方案 »

  1.   

    TDateTime变量vb里面的date能不能正好对应!?
    这是什么意思!?
      

  2.   

    RecType:Integer; //此项记录的类型(0计时 1限时 2会员 3通宵) 
    RecDate:TDateTime; //此项记录的日期 
    BeginTime:TDateTime; //上机开始时间 
    EndTime:TDateTime; //上机结束时间 
    RecMinTime:Integer; //上机总用时(以分钟为单位) 
    ComputerNum:Integer; //此机机号 
    Price:Real; //费率 
    Money1:Real; //上机费用 负值代表费用转移了 
    Money2:Real; //附加费用 负值代表费用转移了 
    Money3:Real; //实收金额 负值代表费用转移了 
    Manager:String[16]; //管理者名字 
    Username:String[16]; //使用者名字 
    Memo:String[100]; //备注
      

  3.   

    The integral part of a Delphi TDateTime value is the number of days that have passed since 12/30/1899. The fractional part of the TDateTime value is fraction of a 24 hour day that has elapsed.
      

  4.   

    我用这个来读但是总是日期无法显示,后面的也错了
    是不是vb里面的date变量和delphi长度不同啊
    那个软件是delphi写的
    Type theRecord RecType As Integer ' //此项记录的类型(0计时 1限时 2会员 3通宵)
     RecDate As Date ' //此项记录的日期
     BeginTime As Date  ' //上机开始时间
     EndTime As Date  ' //上机结束时间
     RecMinTime As Integer ' //上机总用时(以分钟为单位)
     ComputerNum As Integer ' //此机机号
     Price As Double ' //费率
     Money1 As Double ' //上机费用 负值代表费用转移了
     Money2 As Double  ' //附加费用 负值代表费用转移了
     Money3 As Double   ' //实收金额 负值代表费用转移了
     Manager As String * 16 ' //管理者名字
     Username As String * 16 ' //使用者名字
     Memo As String * 100 ' //备注End Type
      

  5.   

    type TDateTime = type Double;
      

  6.   

    你的类型对应的都差不多,没有什么错误,VB里的Date为64位,8个字节
    Delhpi里的TDateTime相当于Double,也是8个字节,你读的数据文件格式是什么样子的!!
    读的程序又是什么样的????问题可能出在这!!!
      

  7.   

    NO,虽然都是Double,但其含义是不一样的。上面那一段英文来自Delphi的帮助,看不懂吗?建议当成数来读,然后再算出时间
      

  8.   

    文件没办法在这个文本框里面显示,都是乱码
    我只是发现ue里面相隔几行有一条线,16进制代码是0c,我觉得应该是这个字符,不符合规定导致出错
    但是它在不同天的时候好像加入了一个0c的字符来间隔资料,在ue里面看上去是一条线,我的程序自动读到这里就认为数据不符合变量自动退出,请问怎么跳过去阿?
      

  9.   

    晓琴妹妹,你行不行了,I服了Y~~~~~~~那你再看看VB的帮助行不!!!!!!Date 变量存储为 IEEE 64 位(8 个字节)浮点数值形式,其可以表示的日期范围从 100 年 1 月 1 日到 9999 年 12 月 31 日,而时间可以从 0:00:00 到 23:59:59。任何可辨认的文本日期都可以赋值给 Date 变量。日期文字须以数字符号 (#) 扩起来,例如,#January 1, 1993# 或 #1 Jan 93#。
    Date 变量会根据计算机中的短日期格式来显示。时间则根据计算机的时间格式(12 或 24 小时制)来显示。当其他的数值类型要转换为 Date 型时,小数点左边的值表示日期信息,而小数点右边的值则表示时间。午夜为 0 而中午为 0.5。负整数表示 1899 年 12 月 30 日之前的日期。
      

  10.   

    这是这个delphi软件的自带文档里面说明的
    Type SconRecFile=Record 
    RecType:Integer; //此项记录的类型(0计时 1限时 2会员 3通宵) 
    RecDate:TDateTime; //此项记录的日期 
    BeginTime:TDateTime; //上机开始时间 
    EndTime:TDateTime; //上机结束时间 
    RecMinTime:Integer; //上机总用时(以分钟为单位) 
    ComputerNum:Integer; //此机机号 
    Price:Real; //费率 
    Money1:Real; //上机费用 负值代表费用转移了 
    Money2:Real; //附加费用 负值代表费用转移了 
    Money3:Real; //实收金额 负值代表费用转移了 
    Manager:String[16]; //管理者名字 
    Username:String[16]; //使用者名字 
    Memo:String[100]; //备注 
    这是我在vb6.0里面写的
    Type theRecord RecType As Integer ' //此项记录的类型(0计时 1限时 2会员 3通宵)
     RecDate As Date ' //此项记录的日期
     BeginTime As Date  ' //上机开始时间
     EndTime As Date  ' //上机结束时间
     RecMinTime As Integer ' //上机总用时(以分钟为单位)
     ComputerNum As Integer ' //此机机号
     Price As Double ' //费率
     Money1 As Double ' //上机费用 负值代表费用转移了
     Money2 As Double  ' //附加费用 负值代表费用转移了
     Money3 As Double   ' //实收金额 负值代表费用转移了
     Manager As String * 16 ' //管理者名字
     Username As String * 16 ' //使用者名字
     Memo As String * 100 ' //备注End Type
      

  11.   

    Open Text1.Text For Random As #1 Len = Len(Myrecord)
    Get #1, ,Myrecord
    Close #1
      

  12.   

    http://www.playps.com/s.tmp
    两位大姐,帮忙看看这个文件阿
      

  13.   

    sorry,偶没有VB6的帮助,是偶记错了,对不起各位
      

  14.   

    //射天狼妹妹不要误导啊~~~~~~~
    也不是我说的'a两位大哥!!帮忙看看http://www.playps.com/s.tmp
      

  15.   

    \\太亲热了,哥哥妹妹叫不停,眼红死傍边人了...哈哈 ....
    \\只羡鸳鸯不慕仙..faint,老兄不要乱说,
    她不是俺媳妇儿
      

  16.   

    Private Type theRecord RecType As Integer ' //此项记录的类型(0计时 1限时 2会员 3通宵)
     RecDate As Double   ' //此项记录的日期
     BeginTime As Double  ' //上机开始时间
     EndTime As Double  ' //上机结束时间
     RecMinTime As Integer ' //上机总用时(以分钟为单位)
     ComputerNum As Integer ' //此机机号
     Price As Double ' //费率
     Money1 As Double ' //上机费用 负值代表费用转移了
     Money2 As Double  ' //附加费用 负值代表费用转移了
     Money3 As Double   ' //实收金额 负值代表费用转移了
     Manager As String * 16 ' //管理者名字
     Username As String * 16 ' //使用者名字
     Memo As String * 100 ' //备注End Type
      

  17.   

    TO: MSTOP(陈建华(东莞立晨企资)) 
    俺也不是她老公!!不要胡说,对女同志影响不好啊~~~~
      

  18.   

    哈哈~你也做这个?这可是美萍的记录库格式哦!
    难道你的老板也是用这个来核对RMB的?我以前做的那间就是了!VB里用 open 语句的 Random 方式来读就可以了!打开文件后用 get #[freefile],1,[指向结构的变量名]
    就可以取得第一条记录了!测试一下:在窗体上放上两个按钮.加入如下代码...
    代码会在你的D:\建立一个123.dat的文件.存着Type myRes结构里的数据
    先单击按钮Command1,然后再单击Command2!!!很简单呢...Option Explicit
    Private Type myRes
            abc As String
            bcd As Integer
    End TypePrivate Sub Command1_Click()
        Dim m_res As myRes
        m_res.abc = "ewewew"
        m_res.bcd = 123
        Open "D:\123.dat" For Random As #1
             Put #1, 1, m_res
        Close #1
    End SubPrivate Sub Command2_Click()
        Dim m_res As myRes
        Open "D:\123.dat" For Random As #1
              Get #1, 1, m_res
        Close #1
        MsgBox m_res.abc & " " & m_res.bcd
    End Sub
      

  19.   

    试过了!用Delphi都读不全!不知道还有什么手脚没做~