DELPHI IDFTP】的更多相关文章

FTP是一个标准协议,它是在计算机和网络之间交换文件的最简单的方法. FTP也是应用TCP/IP协议的应用协议标准.FTP通常于将作者的文件上传至服务器,或从服务器上下传文件的一种普遍的使用方式作为用户,您可以用非常简单的DOS界面来使用FTP,也可以使用由第三方提供的软件(如FLASHFXP)来对服务器的数据进行删除,重命名等操作. 当然,使用这些之前,必须先要登录服务器,用指定的用户名和密码或匿名(Anonymous)登录. 这些大家都知道,不过还是讲一下.用DOS操作FTP我不讲了.我今天…
1  连接远程服务器procedure Connect(AAutoLogin: boolean; const ATimeout: Integer);2  改变目录procedure ChangeDir(const ADirName: string);3  下载procedure Get(const ASourceFile: string; ADest: TStream; AResume: Boolean); overload;procedure Get(const ASourceFile: st…
Delphi 7自带的INDY控件,其中包含了IdFTP,可以方便的实现FTP客户端程序,参考自带的例子,其中有上传.下载.删除文件,但是不包含对文件夹的操作,得自己实现上传.下载.删除整个文件夹(带子目录和文件).于是自己参考了网上的资料,重新整理下,使用归纳如下示例工程所示: 窗体上放置TIdFTP.TIdAntiFreeze组件,还有其他一些基本控件.当在列表框选择的是“文件夹”时,点击“下载”.“删除”就会对此文件夹进行下载或删除,若是选择的是“文件”类型,则对单个文件操作:上传分单个文…
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, IdFTP, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdHTTPHeaderInfo, ExtCtrls; type TForm1 = cl…
新一篇: IDFTP 控件使用 >>代码模板 : CTRL+J >>代码整块移动 : CTRL+SHIFT+I(右移) CTRL+SHIFT+U(左移)>>选中窗体 : 先选中任一控件,SHIFT+鼠标左键>>将鼠标指向变量名.单元名.类名,再用 CTRL+鼠标左键 可找到相应的说明>>在过程.函数.事件内部, SHIFT+CTRL+向上的方向键  可跳跃到相应的过程.函数.事件的定义 相反,在过程.函数.事件的定义处,SHIFT+CTRL+向下…
我们知道delphi很多源码,都是没有提供的,比如BDE,一旦有问题,我们也找不到办法解决,那么那些dcu对应的pas是没有公布的呢?笔者做了个统计. 下面是delphi7 的,如果你的程序有用到没有源码的部分,就要小心了. 模式: 全部   左侧文件是dcu 右侧文件: 是pas ,只是为了方便,修改成了dcu. AccCtrl.dcu = AccCtrl.dcu AclAPI.dcu   AclAPI.dcu ActivDbgLib.dcu   ActivDbgLib.dcu ActiveS…
最近在项目中要用到FTP上传,用的是delphi的IdFTP控件,用IdFtp.List(list),发现List里面有内容,可 是到IdFtp.DirectoryListing.Items[iCount].ItemType=ditDirectory却出现越界的错误,而 DirectoryListing .ListResult中却有内容,取出IdFtp.DirectoryListing.count确为0,惊讶了.琢磨了很久 ,这是查的一个关于DirectoryListing 的资料. 最后发现由…
Delphi SuperDll 作为一名5年的Delpher,一直认为Delphi是桌面应用的王者,我相信其他的Delpher也这么认为. 但是,慢慢的我发现普通方式的Delphi开发会造成代码的严重臃肿,特别是MDI类大型项目.多人同时开发的情况下. 举个例子,一个Delphi常用的业务逻辑,数据导出到Excel,完全可以写成一个公用的模块放置在业务单元,子窗体用到时直接调用即可,但是一般情况下,事情并不止想象的那么简单,维护人员的思想真的一言难尽. 后来,我有了将Delphi中常用的业务逻辑…
 多线程程序设计 我们知道,win95或winNT都是“多线程”的操作系统,在DELPHI .中,我们可以充分利用这一特性,编写出“多线程”的应用程序. 对以往在DOS或16位windows下写程序的人来说,“多线程”仍然是陌生的,但如同以前我们从DOS下的单任务过渡到windows3.下的多任务,如今我们又必须过渡到“多线程”领域,毕竟计算机时代是在不断发展的.不过,幸运的是,在DELPHI2.下进行多线程程序设计并不需要我们去学习庞大的WIN32API函数,我们可以利用DELPHI下标准的多…
最近做个发邮件的功能,需要将日志文件通过邮件发送回来用于分析,但是日志文件可能会超级大,测算下来一天可能会有800M的大小.所以压缩是不可避免了,delphi中的默认压缩算法整了半天不太好使,就看了看7z,在windows下有dll那么就用它吧. 下载7z.dll,还有一个delphi的开发sdk文件,sevenzip.pas.有这两个就可以了. 压缩 使用超级简单 procedure TForm1.Button1Click(Sender: TObject); var Arch: I7zOutA…
针对返回结果为参数的 一. 先建立自己的存储过程 ALTER PROCEDURE [dbo].[REName] ) AS BEGIN select ROW_NUMBER() over(order by Name asc) as [序号], Name,Gender,Birthday,Mobile,Tel,Ctfld from dbo.name where Gender = @Gender OR @Gender IN ( NULL, '', '-1' ) END 二.打开delphi,先添加几个控件…
在系统中同时安装了Dephi 2010LITE版与Delphi XE lite后,总是会有一个有问题 是因为两者都是读取C:\ProgramData\Embarcadero目录下的license文件, 因此在安装Delphi 2010正常运行后,需要备份相应的文件 而安装好Delphi XE后,先清空此目录下的文件,然后再用activator.exe执行一下reset.activator一下,运行好Delphi xe,再备份好相应文件 这样就有两份文件了,需要运行哪个,就先恢复一下相应的lice…
VER300    Delphi Seattle / C++Builder Seattle    23    230    (Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Android)        VER290    Delphi XE8 / C++Builder XE8    22    220    (Delphi:Win32/Win64/OSX/iOS32/iOS…
现在delphi都发布到xe8了,tidhttp还有缺陷,那就是超时设置在没有网络或者连不上服务器的时候是无效的,不管你设置为多少都要10-20秒.connectTimeout和readTimeout都试过了,网上找了一圈,有人提出修改源码,我没试,应该也可以. 我采用的是把idhttp.get方法放到线程里,在主线程定时检查返回状态,这样就可以控制超时时间了,伪代码如下. strResult:=''; Tthread.CreateAnonymousThread( procedure begin…
Delphi Code Editor 之 编辑器选项 可从Code Editor的右键菜单中选择“Properties”菜单项来查看编辑器选项.也可以从主菜单[Tools | Editor Options…]打开编辑器选项对话框.如下图: 下面分别来讲述各个页面. 1.General页面 这两个页面用于控制编辑器的工作方式.其中包括很多选项. 页面下面的“Editor SpeedSetting”组合框,可从里面选择多种设置,如下图: 如果改变此组合框的设置,上面的“Editor options”…
Delphi是一个可视化的编程工具,ADO编程也是这样,所以话不多言,直接通过代码.截图和语言来说明. 我的数据库是Oracle,为了测试,先建一个表:create table practice(uno varchar(8), uname varchar(20));  这个表比较简单,只有两个字段. 我的Oracle数据库是安装在虚拟机上的(操作系统是Redhat),所以需要先在服务器上配置好,另外需要在Windows上进行相关的配置(监听程序配置和本地网络服务名配置).否则后面就没有办法配置数…
先介绍一个可能比较常用的方法,获取当前时间 var datetime: string; begin datetime:= FormatDateTime('yyyy-mm-dd hh:mm:ss', Now); ShowMessage(datetime); end; 其中的Now 函数是获取当前的时间,FormatDateTime 用于将Now获取的时间信息格式化为想要的格式. 这个方法可以获取当前时间,并且格式化为例如 2008-09-10 09:10:58 的格式. 在介绍能够获取毫秒信息的方…
当使用了长字符串类型的参数.变量时,如string,要引用ShareMem. 虽然Delphi中的string功能很强大,但若是您编写的Dll文件要供其它编程语言调用时,最好使用PChar类型.如果您要坚持使用string类型的参数时.变量甚至是记录信息时,就要引用ShareMem单元,而且这个单元必须是第一个引用的,即在uses语句后的第一个单元. 下面通过一个项目示例来讲解怎么使用ShareMem. 先新建一个DLL项目 先新建一个DLL项目,然后再新建一个Unit1单元. 工程文件是这样的…
我是参考了万一的博客里面的关于TStringGrid学习的教程,但是我也结合自己的实际操作和理解,加入了一些个人的补充,至少对我有用! 学用TStringGrid之——ColCount.RowCount.Cells 本例中使用到了Panel控件,只是比较简单的拖拽到界面上(比如可以在Panel上面放按钮……),详细的知识并没有涉及到,还是先学习TStringGrid. 本例的功能: 1.获取StringGrid的行数.列数 2.给单元赋值 运行效果图 : 代码如下: unit Unit1; in…
最近在开发中使用到了UpDown这个控件,但是因为之前没有使用过,所以很不熟悉,于是就编写了一个简单的demo来学习UpDown以及其结合TEdit的用法. 初步的常用功能的简介 目前(2015.08.07)只是涉及到其简单的用法,因为目前我所需要使用的就只有这些内容,系统化的使用和知识将会在以后需要的时候再补充. 目前涉及到的内容有UpDown组件与TEdit组件的配合使用.UpDown的Position属性. 寻找UpDown: 如下图,Win32下,用红色框框出来的 先看一下这个程序的运行…
首先看TThread源码中关于OnTerminate的代码: public .... property OnTerminate: TNotifyEvent read FOnTerminate write FOnTerminate; ... end; 再看Delphi自带的帮助手册中对于OnTerminate的解释: Occurs after the thread's Execute method has returned and before the thread is destroyed. p…
先介绍ExtractFilePath和ParamStr ParamStr 该函数的原型是:function paramstr(i: Integer): String; 对于任何的application,paramstr(0)都默认代表的是应用程序的绝对路径.假如你这个编译号的exe 文件在 d:\delphi下,名字叫做 project1.exe.那么 在该应用程序中paramstr(0)返回:d:\delphi\project1.exe.这个值是变的,exe程序在哪,这个值就变为哪儿. 那么有…
转载自:http://www.cnblogs.com/mumble/archive/2011/05/25/2056462.html Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用: 其实在看Delphi的Format函数的时候,可以与C 里面的printf 函数的格式化相关的知识进行类比. 首先看它的声明: function Format(const Format: string; const Args: array o…
三个Trim函数简介 函数原型 function Trim(const S: string): string; 将字符串前后的空白及控制字元清掉. 注意Trim函数只能清掉字符串前后的空格及控制字元,不能清除字符串中间的空格 函数原型 function TrimLeft(const S: string): string; 将字符串左边的空白及控制字元清掉. 函数原型 function TrimRight(const S: string): string; 将字符串右边的空白及控制字元清掉. Tr…
转载自:http://www.ylzx8.cn/windows/delphi/73200.html 本人在做一个测试,服务器是IOCP的,我假定最大链接数是50000个. 测试背景:如果每个链接之间的数据需要服务器中转的话,那么我需要一个数据容器储存用户的关键数据和连接. 我简单的做了一段简单的代码,关键代码段如下: RTest = record Key: Integer; Name: String[20]; end; PTest = ^RTest; TListType = (ltList, l…
转载自:http://www.cnblogs.com/qiusl/p/4028437.html?utm_source=tuicool 我估摸着内存分配+释放是个基础的函数,有些人可能没注意此类函数或细究,但我觉得还是弄明白好. 介绍下面内存函数之前,先说一下MM的一些过程,如不关心可以忽略: TMemoryManger = record GetMem: function(Size: Integer): Pointer; FreeMem: function(P: Pointer): Integer…
转载自:http://blog.csdn.net/jqandjq/article/details/5429137 看了这里标题,大家可能以为我会谈TListBox控件,那就错了.我要谈的是Delphi提供给我们的具有列表性质的类:TStringList.TList和TObjectList.TStringList用来存放字符串,TList存放指针,而TObjectList则存放对象(Object) 在我们使用Delphi的过程中,有很多数据的存储是要靠 数组解决的.虽然Delphi现在已经支持了可…
Delphi也是基于继承和接口的多态性.…
Delphi之静态方法,虚方法virtual,动态dynamic,抽象abstract,消息 http://www.cnblogs.com/zhwx/archive/2012/08/28/2660555.html 对象的方法能定义成静态(static).虚拟(virtual).动态(dynamic)或消息处理(message).请看下面 的例子: TFoo = class procedure IAmAStatic; procedure IAmAVirtual; virtual; procedur…
absolute //它使得你能够创建一个新变量, 并且该变量的起始地址与另一个变量相同. var   Str: ];   StrLen: Byte absolute Str; //这个声明指定了变量StrLen起始地址与Str相同. //由于字符串的第0个位置保存了字符串的长度, 所以StrLen的值即字符串长度. begin   Str := 'abc';   Edit1.Text := IntToStr(StrLen); end; abstract //它允许你创建抽象的方法, 包括有抽象…