白天想晚上,晚上想白天

作者: 傻猫    分类: 爱生活     发布时间: 05-31 23:04    浏览次数: 3952     无留言

上班时候好想回家睡觉,所以是白天想晚上;回到家后又睡不着,所以是晚上想白天。

可能是人长大了吧,想的事情多了,每天都想造子弹,为了生活,为了房子,所以要努力工作,努力赚钱。现实就是这样,有钱了什么事都办,买房找老婆都不在话下,如果没钱的话,恐怕没有人愿意跟你过,没有经济基础说什么都是假的。趁年轻多学点东西,多赚钱钱才是第一位,事业才是第一位,事业成功了,爱情自然就丰收了,不是吗?

在delphi中用indy实现FTP上传 下载的例子

作者: 傻猫    分类: 搞软件     发布时间: 05-31 15:12    浏览次数: 13591     1 条留言

以前总认为FTP程序实现很困难,但后来在网上查看了相关的帖子后发现原来用delphi实现FTP上传与下载竟如此容易,确实对我鼓舞很大。
         由于delphi本身自带了indy控件,因此用这些控件实现网络编程即快又容易。尽管如此,我还是极大地鼓励自己查看FTP底层是如何实现的,但就目前而言,indy控件还是一个非常不错的选择。
       针对indy的强大,我还是决定将这段代码帖出来,主要是方便自己日后复习、查询。

Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdFTP;

type
  TForm1 = class(TForm)
    IdFTP1: TIdFTP;
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    Button2: TButton;
    Label1: TLabel;
    Button3: TButton;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
      const AStatusText: String);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses IdFTPList, IdFTPCommon;
{$R *.dfm}
{
 本程序是一个ftp  demo程序,我用windows信息服务在本机建立了一个ftp服务,
 本机IP:192.168.10.99
 用户名:cc
 密码:1
}


procedure TForm1.Button1Click(Sender: TObject);
var
  tr : Tstrings;
begin  //连接
  tr := TStringlist.Create;
  IdFTP1.Host := '192.168.10.99'; //FTP服务器地址
  IdFTP1.Username := 'cc'; //FTP服务器用户名
  IdFTP1.Password := '1'; //FTP服务器密码

  IdFTP1.Connect();  //连接到ftp

  Edit1.Text := IdFTP1.RetrieveCurrentDir;//得到初始目录
  IdFTP1.ChangeDir('client'); //进入到client子目录
  //IdFTP1.ChangeDir('..'); //回到上一级目录
  IdFTP1.List(tr); //得到client目录下所有文件列表
  Memo1.Lines.Assign(tr);
  tr.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  tt :TIdFTPListItems;
  t : TIdFTPListItem;
  i : integer;
  tfname : String;
begin  //下载
  Label1.Caption := IdFTP1.DirectoryListing.Items[0].FileName;
  IdFTP1.TransferType := ftBinary; //指定为二进制文件  或文本文件ftASCII
  for i:=0 to IdFTP1.DirectoryListing.Count-1 do
  begin
    tt := IdFTP1.DirectoryListing; //得到当前目录下文件及目录列表
    t := tt.Items[i]; //得到一个文件相关信息
    Label1.Caption :=t.Text;  //取出一个文件信息内容
    tfname := t.FileName;
    showmessage(t.OwnerName+'  '+t.GroupName+'  '+t.FileName+'   '+t.LinkedItemName);
    if IdFTP1.DirectoryListing.Items[i].ItemType = ditFile then //如果是文件
    begin
      IdFTP1.Get(tfname,'d:\FTPtest\'+tfname,True,True); //下载到本地,并为覆盖,且支持断点续传
    end;
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  fi : string;
begin  //上传
  if OpenDialog1.Execute then
  begin
     fi := OpenDialog1.FileName;
    IdFTP1.Put('f:\测试文档样本.rar','测试文档样本.rar');//上传,
  end;
end;

procedure TForm1.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
  const AStatusText: String);
begin
  {case  AStatus of
    hsResolving  : showmessage('hsResolving');
    hsConnecting: showmessage('hsConnecting');
    hsConnected: showmessage('hsConnected');
    hsDisconnecting: showmessage('hsDisconnecting');
    hsDisconnected: showmessage('hsDisconnected');
    hsStatusText: showmessage('hsStatusText'); 
    ftpTransfer: showmessage('文件传送完毕。');
    ftpReady: showmessage('准备传送文件....');
    ftpAborted: showmessage('传送失败');
  end;         }

  //showmessage(AStatusText);
end;

end.
来源: http://blog.csdn.net/qqp_528/archive/2006/06/09/783149.aspx

如何用idFTP遍历整个目录—下载、删除

作者: 傻猫    分类: 搞软件     发布时间: 05-31 14:28    浏览次数: 7508     1 条留言

