文件读写和文件映射模块源码
系统结构:子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号,取映射对象名,打开文件,初始化_从文件创建,初始化_从内存创建,从文件号创建,初始化_从映射对象名创建,关闭,关闭对象,取首地址,取读写位置,移动读写位置,移到首位置,移到尾位置,读出字节集,读出文本,读出字节,读出短整数,读出整数,读出长整数,读出小数,读出双精度小数,读出逻辑值,读出日期时间型,写入字节集,写入文本,写入小数,写入双精度小数,写入字节,写入短整数,写入整数,写入长整数,写入日期时间,写入逻辑,取错误信息,插入字节集,插入文本,插入小数,插入双精度小数,插入字节,插入短整数,插入整数,插入长整数,插入日期时间,插入逻辑,取文件映射尺寸,寻找字节集,中止寻找字节集,取寻找字节集进度,删除数据,取文件映射对象名,WriteFile,CloseHandle,GetFileSize,GetLastError,FormatMessage,ReadFile,CreateFile,SetFilePointer,LockFile,UnlockFile,FlushFileBuffers,FlushViewOfFile,取文件路径目录_,CreateFileMapping1,CreateFileMapping2,MapViewOfFile,UnmapViewOfFile,GlobalLock,GlobalHandle,OpenFileMapping,GlobalSize,CopyMemory,CopyMemory_s,CopyMemory_x,CopyMemory_sj,CopyMemory_d,CopyMemory_z,CopyMemory_c,CopyMemory_r,MoveMemory,VirtualQuery,进程权限提升_,进程优先级_,进程伪句柄_,打开令牌,恢复权限,获取令牌特权,置进程优先级_,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ 子程序1
| |
| |
======文件读写
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 打开文件
| |
| |------ 生成空文件
| |
| |------ 生成重复字节文件
| |
| |------ 移到文件首
| |
| |------ 移到文件尾
| |
| |------ 移动读写位置
| |
| |------ 取读写位置
| |
| |------ 关闭文件
| |
| |------ 取文件长度
| |
| |------ 写出字节集
| |
| |------ 是否在文件尾
| |
| |------ 取错误信息
| |
| |------ 读入字节集
| |
| |------ 读入2M字节集
| |
| |------ 清除文件缓冲区
| |
| |------ 读入文本
| |
| |------ 写出文本
| |
| |------ 写文本行
| |
| |------ 读入一行
| |
| |------ 插入字节集
| |
| |------ 取文件号
| |
| |
======文件映射
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 取映射对象名
| |
| |------ 打开文件
| |
| |------ 初始化_从文件创建
| |
| |------ 初始化_从内存创建
| |
| |------ 从文件号创建
| |
| |------ 初始化_从映射对象名创建
| |
| |------ 关闭
| |
| |------ 关闭对象
| |
| |------ 取首地址
| |
| |------ 取读写位置
| |
| |------ 移动读写位置
| |
| |------ 移到首位置
| |
| |------ 移到尾位置
| |
| |------ 读出字节集
| |
| |------ 读出文本
| |
| |------ 读出字节
| |
| |------ 读出短整数
| |
| |------ 读出整数
| |
| |------ 读出长整数
| |
| |------ 读出小数
| |
| |------ 读出双精度小数
| |
| |------ 读出逻辑值
| |
| |------ 读出日期时间型
| |
| |------ 写入字节集
| |
| |------ 写入文本
| |
| |------ 写入小数
| |
| |------ 写入双精度小数
| |
| |------ 写入字节
| |
| |------ 写入短整数
| |
| |------ 写入整数
| |
| |------ 写入长整数
| |
| |------ 写入日期时间
| |
| |------ 写入逻辑
| |
| |------ 取错误信息
| |
| |------ 插入字节集
| |
| |------ 插入文本
| |
| |------ 插入小数
| |
| |------ 插入双精度小数
| |
| |------ 插入字节
| |
| |------ 插入短整数
| |
| |------ 插入整数
| |
| |------ 插入长整数
| |
| |------ 插入日期时间
| |
| |------ 插入逻辑
| |
| |------ 取文件映射尺寸
| |
| |------ 寻找字节集
| |
| |------ 中止寻找字节集
| |
| |------ 取寻找字节集进度
| |
| |------ 删除数据
| |
| |------ 取文件映射对象名
| |
| |
======调用的Dll
| |
| |---[dll]------ WriteFile
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ GetFileSize
| |
| |---[dll]------ GetLastError
| |
| |---[dll]------ FormatMessage
| |
| |---[dll]------ ReadFile
| |
| |---[dll]------ CreateFile
| |
| |---[dll]------ SetFilePointer
| |
| |---[dll]------ LockFile
| |
| |---[dll]------ UnlockFile
| |
| |---[dll]------ FlushFileBuffers
| |
| |---[dll]------ FlushViewOfFile
| |
| |---[dll]------ 取文件路径目录_
| |
| |---[dll]------ CreateFileMapping1
| |
| |---[dll]------ CreateFileMapping2
| |
| |---[dll]------ MapViewOfFile
| |
| |---[dll]------ UnmapViewOfFile
| |
| |---[dll]------ GlobalLock
| |
| |---[dll]------ GlobalHandle
| |
| |---[dll]------ OpenFileMapping
| |
| |---[dll]------ GlobalSize
| |
| |---[dll]------ CopyMemory
| |
| |---[dll]------ CopyMemory_s
| |
| |---[dll]------ CopyMemory_x
| |
| |---[dll]------ CopyMemory_sj
| |
| |---[dll]------ CopyMemory_d
| |
| |---[dll]------ CopyMemory_z
| |
| |---[dll]------ CopyMemory_c
| |
| |---[dll]------ CopyMemory_r
| |
| |---[dll]------ MoveMemory
| |
| |---[dll]------ VirtualQuery
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮_从内存创建_被单击
| |
| |------ _按钮_读数据_被单击
| |
| |------ _按钮_关闭_被单击
| |
| |------ _按钮_从内存创建1_被单击
| |
| |------ _按钮_写数据_被单击
| |
| |------ _按钮_读数据1_被单击
| |
| |------ _按钮_关闭1_被单击
| |
| |
======窗口程序集2
| |
| |------ __启动窗口1_创建完毕
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮_从内存创建_被单击
| |
| |------ _按钮_写数据_被单击
| |
| |------ _按钮_读数据_被单击
| |
| |------ _按钮_关闭_被单击
| |
| |------ _按钮_从内存创建1_被单击
| |
| |------ _按钮_读数据1_被单击
| |
| |------ _按钮_关闭1_被单击
| |
| |
======窗口程序集2
| |
| |------ __启动窗口1_创建完毕
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ 进程权限提升_
| |
| |------ 进程优先级_
| |
| |------ _按钮_从内存创建_被单击
| |
| |------ _按钮_读数据_被单击
| |
| |------ _按钮_关闭_被单击
| |
| |------ _按钮_写数据1_被单击
| |
| |
======窗口程序集2
| |
| |------ __启动窗口1_创建完毕
| |
| |
======调用的Dll
| |
| |---[dll]------ 进程伪句柄_
| |
| |---[dll]------ 打开令牌
| |
| |---[dll]------ 恢复权限
| |
| |---[dll]------ 获取令牌特权
| |
| |---[dll]------ 置进程优先级_
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮_从内存创建_被单击
| |
| |------ _按钮_写数据_被单击
| |
| |------ _按钮_读数据_被单击
| |
| |------ _按钮_关闭_被单击
| |
| |
======窗口程序集2
| |
| |------ __启动窗口1_创建完毕
调用的DLL命令:
.DLL命令 WriteFile, 逻辑型, "kernel32.dll", "WriteFile", , (非零)表示成功,否则返回零。
.参数 文件句柄, 整数型, , hFile,一个文件的句柄
.参数 数据缓冲区, 字节集, 传址, lpBuffer,要写入的一个数据缓冲区
.参数 欲写入字节数量, 整数型, , nNumberOfBytesToWrite,要写入数据的字节数量。如写入零字节,表示什么都不写入,但会更新文件的“上一次修改时间”。针对位于远程系统的命名管道,限制在65535个字节以内
.参数 实际写入字节数量, 整数型, 传址, lpNumberOfBytesWritten,实际写入文件的字节数量
.参数 特殊结构, 整数型, , lpOverlapped,倘若在指定FILE_FLAG_OVERLAPPED的前提下打开文件,这个参数就必须引用一个特殊的结构。那个结构定义了一次异步写操作。否则,该参数应置为空(将声明变为ByVal As Long,并传递零值)
.DLL命令 CloseHandle, 整数型, "kernel32", "CloseHandle"
.参数 对象句柄, 整数型
.DLL命令 GetFileSize, 整数型, "kernel32.dll", "GetFileSize"
.参数 文件号, 整数型, , hFile
.参数 文件尺寸, 整数型, 传址, lpFileSize
.DLL命令 GetLastError, 整数型, "kernel32", "GetLastError"
.DLL命令 FormatMessage, 整数型, "kernel32.dll", "FormatMessageA"
.参数 dwFlags, 整数型
.参数 lpSource, 整数型, , Any
.参数 消息ID, 整数型
.参数 语言ID, 整数型, , 现在系统不支持了,置0
.参数 缓冲区, 文本型
.参数 缓冲区大小, 整数型
.参数 Arguments, 整数型
.DLL命令 ReadFile, 整数型, "kernel32", "ReadFile", , ""
.参数 hFile, 整数型, , 文件的句柄
.参数 lpBuffer, 字节集, 传址, 用于保存读入数据的一个缓冲区
.参数 nNumberOfBytesToRead, 整数型, , 要读入的字符数
.参数 lpNumberOfBytesRead, 整数型, 传址, 从文件中实际读入的字符数
.参数 lpOverlapped, 整数型, , 如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须用这个参数引用一个特殊的结构。那个结构定义了一次异步读取操作。否则,应将这个参数设为NULL(将函数声明成ByVal As Long,并传递零值)
.DLL命令 CreateFile, 整数型, "kernel32.dll", "CreateFileA", , ""
.参数 lpFileName, 文本型, , ""
.参数 dwDesiredAccess, 整数型, , ""
.参数 dwShareMode, 整数型, , ""
.参数 lpSecurityAttributes, 整数型, , ""
.参数 dwCreationDisposition, 整数型, , ""
.参数 dwFlagsAndAttributes, 整数型, , ""
.参数 hTemplateFile, 整数型, , ""
.DLL命令 SetFilePointer, 整数型, "kernel32.dll", "SetFilePointer", , ""
.参数 hFile, 整数型, , ""
.参数 lDistanceToMove, 整数型, , ""
.参数 lpDistanceToMoveHigh, 整数型, 传址, ""
.参数 dwMoveMethod, 整数型, , ""
.DLL命令 LockFile, 整数型, "kernel32", "LockFile", , ""
.参数 hFile, 整数型, , ""
.参数 dwFileOffsetLow, 整数型, , ""
.参数 dwFileOffsetHigh, 整数型, , ""
.参数 nNumberOfBytesToLockLow, 整数型, , ""
.参数 nNumberOfBytesToLockHigh, 整数型, , ""
.DLL命令 UnlockFile, 整数型, "kernel32", "UnlockFile", , ""
.参数 hFile, 整数型, , ""
.参数 dwFileOffsetLow, 整数型, , ""
.参数 dwFileOffsetHigh, 整数型, , ""
.参数 nNumberOfBytesToUnlockLow, 整数型, , ""
.参数 nNumberOfBytesToUnlockHigh, 整数型, , ""
.DLL命令 FlushFileBuffers, 逻辑型, "kernel32", "FlushFileBuffers"
.参数 hFile, 整数型, , ""
.DLL命令 FlushViewOfFile, 整数型, "kernel32", "FlushViewOfFile", , 将写入文件映射缓冲区的所有数据都刷新到磁盘
.参数 lpBaseAddress, , , 包含了刷新基本地址的一个Long值(参考注解)
.参数 dwNumberOfBytesToFlush, , , 欲刷新的字节数
.DLL命令 取文件路径目录_, 逻辑型, "shlwapi.dll", "PathRemoveFileSpecA", , 如:"c:\windows\boot.ini"返回"c:\windows"
.参数 路径文本, 文本型, , pszPath
.DLL命令 CreateFileMapping1, 整数型, "kernel32", "CreateFileMappingA", , 创建文件映射对象。成功就返回文件映射对象句柄
.参数 hFile, 整数型, , 欲在其中创建映射的一个已经打开的磁盘文件句柄
.参数 lpFileMappigAttributes, 整数型, , 通常用0表示使用默认security对象
.参数 flProtect, 整数型, , 打开映射的方式(用API常数表示的读/写或其它)
.参数 dwMaximumSizeHigh, 整数型, , 表示文件映射的最大长度的高32位。通常均设为0表示磁盘文件的实际长度
.参数 dwMaximumSizeLow, 整数型, , 表示文件映射的最大长度的低32位。通常均设为0表示磁盘文件的实际长度
.参数 lpName, 文本型, , 指定文件映射对象的名称
.DLL命令 CreateFileMapping2, 整数型, "kernel32", "CreateFileMappingA", , 创建文件映射对象。成功就返回文件映射对象句柄
.参数 hFile, 整数型, , 欲在其中创建映射的一个已经打开的磁盘文件句柄
.参数 lpFileMappigAttributes, 整数型, , 通常用0表示使用默认security对象
.参数 flProtect, 整数型, , 打开映射的方式(用API常数表示的读/写或其它)
.参数 dwMaximumSizeHigh, 整数型, , 表示文件映射的最大长度的高32位。通常均设为0表示磁盘文件的实际长度
.参数 dwMaximumSizeLow, 整数型, , 表示文件映射的最大长度的低32位。通常均设为0表示磁盘文件的实际长度
.参数 lpName, 整数型, , 指定文件映射对象的名称
.DLL命令 MapViewOfFile, 整数型, "kernel32.dll", "MapViewOfFile", , 将一个文件映射对象映射到当前应用程序空间。成功就返回文件映射在内存中的起始地址
.参数 hFileMappingObject, 整数型, , 文件映射对象的句柄
.参数 dwDesiredAccess, 整数型, , 用API常数表示的对文件映射的访问方式
.参数 dwFileOffsetHigh, 整数型, , 表示文件中的映射起点的高32位。通常均设为0表示从文件的起始处开始映射
.参数 dwFileOffsetLow, 整数型, , 表示文件中的映射起点的低32位。通常均设为0表示从文件的起始处开始映射
.参数 dwNumberOfBytesToMap, 整数型, , 要映射的字节数,通常设为0表示映射整个文件映射对象。
.DLL命令 UnmapViewOfFile, 整数型, "kernel32.dll", "UnmapViewOfFile", , 解除当前应用程序中的一个文件映射对象的映射地址空间。非零表示成功,零表示失败
.参数 lpBaseAddress, 整数型, , 要解除映射的文件映射起始地址。
.DLL命令 GlobalLock, 整数型, "kernel32.dll", "GlobalLock"
.参数 hMem, 整数型
.DLL命令 GlobalHandle, 整数型, "kernel32.dll", "GlobalHandle"
.参数 wMem, 整数型
.DLL命令 OpenFileMapping, 整数型, "kernel32.dll", "OpenFileMappingA", , 打开一个现成的文件映射对象
.参数 dwDesiredAccess, 整数型, , 用API常数表示的对文件映射的访问方式
.参数 bInheritHandle, 整数型, , 返回值对与子进程的继承属性,常设为False;
.参数 lpName, 文本型, , 指定要打开的文件映射对象名称
.DLL命令 GlobalSize, 整数型, "kernel32.dll", "GlobalSize"
.参数 hMem, 整数型
.DLL命令 CopyMemory, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 字节集, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_s, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 文本型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_x, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 小数型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_sj, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 双精度小数型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_d, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 短整数型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_z, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 整数型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_c, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 长整数型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_r, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 日期时间型, 传址
.参数 cb, 整数型
.DLL命令 MoveMemory, 整数型, "kernel32.dll", "RtlMoveMemory", , ""
.参数 ptr, 整数型
.参数 struct, 整数型
.参数 cb, 整数型
.DLL命令 VirtualQuery, 整数型, "kernel32.dll", "VirtualQuery", , ""
.参数 lpAddress, 整数型, , "类型为通用型,请在调试时调整其类型"
.参数 lpBuffer, MEMORY_BASIC_INFORMATION, 传址, ""
.参数 dwLength, 整数型, , ""
调用的DLL命令:
.DLL命令 进程伪句柄_, 整数型, , "GetCurrentProcess", 公开, 获取当前进程的一个伪句柄 一般是-1
.DLL命令 打开令牌, 整数型, "advapi32.dll", "OpenProcessToken"
.参数 ProcessHandle, 整数型
.参数 DesiredAccess, 整数型
.参数 TokenHandle, 整数型, 传址
.DLL命令 恢复权限, 逻辑型, "advapi32.dll", "LookupPrivilegeValueA"
.参数 lpSystemName, 文本型
.参数 lpName, 文本型
.参数 lpLuid, ID, 传址
.DLL命令 获取令牌特权, 逻辑型, "advapi32.dll", "AdjustTokenPrivileges"
.参数 TokenHandle, 整数型
.参数 DisableAllPrivileges, 整数型
.参数 NewState, 令牌特权, 传址
.参数 BufferLength, 整数型
.参数 PreviousState, 令牌特权, 传址
.参数 ReturnLength, 整数型, 传址
.DLL命令 置进程优先级_, 逻辑型, , "SetPriorityClass", , 设置进程优先级别SetPriorityClass
.参数 进程句柄, 整数型, , 进程句柄hProcess
.参数 级别, 整数型, , 级别dwPriorityClass
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言两个文件内存中通讯源码,子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错...
易语言易模块管理器Include目录源码,CopyTo_CreateProcessDebugInfo,CopyTo_CreateThreadDebugInfo,CopyTo_ExitThreadDebugInfo,CopyTo_ExitProcessDebugInfo,CopyTo_LoadDllDebugInfo,CopyTo_UnloadDllDebugInfo,CopyTo_ExceptionDebugInfo,Copy...
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号...
初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...