白天想晚上,晚上想白天

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

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

Posted in 我的生活 at May 31, 2007. by 傻猫 .    Views: 2587    No Comments

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

以前总认为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

Posted in 软件开发 at May 31, 2007. by 傻猫 .    Views: 11548    1 Comment

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

下面的程序是用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

Posted in 软件开发 at May 31, 2007. by 傻猫 .    Views: 5726    1 Comment

我开始吸毒了

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

Posted in 我的生活 at May 31, 2007. by 傻猫 .    Views: 2628    No Comments

25岁生日快乐

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

dsc02080.jpg

dsc02081.jpg

dsc02082.jpg

dsc02083.jpg

Posted in 我的生活 at May 25, 2007. by 傻猫 .    Views: 2617    No Comments

《星际争霸2》 官方截图

这是来至暴雪官方的游戏截图,界面相当华丽,一起来看看吧。
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

Posted in 休闲娱乐 at May 24, 2007. by 傻猫 .    Views: 2411    No Comments

我要抱金砖??

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

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

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

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

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

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

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

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

 

Posted in 我的生活 at May 24, 2007. by 傻猫 .    Views: 4897    6 Comments

我的爱其实很简单

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

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

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

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

Posted in 我的生活 at May 22, 2007. by 傻猫 .    Views: 3863    1 Comment