您的位置:首页网络冲浪网络技术 → 用delphi实现读取foxmail的地址。

用delphi实现读取foxmail的地址。

时间:2004/10/8 16:46:00来源:本站整理作者:蓝点我要评论(0)

    //今日读了各位仁兄之文章,深感黑道光荣,以下是狗兄我自写代码在d6上实现,也就不加赘述,各位参考着看代码吧。不过,在遍历ind文件时好像还有问题,请各位兄兄斧正!谢! unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Button2: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public procedure FindFiles(StartDir: string); procedure getemail(filestr:string); { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var headbuf:array[0..$41] of char; recbuf:array[0..$b1] of char; name:array[0..$21] of char; email:array[0..$41] of char; f:file; i:integer; begin AssignFile(F,ExtractFilePath(application.ExeName)+'address.ind'); // f:=tfilestream.Create(ExtractFilePath(application.ExeName)+'address.ind',fmOpenReadWrite); reset(f,1); seek(f,$40); while not eof(f) do begin for i :=0 to $21 do name[i]:=char(0); for i:=0 to $41 do email[i]:=char(0); //BlockRead(FromF, Buf, SizeOf(Buf), NumRead); Blockread(f,recbuf,$b0); if recbuf[$4]='1' then continue; if recbuf[$11]='1' then continue; for i:=0 to ord(recbuf[$21]) do begin name[i]:=recbuf[i+$13]; end; for i:=0 to ord(recbuf[$33]) do email[i]:=recbuf[i+$34]; memo1.Lines.Add(name); memo1.Lines.Add('********************'); memo1.Lines.Add(email); end; closefile(f); end; procedure TForm1.FindFiles(StartDir: string); var SR: TSearchRec; //用来储存返回的文件的一些数据 IsFound: Boolean;//做为一个标志 begin IsFound :=FindFirst(StartDir+'*.ind', faAnyFile-faDirectory, SR) = 0; //在startdir里面查找htm文件 while IsFound do begin //如果找到htm文件 // GetEmailAddress(startdir+sr.Name); getemail(startdir+sr.Name); //这里调用我们自己定义的函数,传递的参数是startdir+sr.name也就是该文件的绝对路径。 //注意,这里的函数 GetEmailAddress我们等一下再来描述 IsFound := FindNext(SR) = 0; //继续查找htm文件,只到标志isfound为false end; FindClose(SR); IsFound := FindFirst(StartDir+'*.*', faAnyFile, SR) = 0; //现在是查找所有的文件 while IsFound do begin if ((SR.Attr and faDirectory) <> 0) and(SR.Name[1] <> '.') then findfiles(startdir+sr.Name+'\'); //如果该文件是目录,并且不是"."或者"..",那么就在该目录里继续查找,也就是在这里递归了。 IsFound := FindNext(SR) = 0; end; FindClose(SR); end; procedure TForm1.FormCreate(Sender: TObject); begin end; procedure TForm1.FormDestroy(Sender: TObject); begin end; procedure TForm1.getemail(filestr: string); var headbuf:array[0..$41] of char; recbuf:array[0..$b1] of char; name:array[0..$21] of char; email:array[0..$41] of char; f:file; i:integer; begin AssignFile(F,filestr); reset(f,1); seek(f,$40); while not eof(f) do begin for i :=0 to $21 do name[i]:=char(0); for i:=0 to $41 do email[i]:=char(0); //BlockRead(FromF, Buf, SizeOf(Buf), NumRead); Blockread(f,recbuf,$b0); if recbuf[$4]='1' then continue; if recbuf[$11]='1' then continue; for i:=0 to ord(recbuf[$21]) do begin name[i]:=recbuf[i+$13]; end; for i:=0 to ord(recbuf[$33]) do email[i]:=recbuf[i+$34]; memo1.Lines.Add(name); memo1.Lines.Add('********************'); memo1.Lines.Add(email); end; closefile(f); end; procedure TForm1.Button2Click(Sender: TObject); begin findfiles('D:\Foxmail\'); end; end.

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 小米路由器设置教程附共享有线路由后再接无TP-link无线路由器设置D-Link DI-524M路由器

最新文章 百度网盘解除黑名单摆百度不收录怎么办 百度 10款免费开源图表插件推荐ssid隐藏了怎么办?隐藏SSID的无线网络如何OneDNS设置教程两块网卡访问不同网络案例分享

人气排行 宽带连接图标不见了怎么办 宽带连接图标怎么dell 服务器开机总是提示按F1才能进系统解决dns是什么?dns怎么设置?buffalo无线路由器设置图文教程哪种WIFI无线各种加密方式更安全?ADSL宽带连接错误(720)及解决方法双网卡同时上内外网设置教程公司网络综合布线图解