VB6.0中二进制访问代码怎样写?保存时用结构体访问代码怎样写?

PctGL - 博客园
摘要: 1 Option Explicit 2 3 Private Declare Sub CopyMemory Lib &kernel32& Alias &RtlMoveMemory& (Destination As Any, Source As Any, Optional ByVal Length As Long = 4) 4 Private Declare Function CallWindowProc Lib &user32& Alias &CallWindowProcA& (ByVal lpPrevWndFunc
01:08 PctGL 阅读(559) 评论(3) &
摘要: NotifyBar.cls :1OptionExplicit23PrivateTypePOINTAPIs4xAsLong5yAsLong6EndType78PrivateTypeNOTIFYICONDATA9cbSizeAsLong10hwndAsLong11uIDAsLong12uFlagsAsLong13uCallbackMessageAsLong14hIconAsLong15szTipAsString*12816dwStateAsLong17dwStateMaskAsLong18szInfoAsString*25619uTimeoutAsLong20szInfoTitleAsString
03:10 PctGL 阅读(574) 评论(0) &
摘要: 条件: 1. 支持 WiFi 热点功能的 无线网卡。 2. 相关系统服务已启动 3. 共享 Internet 连接 需要启动的系统服务: 怎么查看自己的无线网卡是否支持虚拟 WIFI 热点: 共享 Internet 连接: WIFI 连接的 IP 地址问题: 需要手动设置的就一步, 如果你是用 ADSL 上网, 就按照下面方法实现共享连接: 开始菜单 & 连接到 & 打开网络和共享中心 & 更改适配器设置 & ADSL拨号连接属性 & 共享 & 把第 1 项, 第 3 项 全部勾选, 在下拉列表中选择被共享的 无线网络连接下面的压缩包中有完整的设置过程...
01:11 PctGL 阅读(162) 评论(0) &
摘要: 自然语法怎么识别好呢? 正在做 vb 的语法编译器,发现一个问题,一个简单的 赋值语句识别起来好麻烦···
19:09 PctGL 阅读(183) 评论(0) &
摘要: [代码]下载连接: /pctgl/ColorComBoBox.rar 实现方法简单的不得了。。。效果:
12:06 PctGL 阅读(363) 评论(0) &
摘要: 其实是前一篇那个无崩溃子类代码里面的东西, 因为这次要写的字节码太多了,我又不爱用文本转换的方法于是写了个小函数, 做了一些文本自动编辑,替换工作,实现了一个将机器码自动转换为Long 类型数组, 并提供机器码标志修改的功能. 先说使用: 1. 打开 OD ,选中自己想转换为vb代码的函数或代码段,然后点鼠标右键菜单 & 二进制 & 二进制复制 如图: 2. 打开 Opcodes Sa...
23:42 PctGL 阅读(549) 评论(1) &
摘要: 代码Code highlighting produced by Actipro CodeHighlighter (freeware)/--&1OptionExplicit2PrivateDeclareSubCopyMemoryLib"kernel32"Alias"RtlMoveMemory"(DestinationAsAny,Source...
22:54 PctGL 阅读(721) 评论(0) &
摘要: 剑者之剑 剑者为人,而剑为程式;常见剑无异同,而人大不同;有异者仗剑走天涯,所到之处无一不拜,然只仗剑着通晓其弊;异者聪慧,心望亲正之;某日,双剑拼杀斗技之时,异者默声视;但见,其一剑,花样百出,击之,打之,锤之,砸之,或火烧,或水沁,无所不用其极;异者大喜,谓之高人也,其剑技法如花,用剑之所长,剑锋所到之处几有不破;异者旁观,乃见剑异人时而冥,时而动,时而阅本;异者见此,脱声道,此剑必方外之人,...
21:46 PctGL 阅读(96) 评论(0) &
摘要: 一点点有益的更新: /pctgl/AdsManager.rar version: 12.03.17.0 更新了 AdsManager.dll 增加了对超时登录房间的检测;如果一个房间连续20秒还进不去的话,则从新进 另, GameClient.exe 貌似没有改好,有点问题,有时候半天进不去房间。。。 不知道是我网络问题还是程序的问题 压缩包中的源码公开,密码: sexandu123 重要更新:v 分卷压缩的两个文件...
05:54 PctGL 阅读(3075) 评论(17) &
摘要: Vasm ≈ Visual Masm 从09年年初下定决心写个 IDE 开始, 到现在先后写过3版,而且没有一次将全部功能连接起来测试的思来想去, 工程就这么放下了, 问题遇到了不少, 不过都被一一解决了, 唯一没有解决的问题, 也是致使工程迟迟无法顺利开工的原因在于,工程的结构设计有问题, 在工程的前期设计中, 由于没有充分考虑到工程的复杂性, 使得现在的工程结构设计上已经走入死胡同...
16:52 PctGL 阅读(556) 评论(3) &
摘要: [代码]插入&
注意, 这是本贴完成后增加的说明内容: N 多人看完我的这个获取类中函数地址的文章之后都去测试可行性,想得到地址后自己做屑什么,我不反对你的做法。 但我要强调一句,首先上面的代码中的 GetWndProcAddress 返回值只是数组 LinkProc 元素 0 的地址真正的你指定的函数地址,早已经被以下3行代码解析出来了:
mePtr=ObjPtr(Me)CopyMem...
11:59 PctGL 阅读(1283) 评论(7) &
摘要: 看此文的朋友们, 请在看完这篇文章后,继续看下一篇,地址如下,/pctgl/articles/1586841.html这是例子: /pctgl/iSubClass.rar上一篇文章发出来之后,没想到很多人都注意到了,而且也用到了但上次的代码还存有稍许遗憾就是不能进行子类化,这次我改了下,做了一个子类化专用函...
01:16 PctGL 阅读(852) 评论(1) &
摘要: sdk 编码过程,经常遇到一个问题,画图而且要让界面更漂亮,就要更注重,画图在win32 sdk 画图过程中一个比不可少的尺度标准, 矩形 RECT 结构今天把一些,以往的编码经验拿出来分享,希望感兴趣的朋友一起讨论下1. 矩形结构win32 sdk 中的矩形结构: vb: type Rect Left    as  long     左边界 Top    as  long     上边界 Rig...
18:14 PctGL 阅读(290) 评论(4) &
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 怎么想起来写这个东西?。。。。。
最近很多人都在研究怎么改造VB调用APi的方法,让VB运行的更快些,我在xx说过一次,关于这个的研究简直是在浪费时间。不以自己使用感觉说明,引述MSDN中的文章“VB调用AP...
17:01 PctGL 阅读(361) 评论(0) &
摘要: 跨进程共享数据,常用的方法是共享内存,消息交换等方式近日研究了一个以采用 DLL 共享节区方式达到目的的方法
以 M$ Link.exe 6.0 为基础测试了 Masm32,VB6 均达到预想效果,公布方法方便大家使用1. VB 编译的 PE 文件中的节区节区是 PE 文件储存数据的地方,段是编程时数据及代码等存储的空间,VB编程 根本就接触不到这些VB 编译的 PE 文件通...
17:00 PctGL 阅读(847) 评论(2) &
摘要: 字符树算法,一般常用来做统计英文字母在文本中出现的次数某日某论坛给某人粗略写了个,然后没事的时候自己又优化了一下,没想到优化后,效率非常高,采用优化编译,编译后看到核心算法处的代码VB的编译器做的非常好,P4 2.8c,512MB 100MB 文本耗时 1.7s 不知道,算不算是快的,但已经破了我的记录了... 演示代码:/pctgl/%E5%A4%...
16:59 PctGL 阅读(143) 评论(0) &
摘要: [又转来一篇好文章,专门讨论 Win32 的 4GB 物理内存的应用问题]
win2003 winxp win2k 4GB内存的访问问题启用物理地址扩展(PAE)X861.打开Windows资源管理器。2.在“工具”菜单上,单击“文件夹选项”。3.在“查看”选项卡上,单击“显示所有文件和文件夹...
16:59 PctGL 阅读(224) 评论(0) &
摘要: 经常写一些代码,虽然完整的程序没写过几个,但却经常写小函数。。。(总是没耐心。。) 函数也没少写了,但总是随着某个未完工程一起消失(下了好几次决心远离编程的。。。) 以后~~~ 不管咋地,先把觉得比较不错的小技巧和一些觉得比较经典的函数存到这里
不断更新ing....禁止 / 恢复 窗体移动 Des:设置一个顶级窗口是否可以由用户拖动菜单栏来移动窗口subclass 麻烦了...
16:58 PctGL 阅读(322) 评论(0) &
摘要: 标题好像讲座,所以我这里第1句话就先说,这只是我的个人经验总结,希望与大家共勉,如有不足敬请拍之。。1.异步的执行方式首先来说,对于异步我只能用个人理解来解释,因为我遍历 baidu,google 没找到关于异步的词解,就连在线中华词典中也没有关于异步的解释。。。个人理解异步,应以实际操作来表示,例如: 1.你正在打电话 》 2.与 A 聊的火热ing 4.不得已先暂停与 A 通话 7.返回和 A...
14:48 PctGL 阅读(760) 评论(0) &
摘要: 用 VB 实现多线程操作
比较稳定,此方法是从根本上解决 VB 对多线程支持的问题,但声明,这种方法有以下问题:1. 绝对不是真正解决了 VB 多线程的问题。2. 方法可靠性不佳,但还算稳定。目前不能调用的函数,过程,已知 Msgbox,Form.Show3. 虽然解决方法是从 VB 和多线程关系的根本的角度出发,但对 VB 实现多线程来说有点 亡羊补牢,畏时以晚。4. 任何...
14:47 PctGL 阅读(1743) 评论(1) &
摘要: 本来说想发个多线程的应用来着,没意思了。。。。
回过头来看以前写的那几个介绍多线程APi的文章也有偏颇。。。。 寒 。。。 -==============================-对于用 VB 做多线程,个人认为还是免了吧,真的是有点做无畏的强求,我研究VB实现多线程的时间不少了至今只得说一句,实在是太不方便了,究其原因个人认为还是因为他不是真正意义上的完全编译,在我...
14:44 PctGL 阅读(345) 评论(0) &
摘要: 今天碰到一个非常郁闷的事情...... 最近想用资源的方式在汇编下写个程序,但我的汇编编辑环境有些问题,对资源文件的配置有些BUG所以,在 VB6 下编辑了一些数据到资源文件中,首先碰到一个小问题就是用资源编辑器编辑好的版本信息资源无法在 VB6 下正常使用(程序无法编译).还有一个问题就是 XPMainFest,这个第24号资源总是显示出有问题,(实际是没问题的,但VB就是不让正常执行).......
14:38 PctGL 阅读(258) 评论(0) &
摘要: (3)Windows 多线程编程
开始我们的第3讲.... 实例讲解及应用一个完整,且很漂亮的线程类,拿出来写上注释Option ExplicitPrivate Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttribu...
14:36 PctGL 阅读(145) 评论(0) &
摘要: 看到了一篇好文章,关于字符编码。我是一直想看这方面的资料,找到了分享一下.谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念, 增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题: 问题一: 使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢? 我很早前就发现Unicode、Unicode bigendian和UTF-8编码的txt文件.
14:34 PctGL 阅读(2582) 评论(0) &
摘要: 多线程 APis 的参数。要进行多线程编程一样离不开对系统 APis 的调用,上面介绍了一些多线程编程的基本 APis,下面将让大家了解下,这些 APis 的参数,以便我们在进行多线程编程时能够轻而易举的使用他。 1.创建线程
Private Declare Function CreateThread Lib "kernel32" _(lpThreadAttributes A...
14:33 PctGL 阅读(91) 评论(0) &
摘要: Windows 多线程编程属于高级编程范围,因为涉及调用的 APis 众多,所以称之谓高级编程一点不为过。编写 Windows 多线程程序并不是一件多么复杂的事情,但目前还没有哪个编译器或调试环境能够完美的协助 Coders 方便的调试多线程代码,所以编写此类应用则稍显麻烦。一、什么是多线程 多线程很好理解,从宏观上举例说,世界上的每个国家都可看做一个进程,每个国家的每个人都可以看做一个线程,每个...
14:32 PctGL 阅读(205) 评论(0) &
摘要: Option ExplicitPrivate Const PM_REMOVE = &H1 ‘将截获的消息从消息队列移除Private Type Msg ‘消息内容结构体hWnd As LongMessage As LongwParam As LonglParam As Longtime As Longpt As Currency ‘原本为 PointAP...
14:30 PctGL 阅读(195) 评论(0) &
摘要: WM_PAINT Windows 窗口系统中一条重要的消息, 应用程序通过处理该消息实现在窗口上的绘制工作。 1.系统何时发送WM_PAINT消息?
系统会在多个不同的时机发送 WM_PAINT 消息:当第一次创建一个窗口时,当改变窗口的大小时,当把窗口从另一个窗口背后移出时,当最大化或最小化窗口时,等等,这些动作都是由 系统管理的,应用只是被动地接收该消息,在消息处理函数中进行绘制操作;大多数...
14:28 PctGL 阅读(505) 评论(0) &
14:39 PctGL 阅读(811) 评论(2) &
Copyright & PctGL
Powered by:
模板提供:在VB中,如何用二进制访问方式把文件中的内容读取到字符串中,代码如何写出,请指导,谢谢_百度知道
在VB中,如何用二进制访问方式把文件中的内容读取到字符串中,代码如何写出,请指导,谢谢
提问者采纳
读取非常讲究以二进制方式打开文件,与内容有关:Open “文件名” For Binary As #1有一问题需要注意,再定义好变量后读取数据,显示数据就得另想办法了,一次读取全部文件数据,但;如果文件内容是数据,你也可以定义一个与文件长度一样的BYTE类型数据变量, 那么你必需知道这些数据的储存方式。当然。如果文件内容是字符串,那么读取变量定义一个指定长度的字符串变量
提问者评价
其他类似问题
为您推荐:
二进制的相关知识
其他1条回答
鄙视答完不结贴的,都顶起来
你好,你给看看这个问题如何解决。如何把文件中的内容用二进制方式读取字符串中。谢谢
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁11:56 提问
请教一下,关于CFile写入TXT文件之后,对该TXT文件怎么用代码写入保护呢?
各位大神,您好! 请教一下,我用CFile创建了一个TXT的文件,里面存储了程序需要的多个同类型的结构体,可是这些信息都是保存在TXT文件中,是可以直接被修改的(直接找到该TXT文件,然后打开文件,就可以修改里面的内容了),但是我不想被别人修改,请问在代码中有什么办法可以实现吗灰常感谢大家~~
按赞数排序
很简单,对要写入的数据做一个Hash签名(比如MD5),写在文件中。
用户修改了数据,那么Hash就对不上了,你的程序判断下,就不让它运行。
修改txt为只读?你写txt文件里肯定能修改啊。
不想被修改,可能是无法做到的。
但可以做到被修改后,你的程序不使用被修改后的数据。使用增加校验数据的方法,就可以做到。
加密,不要用明文,不过这样防止不了不被修改,任何文件,用二进制打开,就可以随便修改
设置权限为只读,别人没法直接改了
其他相似问题
相关参考资料今天看啥 热点:
C++ 结构体 写文件 STF架构,stf架构
C 结构体 写文件 STF架构
STF架构原理
1 STF解析器
2 STF输出数据定义
3 STF数据结构定义
STF配置简介
1 整体介绍
2 公共配置
21 目录控制
22 字段控制
23 切换控制
3 数据转换配置
数据转换整体认识
dtfone参数配置
文件名配置
4 数据映射配置
gccSTF介绍
1 苦逼的序号
2 文件名按字段值分组
C++ 结构体 写文件 STF架构
用STF架构来解决C++结构体写文件问题,是一种提升开发效率和程序稳定性的有效解决方案。普通的C/C++对结构体写文件的方式就是直接将结构体对应的内存块写入文件中,最后生成的文本文件都是二进制的不可见文本. 这种方式更严重的问题是不能做到只将部分字段写入到文件中. 面对现实中复杂多变的需求, 当需求变更的时侯每次都得修改代码.传统写文件的方式很难满足丰富多变的应用.下面我们一起来分享STF架构原理以及相关配置说明。
STF架构原理
STF配置简介
gccSTF介绍
1. STF是什么?
STF是Sturct To File的简写,意为结构体到文件的转换,转换的过程和格式通过配置来控制。应用只需要将需要转换的结构体放入,然后配置转换的格式即可得到转换的文件。它主要解决C++中类、结构体写ascii码文件时因结构体不同而不断重复写代码的问题。让上层应用更专注于业务,而不必关心底层写文件的操作。提高代码的可读性,稳定性。
2. STF架构原理
在我们学习C++的时候都要对编译器了解,编译器的作用就是将所有的C++语法编译成汇编语言,然后连接成机器语言。C++编译器对语法结构和数据结构都笼统的编译成了机器语言,所以在运行程序中包含了结构体,逻辑语法,常量,全局变量等等。STF的实现原理就是将C++的逻辑语法和数据结构分开。然后再通过STF架构的语法解析器将这两者动态的组合起来,而动态将结构体输出到文件中。
STF架构写文件由STF解析器,输出数据定义,数据结构定义三部分组成。
2.1. STF解析器
STF解析器是STF架构中的核心实现,实现文件名的生成,字段的输出,文件的切换,统计日志信息等。它将输出数据定义和数据结构定义二者结合起来,实现一个真的结构体输出。
2.2. STF输出数据定义
输出数据定义给出了我们生成文件名的具体格式,文件的切换方式,输出字段的顺序个数。输出数据定义告诉STF解析器需要做什么和怎么做。
2.3. STF数据结构定义
数据结构定义是写文件的基础,里面包含了字段的个数,名称,长度,数据类型。STF解析器根据这些信息动态读取内存中对应字段的数据。数据结构定义由gccSTF程序编译头文件生成,一个STF架构程序只能加载一个STF数据结构定义文件。
3. STF配置简介
3.1. 整体介绍
如果是STF解析器是STF架构的灵魂,那么STF配置则是STF的实体,指导STF解析器完成写文件的每一步操作。STF配置由公共配置,数据转换配置,数据映射配置三部分组成;公共配置顾名思义对应于所有的数据转换配置都通用,在一般情况下只需要配置该部分的配置即可;数据转换配置为整个配置中的核心部分,定义了文件名的格式,写入字段的个数及顺序,指定写入字段的格式,以及对特定字段重新计算值,配置和代码的关联,结构体和文件的关联等;数据映射配置用于将一个待写入结构ID映射到多个不同的数据转换配置中,实现同一个结构体写入到多个不同的文件。整体如下:
memo="公共配置"&
memo="数据转换配置"&
memo="数据映射配置"&
3.2. 公共配置
本部分给出了所有数据转换配置的公共配置,避免多个数据转换配置中有相同部分而重复配置的情况。分别对数据生成过程中的目录,字段分隔符,空字段,以及数据文件的大小,超时时间做了控制。对应到配置文件中public节点部分。
dat="D:\STF\dat" ok="D:\STF\ok" memo="目录控制"/&
null="0" split="," linesplit="0x0A" memo="字段控制"/&
maxlen="" maxcnt="1000000" timeout="60" memo="切换控制"/&
3.2.1 目录控制
目录控制分别对数据处理得临时目录和最终数据生成目录做了定义。
dat: 临时数据生成的目录
ok: 数据生成目录
当文件中的数据条数达到最大或者文件大小达到最大或者文件超时,系统将临时目录中的数据移至到最终数据生成目录。系统在运行过程中临时目录中的文件不允许其他有对该目录数据进行操作的行为,如删除文件,向文件中写入数据,删除整个目录等。在STF架构启动时,如果发现配置中的目录不存在时会自动为系统创建目录。对于window版本的应用目录配置时所有的目录应配置为绝对路径。如:dat=”c:\tmp”,对于linux版本的应用目录可为相对路径,也可为绝对路径。
3.2.2. 字段控制
本部分配置控制了写入数据字段间的分割方式以及每条记录间的格式,同时也对系统中整形数据为空的值做了定义。
null: 空值定义,对应于整形数据而言,将部分值视为空值,在写入到文件中的数据该字段为空。配置时可填写十进制或十六进制数据。
split: 字段分割符,用于字段间填充。可为字符串,也可为十六进制整数。默认为 ”,”
linesplit: 记录分隔符,也为行分隔符,可为字符串,也可为十六进制整数。默认为 “\n”字段分隔符和行分隔符的最大长度为9个字符。配置样例如下:
null="-1" split="," linesplit="\n" memo="字段控制"/&
null="0xFFFFFFFFFFFFFFFF" split="0x2c" linesplit="0x0d" memo="字段控制"/&
3.2.3. 切换控制
文件控制对输出文件大小,记录条数以及超时时间分别控制,当其中任何一个条件满足时,生成的文件将从dat目录移植到ok目录。
maxlen: 控制文件输出最大大小,单位字节。
maxcnt: 控制文件输出最大记录数,单位条。
timeout: 控制文件超时时间,单位秒,超时时间最小不小于60秒。
3.3. 数据转换配置
数据转换整体认识
memo="数据转换配置"&
id="标示" name="类名,结构体名" memo=""&
memo="文件名配置"&
memo="记录配置"&
dtf数据转换节点由多个dtfone配置项构成,每个dtfone配置间相互独立,不存在任何联系。每个dtfone都包含filename文件名项和record记录项。分别对文件名的规则和文件内容作了详细的指定。生成的目标数据即受这两项配置影响。
id="2" name="CPersonGirl" memo=""&
text="girl_" /&
format="YYYYMMDDHHMISS" memo=""/&
text=".dat" /&
name="szName"/&
name="uiBirthday" convert="date" /&
name="szSex"/&
name="uiYW"/&
name="uiXW"/&
name="uiDW"/&
name="work.uiType"/&
name="work.szName"/&
name="work.szWorkPhone"/&
dtfone参数配置
dtfone配置项共计有两个参数,name指定了带写入数据的结构体名或者类名,该项严格区分大小写,如果名称配置错误,系统将无法启动。id指定了待写的结构体编号,这个编号可以任意指定,用于区分不同的类名或者结构体名。id值可以填十进制数字也可填十六进制数字。在接口函数中需要匹配这个值对应的结构体。xml样例配置见3.31样例配置,一下为C++结构调用的对应代码。
ISTF::GetInstance()-&OnStruct(&pGirl,sizeof(pGirl),2);
文件名配置
filename项定义目标文件的文件名生成的规则,目前给出了两个配置项,一个为fix固定名和sysdate系统时间格式。这两个配置项任意配置其中一个或者多个。生成的文件名按配置的顺序组合而成。
fix: 为固定文件名部分,在text参数中指定固定名如:text=美好生活”。目前仅支持GBK编码的汉字。
sysdate: 指定文件名带时间的部分, 配置项中format参数指定了时间的格式。Format时间参数格式如下:
01,02,03,…,10,11,12
01,02,03…30,31
00,01,02…22,23
00,01,02…58,59
00,01,02…58,59
例如:format=”yyyy-mm-dd hh:mi:ss.ff03_xxx”
输出结果为: 17:52:21.023_xxx
文件名配置样例:
text="girl_" /&
format="YYYYMMDDHHMISS" memo=""/&
text=".dat" /&
name="szName"/&
name="uiBirthday" convert="date" /&
name="szSex"/&
name="uiYW"/&
name="uiXW"/&
name="uiDW"/&
name="work.uiType"/&
name="work.szName"/&
name="work.szWorkPhone"/&
如上图所示字段配置部分相对比较简单,只需要将要写入文件的字段名配置在field中即可,唯一需要注意的是在遇到时间字段的时候配置convert项将时间转换成待写入的时间格式。用fmt指定时间参数格式。时间参数格说明见3.3.3节中sysdate时间参数。
记录配置中存在一种特殊情况就是,在输出结果中需要对某几个字段进行算术运算,然后再将运算的结果输出,这个时候配置如下项即可完成这个功能。
exp="uiYW+uiDW+uiXW"/&
3.4. 数据映射配置
数据映射愿意为将一个结构体转换成另一个结构体。这种情况出现时为类继承。如类CA继承于CBase,类CB也继承于CBase,这个时候想将CB,CA共有的部分CBase写入到同一个文件中。这个时候需要将CBase在dtf中配置一个dtfone项。然后再将CA和CB对应的ID映射到CBase对应的id即可。
4. gccSTF介绍
STF架构中的数据结构定义由gccSTF编译待写结构的头文件生成,gccSTF运行参数如下:
gccSTF.exe I::o:p:f:D::s:
头文件路径
编译后的目标文件,默认 stf.obj
结构体字节对齐,默认 8
多个待编译文件,如果有多个文件 -f 文件1 -f 文件2
控制编译文件中的宏
跳过过头文件,将不会被编译
.\gccSTF.exe -f my_test_struct.h
5. 经典案例
本部分将列举苦逼的序号,字段分组两个典型的案例来说明STF架构解决结构体写文件的灵活性和通用性。
5.1. 苦逼的序号
有一次隔壁小王给我说, 他们公司有一需求,要求文件名中的时间每10分钟切换,每个文件的大小不能操作20MB,在这10分钟内如果有多个文件产生则在文件名后面加序号.直到下一个10分钟到来序号重新开始计数. 这么变态的需求谁能想出来!!!!
小王可是一筹莫展啊.面对变更的需求再一次投入到代码的修改中.
STF解决苦逼的序号,只需要一步配置即可。
id="3" name="CPerson" memo=""&
format="苦逼的序号_YYYYMMDDHHMI" interval="600" memo=""/&
format="_%03d.dat" start="1" interval="600"/&
name="uiBirthday" convert="date" /&
name="szSex"/&
name="szName"/&
启动程序查看数据目录生成的文件名:
苦逼的序号就这么被搞定了.也太容易了吧.这有点想是在做梦.可眼前的结果想不佩服都不行。
5.2 文件名按字段值分组
现实中的需求总是多变的,经常会遇到输出的文件按某个字段或者某几个字段进行分组,而且这些字段分组的顺序随时可能调整。有时也会遇到结构体中嵌套结构体,还有类继承输出基类信息又怎么办?
看看STF架构如何解决这两个问题。配置如下:
id="2" name="CPersonGirl" memo=""&
text="group_girl_" /&
format="%d" mod="3" name="work.uiType"/&
format="_YYYYMMDDHHMISS" memo=""/&
text=".dat" /&
name="szSex"/&
name="uiYW"/&
name="uiXW"/&
name="uiDW"/&
name="work.uiType"/&
name="work.szName"/&
name="szName"/&
name="uiBirthday" convert="date" /&
name="work.szWorkPhone"/&
启动程序查看输出文件:
我们在看看文件内容是否正确:
上面演示所用的代码及测试程序,已上传至CSDN资源中,如需要连接如下地址。
http://download.csdn.net/detail/he_goodluck/8680597
当一个coder不易,当一个专研技术的coder更不易,要是你觉得STF架构者能帮你解决问题或者是一个不错的创意请你帮忙分享,让更多的人不再写重复的代码。同时也不要吝啬的你好评!
谢谢!!!
相关搜索:
相关阅读:
相关频道:
Android教程最近更新

我要回帖

更多关于 vb6.0访问sql2008 的文章

 

随机推荐