下面的程序是用delphi7.0 + idFTP实现的。可能还会有bug,不过希望能给需要他的人带来一点点帮助和提示!,程序中只有下载与删除的代码,至于上传的code自己写吧,稍微思考一下就可以实现。

unit Unit1;

 

interface

 

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,IdFTPList,

 IdTCPClient, IdFTP ;

 

type

 TForm1 = class(TForm)

   Btt_DownLoadDir: TButton;

   IdFTP1: TIdFTP;

   Btt_DeleteDir: TButton;

   Label1: TLabel;

   lb_num: TLabel; //处理文件个数提示。

   procedure Btt_DownLoadDirClick(Sender: TObject);

   procedure Btt_DeleteDirClick(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

 

{$R *.dfm}

 

 

 

 

 

 

{下载整个目录,并遍历所有子目录

  首先ChangeDir(Root)到根目录

 然后创建本地目录+ RemoteDir

 然后用list得到所有目录名

 循环判断,进入RemoteDir目录内部

 如果是目录继续第归。否则get该文件到本地目录,当get完所有文件后返回上一级目录

 List再取得信息,继续循环

 }

 

procedure FTP_DownloadDir(var idFTP : TIdFtp;RemoteDir,LocalDir : string);

label Files ;

var

  i,DirCount : integer;

begin

 if not DirectoryExists(LocalDir + RemoteDir) then

   ForceDirectories(LocalDir + RemoteDir);

 idFTP.ChangeDir(RemoteDir);

 idFTP.List(nil);

 DirCount := idFTP.DirectoryListing.Count ;

 if DirCount = 0 then

 begin

   idFTP.ChangeDirUp;

   idFTP.List(nil);

 end;

 for i := 0 to DirCount - 1 do

 begin

   if DirCount <> idFTP.DirectoryListing.Count then

   begin

     repeat

       idFTP.ChangeDirUp;

       idFTP.List(nil);

     until DirCount = idFTP.DirectoryListing.Count ;

   end;

   if idFTP.DirectoryListing[i].ItemType = ditDirectory then

     FTP_DownloadDir(idFTP,idFTP.DirectoryListing[i].FileName,LocalDir + RemoteDir + '\')

   else begin

     idFTP.Get(idFTP.DirectoryListing[i].FileName,LocalDir + RemoteDir + '\' +

       idFTP.DirectoryListing[i].FileName,true);

     Form1.lb_num.Caption := IntToStr(StrToInt(Form1.lb_num.Caption) + 1);

     Form1.lb_num.Update;

     if i = DirCount - 1 then

     begin

       idFTP.ChangeDirUp;

       idFTP.List(nil);

     end;

   end;

 end;

end;

 

{删除整个ftp目录,包括下面的文件,

 RootDir =要删除的根目录,一般情况下RemoteDirRootDir相等}

procedure FTP_DeleteAllFiles(var idFTP : TIdFtp;RemoteDir,RootDir : string);

label Files;

var

 i,DirCount : integer;

 Temp : string;

begin

 idFTP.ChangeDir(RemoteDir);

 if Pos(RootDir,idFTP.RetrieveCurrentDir) = 0 then Exit;

Files :

 idFTP.List(nil);

 DirCount := idFTP.DirectoryListing.Count ;

 while DirCount = 0 do

 begin

   Temp := idFTP.RetrieveCurrentDir;

   idFTP.ChangeDirUp;

   idFTP.RemoveDir(Temp);

   idFTP.List(nil);

   DirCount := idFTP.DirectoryListing.Count ;

   for i := 0 to DirCount - 1 do

   if idFTP.DirectoryListing[i].FileName = RootDir then Exit;

 end;

 for i := 0 to DirCount - 1 do

 begin

   if Pos(RootDir,idFTP.RetrieveCurrentDir) = 0 then Break ;

   if idFTP.DirectoryListing[i].ItemType = ditDirectory then

   begin

     FTP_DeleteAllFiles(idFTP,idFTP.DirectoryListing[i].FileName,RootDir);

   end else begin

     idFTP.Delete(idFTP.DirectoryListing[i].FileName);

     Form1.lb_num.Caption := IntToStr(StrToInt(Form1.lb_num.Caption) + 1);

     Form1.lb_num.Update;

     goto Files ;

   end;

 end;

end;

 

procedure TForm1.Btt_DownLoadDirClick(Sender: TObject);

begin

 IdFTP1.Connect(true,-1);

 if IdFTP1.Connected then

 begin

   IdFTP1.ChangeDir('bigimage');

   FTP_DownloadDir(IdFTP1,'1002.1002.1002','g:\ftpdir\');

 end;

 IdFTP1.Disconnect ;

end;

 

procedure TForm1.Btt_DeleteDirClick(Sender: TObject);

begin

 IdFTP1.Connect(true,-1);

 if IdFTP1.Connected then

 begin

   IdFTP1.ChangeDir('bigimage');

   FTP_DeleteAllFiles(IdFTP1,'1002.1002.1002','1002.1002.1002');

 end;

 IdFTP1.Disconnect ;

end;

 

end.

 

 

运行环境win2000 advanced server + delphi7.0 + iis6.0

来源:http://blog.csdn.net/smandhgx/archive/2004/04/07/15221.aspx

我开始吸毒了

作者: 傻猫    分类: 爱生活     发布时间: 05-31 13:13    浏览次数: 3943     无留言

突然发现最近烟瘾比较大,刚买的一包中南海,两天就没了,也不知道怎么了,最近经常失眠,睡不着,好像整个人的精神好了很多,以前至少要睡觉6-7个以上,现在每个晚上最多睡3-4小时,早上很早不知不觉就醒了,一旦醒来以后就很难入睡,坐下来时,看到熟悉的电脑屏幕,每每情不自禁地点燃一支又一支香烟,看到盒子里的烟头发现,我的烟瘾确实有进步了。

25岁生日快乐

作者: 傻猫    分类: 爱生活     发布时间: 05-25 22:46    浏览次数: 3848     无留言

公司给偶买的生日蛋糕,谢谢,谢谢刘总,谢谢李总,谢谢雷总,谢谢CCTV,谢谢MTV。。。。。
dsc02079.jpg

dsc02080.jpg

dsc02081.jpg

dsc02082.jpg

dsc02083.jpg

《星际争霸2》 官方截图

作者: 傻猫    分类: 爱生活     发布时间: 05-24 18:07    浏览次数: 3558     无留言

这是来至暴雪官方的游戏截图,界面相当华丽,一起来看看吧。
ss1[1].jpg

ss2[1].jpg

ss3[1].jpg

ss4[1].jpg

ss5[1].jpg

ss6[1].jpg

ss7[1].jpg

ss8[1].jpg

ss9[1].jpg

ss10[1].jpg

我要抱金砖??

作者: 傻猫    分类: 爱生活     发布时间: 05-24 07:35    浏览次数: 7783     6 条留言

展出那天最郁闷的人是蒋哥,由于断电把打印机芯片给烧烂了,在活动现场做了不少的个性杯(就是把照片印在杯子上),前来看热闹的人也多啊,整个活动现场我们星空数码成了主角,对面峨眉山的朋友那就相当地清静了,哈哈。。。

那个MM要做一个杯子,由于当时打印机出问题了,所以没有做好,本来把照片已经打印出来了,两张一起打的,还有一个老妞,那老妞看照片不是很好看,结果连人家的照片一起拿走了,真是郁闷。。。

星期一下班后,我把杯子给MM(后来才知道是JJ)带过去,晚上一起在“源记串串”吃东西,可能是不熟的原因吧,她的话很少,感觉很忧郁一样,而我呢,话相当多,像滔滔江水一样,我什么时候成唱戏的了?:)

吃完东西,本来想去新华公园坐坐,结果门口守车的早下班了,无语了。。。结果就顺着街边走走,送她到小区门口后,我就直接回来了,刚到楼下就开始下雨,时间还把握的相当准哦。。嘿嘿。。

第三次见面时,大家相对来说熟悉了不少,好像不再是陌生人,所以聊的话题也比较多,她的问题太多,而我讲自己的故事也很厉害,可以从几年前说到现在,真的是写本书远远有余,她的名字不错,叫海鸥,让我突然想起一首歌“问一声那彩云,问一声那海鸥”。哈哈。。得知她比偶大后,我真的有点惊讶,那天看她真的感觉比我小啊,所以现在啊,女人年龄和外表出入相当大啊,不拿出牛顿三大定律,你很难判断。

女大一,抱金鸡;女大二,金满罐;女大三,抱金砖;女大四,福寿至;女大五,赛老母;女大六,乐不够;女大七,笑嘻嘻; 女大八,准发家; 女大九,样样有; 女大十,样样值。

俗话说“女大三抱金砖”,对于这句话,我在百度找到以下解释:女大三,抱金砖是实际生活写照,女人大一点,会照顾人,懂事,能为你省心省钱,相当于抱个大金砖。

金砖人人都喜欢啊,更何况是大金砖呢,天降金砖砸我? 我是接还是丢呢?

 

我的爱其实很简单

作者: 傻猫    分类: 爱生活     发布时间: 05-22 05:17    浏览次数: 5826     1 条留言

我的爱其实很简单,一个爱我,可以鼓励我,关心我,让我每天都能感受你的爱就OK。

我像一艘前进中的轮船,在乘风破浪的航行中,最容易失去方向,我需要一个拥有指南针的人,她可以时常地给我提供建议,当我偏离航道的时候,她可以及时的提醒我,当我懈怠的时候,她可以给我鼓励,让我振作。

我更像一架战斗机,只要你肯给我一点动力,我就可以飞的更快,更高,我喜欢飞翔的感觉,我喜欢冲刺的感觉,你的鼓励就是我无穷无尽的能量,我渴望飞翔,我更渴望得到无尽的能量。

在我的世界里,爱的空间很小,只有一个位置,只能容下一个人,当一个人坐上这个位置的时候,任何人都别想挤进来,这就是我的爱,一份真诚而又简单的爱。

父母又开始在催我了

作者: 傻猫    分类: 爱生活     发布时间: 05-20 07:36    浏览次数: 6479     2 条留言

昨天给家里打电话,被爸妈一个劲地问“好久成家啊?25岁了哦”。是啊,再过几天就满25了,可是结婚对于我来说好像还很遥远一样,事业才刚刚开始,况且现在还没有合适的对象啊,昨天去参加公司的社区展出活动,由于是在小区里边搞的,小朋友多,大人也多,太热闹了,我们就忙的不可开交啊。

周哥说给我介绍一个MM,叫我去见一下,我就怕见面后不来电,拒绝人家不好得,所以一直就推了,昨天那个MM也过来了,第一眼给人感觉很普通,不是特别抢眼的那种女孩,昨天给她拍了几张照片,回家后打开电脑仔细看一下,呵呵,其实还是多漂亮的,高高的个,跟我差不多吧,胖都都的脸上多了几份成熟和稳重,虽然脸上很多嘎嘎(只是脸上),整体上看还是一个很阳光的女孩,是我喜欢的那种类型,嘿嘿。。如果有后续的话,我会与大家分享我的快乐。

最后按照国际惯例,上几张PP。 有一张是主持人笛子,唱歌的是成都本地的歌手,还有一对情侣魔术师,剩下的就那个MM了。


5.jpg

1.jpg

4.jpg

6.jpg

腾讯 QQ/TM 珊瑚虫增强包 V6.0 兔兔修改版

作者: 傻猫    分类: 爱生活     发布时间: 05-19 07:31    浏览次数: 13952     22 条留言

≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
≡ 腾讯 QQ/TM 珊瑚虫增强包 V6.0 兔兔修改版≡
≡     兔兔工作室[Ribbitar's Personal Website] ≡
≡      http://ribbitar.vicp.net                       ≡
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
■ 本程序除了具有 QQ 基本功能外,集成了网上最新流行的珊瑚虫增强包,可
以显示好友的 IP 地址以及地理位置,另外去掉了烦人的广告,使界面更加清
爽,也可选择安装 MSN 风格的提示声音,外挂还提供了丰富的定制功能。本程
序为集成安装版,无需原版 QQ,装完即可使用,还可以自由选择运行珊瑚虫版
或者原版,安装时可根据实际需要选择组件。
   ☆ IP 显示 ☆
   提供四种显示 IP 的方式,可通过参数定制器自行设置:
   1. 在主面板好友列表中,当鼠标移动到头像时,显示该好友的 IP 信息;
   2. 传统 IP 条,可自定义是否显示及其具体位置;
   3. 在消息对话框中,IP 信息显示在其标题栏中,可自定义是否显示;
   4. 另外,当鼠标悬停在左上方的头像和号码处或者消息对话框的边缘处(可
      定制),将显示对方的 IP 信息及地理位置,此时单击鼠标右键可将 IP
      信息复制到剪贴板。

2007 年 5 月 19 日推出 V6.0 兔兔版
   ☆ 更精简的去广告显IP内核,增强去新闻能力
   ☆ 使大部分用户不弹跳腾讯迷你页
   ☆ 修改KQL.dll文件使其支持Beta2版
   ☆ 修正会员对话框IP重叠的问题
   ☆ 刷新好友IP地址后,不再强制退出
   ☆ 改良后完全支持 Vista 系统
   ☆ 修正所有反馈的问题,提高增强版性能
   ☆ 更新Version数据到2007.5.19
   ☆ IP 数据更新到 珊瑚虫精简 IP 数据库 2007.5.19

      
   2007 年 5 月 18 日推出 v5.5 自发版
   ☆ 更精简的去广告显IP内核,增强去新闻能力
   ☆ 修改KQL.dll文件使其支持Beta2版
   ☆ 刷新好友IP地址后,不再强制退出
   ☆ 改良后完全支持 Vista 系统
   ☆ 修正所有反馈的问题,提高增强版性能
   ☆ IP 数据更新到 珊瑚虫精简 IP 数据库 2007.5.18

特别说明: 此增强包为珊瑚虫论坛网友ribbitar 提供的修改版. 修改了KQL.dll文件, 使其支持2007Beta2, 经测试显IP能力为100%, 效果明显, 感谢兔兔分享.


珊瑚虫增强包v5.5.rar

珊瑚虫增加包兔兔修改版 v6.0.rar