代码的要? 下面是,我以前写的一段代码,实现的是找到,并拷贝 var dicrec,rec:TSearchRec ; failex:longbool; fsr,fsw:TFileStream; pcr:char; tempic:timage; i:integer; begin if messagedlg('您确信要从U盘拷贝数据吗?',mtConfirmation,[mbyes,mbno],0)=mrno then exit; for i:=1 to 8 do begin tempic:=Timage(Form1.FindComponent('image'+inttostr(i))); tempic.Picture.Assign(nil); (tempic.Parent as ttethemepanel).Caption:=''; (tempic.Parent as ttethemepanel).Color :=clwhite; end; failex:=longbool(1); piclist.Clear ; if sorpath='' then begin showmessage('请选择U盘盘符!'); exit; end; if despath='' then begin showmessage('请选择工作路径'); exit; end; if sorpath[length(sorpath)]<>'\' then sorpath:=sorpath+'\'; if despath[length(despath)]<>'\' then despath:=despath+'\'; if FindFirst(sorpath+'*.*',faDirectory ,dicrec)=0 then repeat if IsValidDir(dicrec) then begin delfiles(despath+localcurrent); if FindFirst(sorpath+dicrec.name+'\*.*',faAnyFile,rec )=0 then begin repeat if ((ExtractFileExt(rec.Name)='.jpg' )or ( ExtractFileExt(rec.Name)='.txt')) then begin CopyFile(pchar(sorpath+dicrec.name+'\'+rec.name),pchar(despath+localcurrent+'\'+rec.Name),failex ); end; if ( ExtractFileExt(rec.Name)='.txt') then begin fsr:=TFileStream.Create(sorpath+dicrec.name+'\'+rec.name,fmOpenRead ); fsw:=TFileStream.Create(despath+localcurrent+'\'+rec.Name+'p',fmcreate); fsr.Position:=2; while fsr.Read(pcr,1)>0 do if pcr<>#0 then fsw.Write(pcr,1) else fsr.Position:=fsr.Position+2; fsr.Free ; fsw.Free ; end; until FindNext(rec)<>0; end; localcurrent :=getnextdir ; end; until findnext(dicrec)<>0;
Function FindAndDelFile(sFileName :string) :boolean var sr: TSearchRec; FileAttrs: Integer; begin Result := false ; FileAttrs := faAnyFile ; if FileExists(sFileName) then begin DeleteFile(sFileName) ; Result := true ; end ; end ;
不好意思,改正一下。Function FindAndDelFile(sFileName :string) :boolean begin Result := false ; FileAttrs := faAnyFile ; if FileExists(sFileName) then begin DeleteFile(sFileName) ; Result := true ; end ; end ;
zfmich: 编译时说FAilettrs没定义,改怎么定义它?
下面的代码一定对你有用!!!nit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; LBox: TListBox; procedure findfiles(apath: string); procedure Button1Click(Sender: TObject); private function getpathname(dir :string): string; { Private declarations } public { Public declarations } end;var Form1: TForm1; apath:string; implementation{$R *.dfm}function Tform1.getpathname(dir:string):string; begin if dir[length(dir)] <> '\' then result:=dir+'\' else result:=dir; end;procedure Tform1.findfiles(apath: string); var fsearchrec,dsearchrec:tsearchrec; findresult:integer; function isdir(adirname:string):boolean; begin result:=(adirname='.') or (adirname='..'); end; begin apath:=getpathname(apath); findresult:=findfirst(apath+'*.*',faanyfile,fsearchrec); try while findresult=0 do begin lbox.items.add(lowercase(apath+fsearchrec.Name)); findresult:=findnext(fsearchrec); end; findresult:=findfirst(apath+'*.*',fadirectory,dsearchrec); while findresult=0 do begin if ((dsearchrec.Attr and fadirectory)=fadirectory) and not isdir(dsearchrec.Name) then findfiles(apath+dsearchrec.Name); findresult:=findnext(dsearchrec); end; finally findclose(fsearchrec); findclose(dsearchrec); end; end;procedure TForm1.Button1Click(Sender: TObject); begin screen.Cursor:=crhourglass; try lbox.Items.Clear; findfiles('d:'); finally screen.Cursor:=crdefault; end; end; end.
[email protected]
请具体点,我看不懂帮助
to ilang(中雨):
发到[email protected],要快!请说明怎么用
下面是,我以前写的一段代码,实现的是找到,并拷贝
var
dicrec,rec:TSearchRec ;
failex:longbool;
fsr,fsw:TFileStream;
pcr:char;
tempic:timage;
i:integer;
begin
if messagedlg('您确信要从U盘拷贝数据吗?',mtConfirmation,[mbyes,mbno],0)=mrno then exit;
for i:=1 to 8 do
begin
tempic:=Timage(Form1.FindComponent('image'+inttostr(i)));
tempic.Picture.Assign(nil);
(tempic.Parent as ttethemepanel).Caption:='';
(tempic.Parent as ttethemepanel).Color :=clwhite;
end;
failex:=longbool(1);
piclist.Clear ; if sorpath='' then
begin
showmessage('请选择U盘盘符!');
exit;
end;
if despath='' then
begin
showmessage('请选择工作路径');
exit;
end;
if sorpath[length(sorpath)]<>'\' then
sorpath:=sorpath+'\';
if despath[length(despath)]<>'\' then
despath:=despath+'\';
if FindFirst(sorpath+'*.*',faDirectory ,dicrec)=0 then repeat
if IsValidDir(dicrec) then
begin delfiles(despath+localcurrent);
if FindFirst(sorpath+dicrec.name+'\*.*',faAnyFile,rec )=0 then
begin
repeat if ((ExtractFileExt(rec.Name)='.jpg' )or ( ExtractFileExt(rec.Name)='.txt')) then
begin
CopyFile(pchar(sorpath+dicrec.name+'\'+rec.name),pchar(despath+localcurrent+'\'+rec.Name),failex );
end;
if ( ExtractFileExt(rec.Name)='.txt') then
begin
fsr:=TFileStream.Create(sorpath+dicrec.name+'\'+rec.name,fmOpenRead );
fsw:=TFileStream.Create(despath+localcurrent+'\'+rec.Name+'p',fmcreate);
fsr.Position:=2;
while fsr.Read(pcr,1)>0 do
if pcr<>#0 then fsw.Write(pcr,1)
else fsr.Position:=fsr.Position+2;
fsr.Free ;
fsw.Free ;
end;
until FindNext(rec)<>0;
end;
localcurrent :=getnextdir ;
end;
until findnext(dicrec)<>0;
var
sr: TSearchRec;
FileAttrs: Integer;
begin
Result := false ;
FileAttrs := faAnyFile ;
if FileExists(sFileName) then
begin
DeleteFile(sFileName) ;
Result := true ;
end ;
end ;
begin
Result := false ;
FileAttrs := faAnyFile ;
if FileExists(sFileName) then
begin
DeleteFile(sFileName) ;
Result := true ;
end ;
end ;
编译时说FAilettrs没定义,改怎么定义它?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
LBox: TListBox;
procedure findfiles(apath: string);
procedure Button1Click(Sender: TObject); private
function getpathname(dir :string): string;
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
apath:string;
implementation{$R *.dfm}function Tform1.getpathname(dir:string):string;
begin
if dir[length(dir)] <> '\' then
result:=dir+'\'
else
result:=dir;
end;procedure Tform1.findfiles(apath: string);
var
fsearchrec,dsearchrec:tsearchrec;
findresult:integer;
function isdir(adirname:string):boolean;
begin
result:=(adirname='.') or (adirname='..');
end;
begin
apath:=getpathname(apath);
findresult:=findfirst(apath+'*.*',faanyfile,fsearchrec);
try
while findresult=0 do
begin
lbox.items.add(lowercase(apath+fsearchrec.Name));
findresult:=findnext(fsearchrec);
end;
findresult:=findfirst(apath+'*.*',fadirectory,dsearchrec);
while findresult=0 do
begin
if ((dsearchrec.Attr and fadirectory)=fadirectory) and not isdir(dsearchrec.Name) then
findfiles(apath+dsearchrec.Name);
findresult:=findnext(dsearchrec);
end;
finally
findclose(fsearchrec);
findclose(dsearchrec);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
screen.Cursor:=crhourglass;
try
lbox.Items.Clear;
findfiles('d:');
finally
screen.Cursor:=crdefault;
end;
end;
end.