像追捕那样的软件,搜索文本一般用什么算法?(100分)

  • 主题发起人 主题发起人 superplayboy
  • 开始时间 开始时间
S

superplayboy

Unregistered / Unconfirmed
GUEST, unregistred user!
那个wry.dll有3M那么大,它是怎么搜索那些文本数据来取得某个IP对应的IP段的?
希望配合源码说明一下,由于我是新手,没什么钱,还得留点钱问别的东西,希望
大侠们不要嫌弃。

我看过大富翁里有一个用嵌入汇编写的比世界上最快的查找替换更快的。。。。
看不懂,最XX的是,我不知道怎么利用它来搜索文件里的数据。我是不是很菜?
没办法,刚学……
 
其实要用数据库的化比他快多了
 
那是个数据库吧?直接用 SQL 语句 Select,自己不用了解实现的。

至于你所说的那个函数,当 Pos 函数用就是了:
位置 := Pos(要找的字符串, 文本);
如:
var
s: TStringList;
p: Integer;
begin
s := TStringList.Create;
s.LoadFromFile('c:/abc.txt'); // 装入文件
p := Pos('hello', s.Text); // 在文件中查找 'hello' 字符串
// 用那个快速函数就是这样:
// p := FastPos(s.Text, 'hello', Length(s.Text), Length('hello'), 1);
if p > 0 then
ShowMessage('找到 hello 在' + IntToStr(p));
s.Free;
end;
 
to 小黄鱼:
用数据库的话文件会比较大,而且最麻烦的是,98的用户如果没装OFFICE,要加装ADO驱动
这样打包之后文件就更大了。
to beta
追捕里的wry.dll不是数据库,你用UEDIT把它打开就发现它实际是一个文本文件
那个函数的用法我在测试
 
追捕里的wry.dll不是一个文本文件,是一个vfoxpro的dbf文件
你把他改名为wry.dbf用vfoxpro就可以打开了

字段名 类型 宽度
1 STARTIP 字符型 17
2 ENDIP 字符型 17
3 COUNTRY 字符型 16
4 LOCAL 字符型 54
5 THANK 字符型 23
 
QuickSilver:使用FOXPRO数据库,在98下使用就不用装数据驱动了?
 
追捕: 1.58
wry.dll 属dbf文件
用delphi编写 ,用dbf控件读取dbf 文件,程序运行不需要装bde
在98下也不用装数据驱动

 
beta,我用那个函数查找一个自己建立的文本文件,没问题,可以使用,但是当用
s.LoadFromFile("wry.dll") 的时候 len(s.text)只有8,似乎S并没有把WRY.DLL这个文
件完全读进来,怎么办?
 
用文件隐射,我有类似的DELPHI代码
 
张无忌,可以把代码发给我吗? tmpcn@21cn.com
 
TStringList 只适合处理文本文件,wry.dll 是数据库属于二进制文件不能用这个方法
如果你想操作追捕的数据库,直接用一个 TQuery 联接到数据库进行查询方法更简单。
 
追捕是用的Halcyon+DBF,我问过冯志宏
 
多人接受答案了。
 
后退
顶部