想向foxpro的文件写入记录,不用odbc,可以吗? rt用来维护一些旧的程序... ... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 网上搜wry.dll文件(实际上就是dbf文件)格式,下文为转载:我分析了这个文件的格式,目前如下结论:格式如下:A。文件头,共8字节B。若干条记录的结束地址+国家和区域C。按照从小到大排列的若干条起始地址+结束地址偏移,定长,7字节D。所有的IP都是用4字节整数记录的,并且遵照Intel次序,高位在后,低位在前。E。所有偏移量都是绝对偏移,就是从文件最开头计算。F。除了文件头用了两个4字节偏移,其余偏移量都用3字节。G。所有的偏移量也是低位在前,高位在后H。采用了一些字符串压缩技术1。文件头,共8字节FirstStartIpOffset:4 第一个起始IP的绝对偏移LastStartIpOffset:4 最后一个起始IP的绝对偏移2。起始地址+结束地址偏移记录区每条记录7字节,按照起始地址从小到大排列StartIp:4 起始地址,整数形式的IPEndIpOffset:3 结束地址绝对偏移3。结束地址+国家+区域记录区EndIP:4国家+区域记录:不定长4。国家+区域记录,有几种形式4.1。国家字符串,以 0x0 结束区域字符串,以 0x0 结束4.2。Flag:1 标识取值: 0x1,后面没有Local记录 0x2,后面还有Local记录sCountryOffset:3 实际的字符串要去这个偏移位置去找LocalRec:不定长,可选 根据Flag取值而定。这个记录也类似Country,可能采用压缩4.3 LocalRec结构一flag:1 还不是十分了解这个flag含义,取值 0x1 or 0x2sLocalOffset:34.4 LocalRec结构二sLocal:不定长 普通的C风格字符串注意:sCountryOffset指向的位置可能依然是4.2格式的,不知道为什么这样设计。Flag取0x1时,sCountryOffset指向的位置可能是Flag为0x2,这时,LocalRec也在这里寻找。现在不明白当记录Local的位置遇到0x2的标志意味着什么。在qqwry.dat中,似乎存在一些错误。个别的记录Local会被写为:0x2,0x0,0x0,0x0 根据规则,应该到文件最开头去寻找,可是,文件最开头显然不是记录这些的。愿意跟我探讨,请到我的论坛http://strongc.51.net/d2x/bbs/ 求救,CString赋值的问题 pDC->TextOut 关于PlaySound()函数播放声音的问题 MFC下怎么获取系统时间? 动态创建属性页CPropertySheet的问题 大家帮帮忙吧! 熟悉assert()的高人进来帮忙说 CAsyncSocket问题 如何判断操作系统是32位还是16位的? 很简单的,进来看看吧 DirectShow下帧图像捕捉的问题 有没有类似于 Picture Control 的控件,可以放 GIF 图片的,谢谢
B。若干条记录的结束地址+国家和区域
C。按照从小到大排列的若干条起始地址+结束地址偏移,定长,7字节
D。所有的IP都是用4字节整数记录的,并且遵照Intel次序,高位在后,低位在前。
E。所有偏移量都是绝对偏移,就是从文件最开头计算。
F。除了文件头用了两个4字节偏移,其余偏移量都用3字节。
G。所有的偏移量也是低位在前,高位在后
H。采用了一些字符串压缩技术1。文件头,共8字节
FirstStartIpOffset:4 第一个起始IP的绝对偏移
LastStartIpOffset:4 最后一个起始IP的绝对偏移2。起始地址+结束地址偏移记录区
每条记录7字节,按照起始地址从小到大排列StartIp:4 起始地址,整数形式的IP
EndIpOffset:3 结束地址绝对偏移3。结束地址+国家+区域记录区EndIP:4
国家+区域记录:不定长4。国家+区域记录,有几种形式
4.1。
国家字符串,以 0x0 结束
区域字符串,以 0x0 结束4.2。
Flag:1 标识取值: 0x1,后面没有Local记录
0x2,后面还有Local记录
sCountryOffset:3 实际的字符串要去这个偏移位置去找
LocalRec:不定长,可选 根据Flag取值而定。这个记录也类似Country,可能采用压缩4.3 LocalRec结构一
flag:1 还不是十分了解这个flag含义,取值 0x1 or 0x2
sLocalOffset:34.4 LocalRec结构二
sLocal:不定长 普通的C风格字符串注意:sCountryOffset指向的位置可能依然是4.2格式的,不知道为什么这样设计。
Flag取0x1时,sCountryOffset指向的位置可能是Flag为0x2,这时,LocalRec也在这里寻找。现在不明白当记录Local的位置遇到0x2的标志意味着什么。在qqwry.dat中,似乎存在一些错误。
个别的记录Local会被写为:
0x2,0x0,0x0,0x0
根据规则,应该到文件最开头去寻找,可是,文件最开头显然不是记录这些的。愿意跟我探讨,请到我的论坛
http://strongc.51.net/d2x/bbs/