怎么样读取exe文件后面的数据

xxlroad 2002-01-06 05:31:27
怎么样读取exe文件后面的数据

open "Pbrush.exe" for append as #1
print #1,"abcdefg"
close #1

怎样才能把我写进去的 abcdefg 读到text1中?


回复人: Bardo(巴顿) (2002-1-6 16:27:59) 得0分
方法很多:
读出整个文件存入字串,用Rigt函数取出,或用指针移位。或用随机打开指针定位。
回复人: xxlroad(土八路) (2002-1-6 17:22:32) 得0分
请具体点
可否给出代码
oicq 26603030
回复人: xxlroad(土八路) (2002-1-6 17:23:25) 得0分
读出整个文件存入字串
怎么读?
...全文
164 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bardo 2002-01-07
  • 打赏
  • 举报
回复
如果指针不能移,你先将文件指针转为内存指针。
即用CopyMemory,
代码中有,我不多说了!!
Bardo 2002-01-07
  • 打赏
  • 举报
回复
出了什么错?
xxlroad 2002-01-07
  • 打赏
  • 举报
回复
请再帮忙一下
这个通不过
xxlroad 2002-01-07
  • 打赏
  • 举报
回复
谢了
我调试一下
Bardo 2002-01-06
  • 打赏
  • 举报
回复
这是要API实现的,程序未调试。

Option Explicit

Public Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long

Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" _
(ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, _
lpSecurityAttributes As SECURITY_ATTRIBUTES, _
ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long

Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type

Public Const GENERIC_READ = &H80000000
Public Const FILE_SHARE_READ = &H1
Public Const OPEN_EXISTING = 3
Public Const FILE_ATTRIBUTE_NORMAL = &H80

Private Declare Sub CopyMemory Lib "kernel32" Alias _
"RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As _
Long, ByVal cbCopy As Long)


Public Function RedFileStr(ByVal FileName As String, StrLength As Long) As String

Dim SA As SECURITY_ATTRIBUTES
Dim FHnd As Long
FHnd = CreateFile _
(FileName, _
GENERIC_READ, _
FILE_SHARE_READ, _
SA, _
OPEN_EXISTING, _
FILE_ATTRIBUTE_NORMAL, _
0)
Dim FileSize As Long

FileSize = GetFileSize(FHnd)

Dim lpsz As Long

'将指针偏移到要读的位置:
lpsz = fhwnd + (fhwnd - StrLength)

'转为Basic String
RedFileStr = LPSTRtoBSTR(lpsz)

End Function

Private Function LPSTRtoBSTR(ByVal lpsz As Long) As String

' Input: a valid LPSTR pointer lpsz
' Output: a sBSTR with the same character array

Dim cChars As Long

' Get number of characters in lpsz
cChars = lstrlen(lpsz)

' Initialize string
LPSTRtoBSTR = String$(cChars, 0)

' Copy string
CopyMemory ByVal StrPtr(LPSTRtoBSTR), ByVal lpsz, cChars

' Convert to Unicode
LPSTRtoBSTR = Trim0(StrConv(LPSTRtoBSTR, vbUnicode))

End Function

Private Function Trim0(sName As String) As String
' Right trim string at first null.
Dim x As Integer
x = InStr(sName, vbNullChar)
If x > 0 Then Trim0 = Left$(sName, x - 1) Else Trim0 = sName
End Function

7,763

社区成员

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

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