帮忙写一个函数:读取当前系统时间再写入二进制文件中。

zzz22333 2007-04-25 09:08:19
如题

用模块写个函数,读取系统的时间,日期,再写入二进制文件中。

小弟没学过有关二进制的问题,还请各位赐教,谢谢了,如果能顺带讲解一下更是感激。

...全文
981 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzz22333 2007-04-25
  • 打赏
  • 举报
回复
楼上的怎么联系?
Rose2007 2007-04-25
  • 打赏
  • 举报
回复
写进去的是数据 只是直接打开看到乱码 用2进制方法读出 就是正确数据了
zzz22333 2007-04-25
  • 打赏
  • 举报
回复
哦了
zzz22333 2007-04-25
  • 打赏
  • 举报
回复
写进去的是乱码吗?
Rose2007 2007-04-25
  • 打赏
  • 举报
回复
结果为 1KB文件 因为是二进制写入 看不到具体数据 显示乱码
Rose2007 2007-04-25
  • 打赏
  • 举报
回复
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Sub InputDate(dtmDate As Date, FileName As String)
Dim bytA(7) As Byte
Dim dtmDateA As Date
dtmDateA = dtmDate
Call CopyMemory(bytA(0), dtmDateA, 8)
Open FileName For Binary As #1
Put #1, , bytA
Close #1

End Sub

Private Sub Command1_Click()
Call InputDate(Now, "e:\Now.txt")
End Sub


Private Sub SaveTimeToFile(ByVal mfile As String)
Open mfile For Binary As #1
Put #1, , Now
Close #1
End Sub

Private Sub Command2_Click()
Call SaveTimeToFile("e:\Now1.txt")
End Sub


俩个按纽 分别是我提到的那俩种方法
zzz22333 2007-04-25
  • 打赏
  • 举报
回复
我测试也没有错误,就是怎么能看出来已经插进去了,我看文件大小都是0KB
zzz22333 2007-04-25
  • 打赏
  • 举报
回复
把你测试的发上来,我的不好用
Rose2007 2007-04-25
  • 打赏
  • 举报
回复
我测试可以

不过 .BAT 是批处理文件 可以改 .TXT
zzz22333 2007-04-25
  • 打赏
  • 举报
回复
写不进去啊
Rose2007 2007-04-25
  • 打赏
  • 举报
回复
还有就是Now.bat是存在目录下的文件吗?
-----------------------------------
是他定义的文件名
要传全路径打开文件
Rose2007 2007-04-25
  • 打赏
  • 举报
回复
Call CopyMemory(bytA(0), dtmDateA, 8)

从变量dtmDateA中取8个字节放入bytA以下标为0开始的数组中
zzz22333 2007-04-25
  • 打赏
  • 举报
回复
还有就是Now.bat是存在目录下的文件吗?
zzz22333 2007-04-25
  • 打赏
  • 举报
回复
CopyMemory 这个API在这里起的什么作用?
zzz22333 2007-04-25
  • 打赏
  • 举报
回复
学习
Rose2007 2007-04-25
  • 打赏
  • 举报
回复
简单的 暴风雨的就可以
作为学习 ZOU_SEAFARER的也不错
jinhengxyz 2007-04-25
  • 打赏
  • 举报
回复
rainstormmaster(暴风雨 v2.0) 的就可以啊。。。呵呵 api都出来咯 高
CathySun118 2007-04-25
  • 打赏
  • 举报
回复
Private Sub SaveNowTimeToFile(ByVal fname As String)
Open fname For Binary As #1
Put #1, format(Now,"yyyy-mm-dd hh:mn:ss")
Close #1
End Sub
zzz22333 2007-04-25
  • 打赏
  • 举报
回复
感觉我给的分少了,讲解真细
ZOU_SEAFARER 2007-04-25
  • 打赏
  • 举报
回复
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Sub InputDate(dtmDate As Date, FileName As String)
Dim bytA(7) As Byte
Dim dtmDateA As Date
dtmDateA = dtmDate
Call CopyMemory(bytA(0), dtmDateA, 8)
Open FileName For Binary As #1
Put #1, , bytA
Close #1

End Sub

Private Sub Command1_Click()
Call InputDate(Now, "Now.bat")
End Sub
加载更多回复(4)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