高分求Delhpi编译的FTP源代码!~~
到百度搜一下即可
#include
#include
#include
#include
#include
#define STACK_INIT_SIZE 10
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0
struct student /*定义学生类型,用于存放借出的书籍*/
{
int studentnum,phonenum;
char lendbook[10];
}student[1000];
struct book /*定义书的类型*/
{
char bookname[11];
char publisher[20];
char page;
char year[6];
char status[4];
char name[11];
char author[51];
char booknum;
char bookcreat[10];
char borrownum;
char turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/
}book[1000];
struct car /*借书卡的数据类型*/
{
int carnum;
char studentname[10];
int studentclass;
int studentphone;
}car[100];
addcar()
{
FILE *fp;
int i=0;
double allnum,stillbook,outbook,allmoney,avemoney;
fp=fopen("car.txt","a+");
printf("请你输入学生姓名
");
scanf("%s",car[i].studentname);
printf("请你输入班级
");
scanf("%d",&car[i].studentclass);
fwrite(&car[i],sizeof(struct car),1,fp);
fclose(fp);
printf("注册完毕,任意键返回
");
fp=fopen("book.txt","r");
avemoney=allmoney/allnum;
fclose(fp);
printf("书籍总数:%ld,已借出的书籍:%ld,在馆的书籍:%ld,书籍贯总金额:%ld,书籍平均价格:%ld",
stillbook,outbook,allmoney,avemoney);
getch();
}
carcount()
{
FILE *fp;
int i,n=0;
fp=fopen("car.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
printf("第%d张卡
",
i+1,car[i].carnum,car[i].studentname,car[i].studentclass,car[i].studentphone);
n=n+1;
}
fclose(fp);
printf("目前共有%d本书
",n);
printf("按任意键
");
getch();
}
void findbook()
{
FILE *fp;
char bookname[10];
int ture,i,booknum;
fp=fopen("book.txt","r");
printf("请输入你要查找的booknum");
scanf("%d",&booknum);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(booknum,book[i].booknum)==0)
{
if(book[i].turefalse==1)
printf("这本书的详细资料是:%d %s %s 此书现在无人借阅
按任意键返回
",book[i].booknum,book[i].bookname,book[i].bookcreat);
else {printf("这本书已经有人借出
");fclose(fp);return 0;}
fclose(fp);
return FALSE;
}
else
printf("没有你要查询的书籍
");
fclose(fp);}
return FALSE;
}
void borrowbook(struct book *m) //借阅图书函数
{
int num;
struct book *b, *b1;
printf("输入要借书的编码:");
scanf("%d",&num);
b = searchbook(num); /*调用查找图书结点函数*/
if(b != NULL)
{
if(m->borrownum < 10)
{
// b->status = '0';
// b1 = &m->book[m->borrownum];
strcpy(b1->name,b->name);
strcpy(b1->author,b->author);
b1->booknum = b->booknum;
strcpy(b1->year,b->year);
b1->page = b->page;
strcpy(b1->publisher,b->publisher);
// b1->price = b->price;
// b1->status = b->status;
m->borrownum++;
printf("%s借书成功!",b->name);
getch();
}
else
{
printf("你已借满10本书.");
getch();
}
}
else
{
printf("没有你要借的书.");
getch();
}
}
huanbook() /*还书函数*/
{
FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/
int i,n;
int carnum,booknum;
char lendbook[10];
printf("请你输入你的卡号
");
scanf("%d",&carnum);
fp=fopen("car.txt","r"); /*读取卡号记录*/
{
if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/
{
n=i;
fclose(fp);
printf("请输入你要还的书的booknum
");
scanf("%d",&booknum);
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*判断是否借阅了输入的书*/
{
if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/
{
fclose(fp);
fp=fopen("record.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
{
if(strcmp(student[i].lendbook,lendbook)==0)
{
continue; /*删除还掉的书的借书记录*/
}
fwrite(&student[i],sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/
}
fclose(fp);
fclose(fp2);
fp=fopen("record.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++)
{
fwrite(&student[i],sizeof(struct student),1,fp); /*将借书记录信息写回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w"); /*清临时文件的记录*/
fclose(fp2);
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/
{
if(i==n)
{
book[i].turefalse=1;
fwrite(&book[i],sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/
continue;
}
fwrite(&book[i],sizeof(struct book),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
{
fwrite(&book[i],sizeof(struct book),1,fp); /*将临时文件写回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w"); /*清临时文件*/
fclose(fp2);
printf("还书完毕,按任意键返回
");
getch();
return 1;
}
else
printf("你没有借这样的书,任意键返回
");}/*出错提示*/
fclose(fp);
getch();
return 0;
}
else
printf("系统没这样的卡,和管理员联系,按任意键返回
");}/*出错提示*/
fclose(fp);
getch();
}
void main()
{
struct book *m;
char ch5;
do
{
printf("---------------欢迎进入图书查询系统!--------------
");
printf(" 1:
");
printf(" 2:
");
printf(" 3:
");
printf(" 4:
");
printf(" 5:
");
printf(" 0:
");
printf("请输入0--5,其他输入非法!
");
scanf("%s",&ch5);
switch(ch5)
{
case '1':addcar();getch();
case '2':carcount();getch();break;
case '3':findbook();getch();break;
case '4':borrowbook(m );getch();break;
case '5':huanbook();getch();break;
case '0':break;
default:printf("无此操作
");getch();break;
}
}while(ch5!='0');
//return FALSE;
}
自己改一下,应该没有什么问题的,
unit TransferThread;
////////////////////////////////////////////////////////////////////////////////
// 模块说明: FTP传输核心模块类
// 功能: 指定一个下载(上传)的日期或文件名,系统执行传输功能(支持续传)
// 备注:该模块属于传输类的一个子线程模块.
////////////////////////////////////////////////////////////////////////////////
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,ComCtrls,StdCtrls,IniFiles,IdIntercept, IdLogBase, IdLogEvent, IdAntiFreezeBase,
IdAntiFreeze, IdFTPList,IdBaseComponent,IdGlobal,IdComponent, IdTCPConnection, IdTCPClient,IdFTPCommon,
IdFTP;
type
TTransferThread = class(TObject)
private
{ Private declarations }
//进度显示
FProgressbar:TProgressbar;
//上传核心组件
FFTP:TIdFTP;
//上传列表内部类
FCombobox:TCombobox;
//上传信息显示
FLabel:TLabel;
//FTP地址
FFTP_STR_HOST:String;
//FTP用户名
FFTP_STR_USN:String;
//FTP用户密码
FFTP_STR_PWD:String;
//FTP端口
FFTP_STR_PORT:String;
//FTP上传标记
FFTP_STR_UTAG:String;
//FTP下载标记
FFTP_STR_DTAG:String;
//FTP指定的文件夹
FFTP_STR_FLODER:STring;
//传输文件大小
FFTP_LWD_BYTES:LongWord;
//传输开始时间
FFTP_DT_BEGINTIME:TDateTime;
//传输速度
FFTP_DUB_SPEED:Double;
//是否删除源文件.
FFTP_BOL_DEL:Boolean;
//是否正在传输文件
FFTP_BOL_ISTRANSFERRING:Boolean;
//类内部通用对话框函数
function MsgBox(Msg:string;iValue:integer):integer;
//获取用户当前的Windows临时文件夹
function GetWinTempPath:String;
//根据日期生成的日期文件名
function DateToFileName(DateTime:TDateTime):String;
//根据上传/下载标记生成完整的文件名
function GetFileFullName(sTag:String;DateTime:TDateTime):String;
protected
//传输核心函数
function TransferKernel(iTag:Integer;sFile:string;bDelSFile:boolean=False):boolean;
//传输组件的WorkBegin事件
procedure FFTPOnWorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer);
//传输组件的WorkEnd事件
procedure FFTPOnWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
//传输组件的Work事件
procedure FFTPOnWork(Sender: TObject; AWorkMode: TWorkMode;const AWorkCount: Integer);
public
//构造函数
constructor Create;
//析构函数
destructor Destroy;
//进度条控件属性
property Progressbar:TProgressbar read FProgressbar write FProgressbar default nil;
//列表控件属性
property Combobox:TCombobox read FCombobox write FCombobox default nil;
//只读的FTP核心组件
property FTP:TidFTP read FFTP;
//标签控件
property oLabel:TLabel read FLabel write FLabel default nil;
//列表方法(该方法需要指定Combobox,否则无效)
procedure List;
//依据日期下载文件
procedure DownLoad(dDate:TDateTime);overload;
//依据文件名下载文件
procedure DownLoad(sFileName:String);overload;
//依据日期上传文件
procedure UpLoad(dDate:TDateTime);overload;
//依据文件名上传文件
procedure UpLoad(sFileName:String);overload;
// procedure Execute; override;
end;
implementation
constructor TTransferThread.Create;
var
FFini:TIniFile;
FFilePath:String;
begin
//完成FTP相关参数的读取.
FFTP_BOL_ISTRANSFERRING:=False;
Try
FFilePath:=ExtractFilePath(APPlication.exeName)+'setup.ini';
FFini:=TIniFile.Create(FFilePath);
FFTP_STR_HOST:=FFini.ReadString('文件传输','服务器地址','');
FFTP_STR_PORT:=FFini.ReadString('文件传输','服务器端口','');
FFTP_STR_USN:=FFini.ReadString('文件传输','用户名','');
FFTP_STR_PWD:=FFini.ReadString('文件传输','密码','');
FFTP_STR_FLODER:=FFini.ReadString('文件传输','文件夹','');
FFTP_STR_UTAG:=FFini.ReadString('文件传输','上传标识码','');
FFTP_STR_DTAG:=FFini.ReadString('文件传输','上传标识码','');
FFTP_BOL_DEL:=FFini.ReadBool('文件传输','删源文件',FALSE);
FFIni.Free;
Except
MsgBox('读取FTP连接配置信息失败!请检查您的Setup.ini文件.',MB_OK+MB_ICONERROR);
Exit;
Abort;
End;
//设置FTP相关参数
Try
FFTP:=TIdFTP.Create(nil);
FFTP.Host:=FFTP_STR_HOST;
FFTP.Port:=strtoint(FFTP_STR_PORT);
FFTP.UserName:=FFTP_STR_USN;
FFTP.Password:=FFTP_STR_PWD;
FFTP.TransferType:=ftASCII;
//事件驱动
FFTP.OnWork:=FFTPOnWork;
FFTP.OnWorkBegin:=FFTPOnWorkBegin;
FFTP.OnWorkEnd:=FFTPOnWorkEnd;
FFTP.Connect(True,-1);
Except
MsgBox('连接远程FTP服务器失败!'#10#13'1.服务器地址错误,或服务器不可用.'#10#13'2.用户名或密码不正确.'#10#13'3.FTP服务端口设置不正确.',MB_OK+MB_ICONERROR);
Exit;
Abort;
End;
end;
function TTransferThread.DateToFileName(DateTime: TDateTime): String;
var
Year, Month, Day:Word;
sYear,sMonth,sDay:String;
begin
DecodeDate(DateTime, Year, Month, Day); //日期
sYear:=inttostr(Year);
sMonth:=inttostr(Month);
sDay:=inttostr(Day);
//年
case Length(sYear) of
4: sYear:=sYear;
3: sYear:='0'+sYear;
2: sYear:='00'+sYear;
1: sYear:='000'+sYear;
else
sYear:='';
end;
//月
case Length(sMonth) of
2: sMonth:=sMonth;
1: sMonth:='0'+sMonth;
else
sMonth:='';
end;
//日
case Length(sDay) of
2: sDay:=sDay;
1: sDay:='0'+sDay;
else
sDay:='';
end;
if (sYear='') or (sMonth='') or (sDay='') then
begin
Result:='';
Exit;
end;
if (sYear<>'') and (sMonth<>'') and (sDay<>'') then
begin
Result:=sYear+sMOnth+sDay;
end;
end;
destructor TTransferThread.Destroy;
begin
FProgressbar:=nil;
FCombobox:=nil;
FLabel:=nil;
FFTP.Quit;
FFTP.Free;
end;
procedure TTransferThread.DownLoad(dDate: TDateTime);
begin
if Not FFTP_BOL_ISTRANSFERRING then
begin
TransferKernel(1,GetFileFullName(FFTP_STR_DTAG,dDate),FFTP_BOL_DEL);
end;
end;
procedure TTransferThread.DownLoad(sFileName: String);
begin
if Not FFTP_BOL_ISTRANSFERRING then
TransferKernel(1,sFileName,FFTP_BOL_DEL);
end;
procedure TTransferThread.FFTPOnWork(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
var
S,E: String;
H, M, Sec, MS: Word;
TotalTime: TDateTime;
DLTime: Double;
begin
TotalTime := Now - FFTP_DT_BEGINTIME; //总用时
DecodeTime(TotalTime, H, M, Sec, MS); //取出时\分\秒\毫秒
Sec := Sec + M * 60 + H * 3600; //转换成秒
DLTime := Sec + MS / 1000; //最终的下载时间
E:= Format(' 使用时间:%2d:%2d:%2d', [Sec div 3600, (Sec div 60) mod 60, Sec mod 60]);
if DLTime > 0 then
//每秒的平均速度:XX K/s
FFTP_DUB_SPEED := {(AverageSpeed + }(AWorkCount / 1024) / DLTime{) / 2};
if FFTP_DUB_SPEED > 0 then
begin
Sec := Trunc(((FFTP_LWD_BYTES - AWorkCount) / 1024) / FFTP_DUB_SPEED);
S := Format(' 剩余时间:%2d:%2d:%2d', [Sec div 3600, (Sec div 60) mod 60, Sec mod 60]);
S:='速度: ' + FormatFloat('0.00 KB/秒',FFTP_DUB_SPEED) + S + E ;
end
else
S:='';
if (FLabel<>nil) and (assigned(FLabel)) then
begin
FLabel.AutoSize:=True;
FLabel.Caption:=S;
FLabel.Update;
end;
if (FProgressBar<>nil) and (assigned(FProgressBar)) then
begin
FProgressBar.Position:=AWorkCount; //进度显示
FProgressBar.Update;
end;
end;
procedure TTransferThread.FFTPOnWorkBegin(Sender: TObject;
AWorkMode: TWorkMode; const AWorkCountMax: Integer);
begin
FFTP_BOL_ISTRANSFERRING:=True;
FFTP_DT_BEGINTIME:=Now; //开始时间
FFTP_DUB_SPEED:=0.0; //初始化速率
if (FProgressBar<>nil) and (assigned(FProgressBar)) then
begin
if AWorkCountMax>0 then
begin
FProgressBar.Max:=AWorkCountMax;
FFTP_LWD_BYTES:=FProgressBar.Max;
end
else
FProgressBar.Max:=FFTP_LWD_BYTES;
end;
end;
procedure TTransferThread.FFTPOnWorkEnd(Sender: TObject;
AWorkMode: TWorkMode);
begin
FFTP_BOL_ISTRANSFERRING:=False;
FFTP_DUB_SPEED:=0.00;
if (FLabel<>nil) and (assigned(FLabel)) then
begin
FLabel.AutoSize:=True;
FLabel.Caption:='';
FLabel.Update;
end;
if (FProgressBar<>nil) and (assigned(FProgressBar)) then
begin
FProgressBar.Position:=0;
end;
end;
function TTransferThread.GetFileFullName(sTag:String;DateTime:TDateTime):String;
begin
Result:=sTag+DateToFileName(DateTime)+'FD.HXD';
end;
function TTransferThread.GetWinTempPath: String;
var
TempDir:array [0..255] of char;
begin
GetTempPath(255,@TempDir);
Result:=strPas(TempDir);
end;
procedure TTransferThread.List;
var
Dir_List:TStringList;
FoundFolder:Boolean;
iCount:Integer;
begin
if (FCombobox=nil) or (Not Assigned(FCombobox)) then
begin
Exit;
Abort;
end;
Dir_List:=TStringList.Create; //创建字符串列表类
Try
if Not FFTP.Connected then FFTP.Connect;
FFTP.ChangeDir('/');//根目录 //到服务器的根目录
FFTP.List(Dir_List,'',True); //获取目录列表
FoundFolder:=False;
FFTP.TransferType:=ftASCII; //更改传输类型(ASCII类型)
for iCount:=0 to Dir_List.Count-1 do
begin
if FFTP.DirectoryListing.Items[iCount].ItemType=ditDirectory then
begin
if Dir_List.IndexOf(FFTP_STR_FLODER)= -1 then //判断该文件夹不存在
begin
//如果不存继续循环查找.
Continue;
end
else
begin
//如果存在,则直接退出循环
FoundFolder:=True;
Break;
end;
end;
end;
if FoundFolder then //判断该文件夹不存在
begin
FFTP.MakeDir(FFTP_STR_FLODER); //不存在,则创建一个新的文件夹
end;
FFTP.ChangeDir(FFTP_STR_FLODER);
FFTP.List(Dir_List,'*.HXD',False);
if Dir_List.Count>0 then
begin
FCombobox.Items:=Dir_List;
end;
Finally
Dir_List.Free;
End;
end;
function TTransferThread.MsgBox(Msg: string; iValue: integer): integer;
begin
Result:=MessageBox(application.Handle,pChar(Msg),'系统信息',iValue+MB_APPLMODAL);
end;
function TTransferThread.TransferKernel(iTag: Integer; sFile: string;
bDelSFile: boolean): boolean;
var
sTmpPath:String;
Dir_List:TStringList;
FoundFolder:Boolean;
iCount:Integer;
begin
sTmpPath:=GetWinTempPath; //获取本地系统临时目录
Dir_List:=TStringList.Create; //创建字符串列表类
Try
if Not FFTP.Connected then FFTP.Connect;
FFTP.ChangeDir('/');//根目录 //到服务器的根目录
FFTP.TransferType:=ftASCII; //更改传输类型(ASCII类型)
FFTP.List(Dir_List,'',True); //获取目录列表
FoundFolder:=False;
for iCount:=0 to Dir_List.Count-1 do
begin
if FFTP.DirectoryListing.Items[iCount].ItemType=ditDirectory then //是目录
begin
if Dir_List.IndexOf(FFTP_STR_FLODER)= -1 then //判断该文件夹不存在
begin
//如果不存继续循环查找.
Continue;
end
else
begin
//如果存在,则直接退出循环
FoundFolder:=True;
Break;
end;
end;
end;
if FoundFolder then //判断该文件夹不存在
begin
FFTP.MakeDir(FFTP_STR_FLODER); //不存在,则创建一个新的文件夹
end;
//更改传输类型
FFTP.TransferType:=ftBinary;
Try
//找到相应的目录,则更换路径.
FFTP.ChangeDir(FFTP_STR_FLODER);
//0为上传
if iTag=0 then
begin
Try
FFTP.Put(sTmpPath+sFile,sFile);
Except
MsgBox('上传文件失败!原因如下:'#13#10'1.服务器没有开启写文件的权限!'#10#13'2.程序发生异常,请重新上传!',MB_OK+MB_ICONERROR);
Abort;
End;
FFTP_LWD_BYTES:=FFTP.Size(sFile);
if bDelSFile then //删除本地源文件
begin
DeleteFile(sTmpPath+sFile);
end;
Result:=True;
FFTP.Disconnect;
end;
//1为下载
if iTag=1 then
begin
//文件已经存在
Try
FFTP_LWD_BYTES:=FFTP.Size(sFile);
if FileExists(sTmpPath+sFile) then
begin
case MsgBox('文件已经存在,要续传吗?'#13#10'是--续传'#10#13'否--覆盖'#13#10'取消--取消操作',MB_YESNOCANCEL+MB_ICONINFORMATION) of
IDYES: begin
FFTP_LWD_BYTES:=FFTP_LWD_BYTES-FileSizeByName(sTmpPath+sFile);
//参数说明: 源文件,目标文件,是否覆盖,是否触发异常(True为不触发)。
FFTP.Get(sFile,sTmpPath+sFile,False,True);
end;
IDNO: begin
FFTP.Get(sFile,sTmpPath+sFile,True);
end;
IDCANCEL:
begin
FFTP_BOL_ISTRANSFERRING:=False;
end;
end;
end
else //文件不存在
begin
FFTP.Get(sFile,sTmpPath+sFile,True);
end;
Except
MsgBox('上传文件失败!原因如下:'#13#10'1.服务器没有开启写文件的权限!'#10#13'2.程序发生异常,请重新上传!',MB_OK+MB_ICONERROR);
Abort;
End;
if bDelSFile then //删除远程源文件
begin
FFTP.Delete(sFile);
end;
FFTP.Disconnect;
end;
Except
FFTP.Quit;
Result:=False;
End;
Finally
Dir_List.Free;
End;
end;
procedure TTransferThread.UpLoad(dDate: TDateTime);
begin
if Not FFTP_BOL_ISTRANSFERRING then
TransferKernel(0,GetFileFullName(FFTP_STR_DTAG,dDate),FFTP_BOL_DEL);
end;
procedure TTransferThread.UpLoad(sFileName: String);
begin
if Not FFTP_BOL_ISTRANSFERRING then
TransferKernel(0,sFileName,FFTP_BOL_DEL);
end;
end.
高分求Delhpi编译的FTP源代码!~~
FFTP_STR_DTAG:=FFini.ReadString('文件传输','上传标识码','');FFTP_BOL_DEL:=FFini.ReadBool('文件传输','删源文件',FALSE);FFIni.Free;ExceptMsgBox('读取FTP连接配置信息失败!请检查您的Setup.ini文件.',MB_OK+MB_ICONERROR);Exit;Abort;End;\/\/设置FTP相关参数TryFFTP:=TIdFTP.Create(nil);FFTP...
关于delhpi实际开发的一些问题
1. 可以用Delphi,如果嫌界面不美观,可以用一个VCLSkin的皮肤控件,有多种皮肤可供选择。2. 数据库连接最好用不需安装或配置客户端电脑就能使用的,推荐 SDAC(直连SQL Server数据库)、ODAC(直连Oracle数据库)、MYDAC(直连MySQL数据库)等直连控件,这样程序写好后,客户端只要复制对应exe文件过去就可运...
delhpi 中的$000000 i*$100是什么意思
100是16进制的100,也就是C语言的0x100,或者汇编语言的100H,换算为10进制就是256
Delhpi rmf报表是用什么做的?
试试SReport 它是一个是将开发人员的报表设计工作量降为零,同时为最终用户提供"简单易用"、"功能强大”、"灵活方便"的报表自定义途径的Delphi Vcl,用过感觉还行,可以试试.
delhpi基本指令
Label.Caption = "本软件注册给"Label.Caption = "姓名:" & Name Label.Caption = "公司:" & Corp Label.Caption = "注册密码:" & password Else Label.Caption = "未注册"Label.Caption = "本软件注册给"Label.Caption = "姓名:江建"Label.Caption = "公司:编程浪子"Label.Caption = ...
学习delhpi 需要先学vb吗?
如果不清楚计算机中函数、变量等编程概念的话 先学VB易懂 1 前者是面向对象的Pascal语言,后者是以Basic语言为基础的可视化事件驱动语言 2 VB 3 容易理解编程时的一些概念 而且有一点要强调 那就是 两者中 ^运算符的含义是一样的 都表示乘方 而C语言中则是异或Xor运算 ...
delhpi 字符串问题
sqlstr = 'select * from 职工表 where ' + str1 + ' = ''' + str2 + ''';\/\/这是在str1代表的字段类型为字符型的情况,如果代表的是数值型的话,那可以直接用 sqlstr = 'select * from 职工表 where ' + str1 + ' = ' + str2;
[求助]delhpi里ADOQuery的用法和设置
首先设置好ADOQUERY1的连接字符 然后 adoquery1.sql.clear;adoquery1.sql.add('select * from table1')adoquery1.execsql;adoquery1.sql.clear adoquery1.sql.add('select * from table2')adoquery1.execsql ...基本上就是通过更改ADOQUERY中的SQL来进行不同表的切换 ...
简单的delhpi问题
begin i:=0;end;procedure TForm1.Button1Click(Sender: TObject);begin i:=i+1;if i mod 2 =1 then Button1.Caption:='开始'else Button1.Caption:='停止';ShowMessage(inttostr(i));\/\/你可以看下你是第几次单击button1.end;如果你只是想通过每单击一次button1,来改变timer1的enabled...
这段delphi代码哪里不对,怎么实现不了循环,请各位高手帮我看看...
在MediaPlayer1.Play ;后面加一个延时函数试试,我想因为程序执行很快所以跟本没等前面几个声音播放过已经播放最后一个了,不过不要用Sleep做延时,可以使用下面这个函数 procedure Delay(MSecs: Longint);\/\/延时函数,MSecs单位为毫秒(千分之1秒)var FirstTickCount, Now: Longint;begin FirstTickCount :...
大狐池尿石: 在创建时可以用try...except但是建议先加载ftp服务器的文件列表.
修水县13786633190: 【高分】急求一ftp自动上传脚本?
大狐池尿石: rem xls文件要和本程序在同一文件夹下set fn=%date:~0,4%%date:~5,2%%date:~8,2%set/a fn=fn-1echo open 服务器ip >ftp.txtrem 账号后面不能有空格echo ftp账号>>ftp.txtecho 密码>>ftp.txtecho bin>>ftp.txtecho put %fn%.xls>>ftp.txtecho bye>>ftp.txtftp.exe -s:ftp.txt ---->的意思是传递并覆盖.他所起的作用是将运行后的回显结果传递到后面的范围符号>>的作用与符号>相似,但他们的区别在于>>是传递并在文件末尾追加
修水县13786633190: [高分]unix系统shell脚本的ftp问题.请IT达人支援 - ?
大狐池尿石: #!/bin/sh var=`date "+%Y%m%d"` ftp -n 1.1.1.1 user abc 123 put hello_$var.txt ls hello_$var.txt if [ $? != 0 ]then echo "the txt put fail,please check" else echo "the txt put ok" fi ftpend
修水县13786633190: 高分求Delphi的有关listbox控件的一段代码 - ?
大狐池尿石: 用自绘的ListBox就行,即把ListBox.Style设置成lbOwnerDrawFixed,参考如下代码吧.{ 窗体构造:做一些初始化操作 } procedure TForm1.FormCreate(Sender: TObject); begin // 要求ListBox的条目采用自绘方法 ListBox1.Style := ...
修水县13786633190: 高分悬赏:Delphi如何用BPL封装运行期的包,并在程序中调用,包里仅有一个完全自定义的类. - ?
大狐池尿石: 1、新建一个包,其中包含你的这个单元文件,工程属性中建议设置为“Runtime Only”.工程的路径要输出到Delphi能够搜索到的路径中.2、调用的应用程序工程属性中,勾选“Build wiht runtime package”,并在勾选项下面的框中至少输入“vcl;rtl”以及前面新建的包名.如果应用程序中还用到了其它的包,比如BDE、Indy等,那么还需要包含相应的包.3、按平时的做法完成你的应用程序,该引用哪个单元就引用哪个.4、把前面的用到的那些bpl复制到应用所在目录,然后运行试试.
修水县13786633190: 能否给一个java开发的具有图形界面的ftp服务器客户端源代码呢 - ?
大狐池尿石: / ***创建日期:2008年12月23日 *类名:Ftp.java*类路径:组织结构 *更改日志: * / 包组织结构; 进口的java.io.File; 进口java.io.FileInputStream中; 进口java.io.FileOutputStream中; 进口的java. io.IOException; 进口sun.net....
修水县13786633190: 编译一个shell脚本,ftp到主机 新建目录 拷贝文件 删除目录 退出?
大狐池尿石: 首先,脚本并不需要知道本身所在主机的IP,所以,用不到10.10.141.91这个源地址.再次,ftp命令中不支持直接在服务器端新建文件,只能先在本地新建后上传.其实,ftp客户端软件,如CuteFTP也都是这么做的,只是你觉察不到.#!/bin/...
修水县13786633190: 高分悬赏!!谁能帮我解决了,快哭了 - ?
大狐池尿石: 需要驱动软件支持的 这个驱动很变态~~~~你可以参考一下这个解决方案ftp://ftp.hp.com/pub/softpaq/sp42501-43000/sp42717.exe CQ35先按常规改成XP,然...
修水县13786633190: 关于Delphi.JAVA.C/C++和.net的区别.(高分求解) - ?
大狐池尿石: 首先 Delphi是全能开发环境核心语言是Object Pascal 无论你想要开发驱动 开发数据库 网络 EIP/CRM/ERP/MIS 参加NOIP或者其他任何的你能想到的程序他都没有任何问题,拥有优雅的类库VCL,比之MFC强了不知道多少倍, 缺点是国内公司...
修水县13786633190: VB找一段FTP代码实现 - ?
大狐池尿石: 用VB代码实现对FTP的上传和下载.在网上找到了个方法.这个方法是用INTERNET传输控件来实现的.添加了INTERNET传输控件后VB代码如下"'初始化控件的属性: With Inet1 .URL = "ftp://192.168.0.50" .UserName = "user" .Password = "...