Delphi 文件操作集锦

合集下载

Delphi操作Excel大全

Delphi操作Excel大全

1.往Excel中插入图片用MsExcelWorkSheet.Pictures.Insert(ExtractFilePath(ParamStr(0))+'temp.jpg'); 可以放图片varExcelApp,MyWorkBook,MsExcelWorkSheet,Temple1:Variant;begintryExcelApp:=CreateOleObject('Excel.Application');MyWorkBook:=CreateOleobject('Excel.Sheet');MyWorkBook:=ExcelApp.WorkBooks.open(ExtractFilePath(ParamStr(0))+'testItemB ook.xls');MsExcelWorkSheet:=MyWorkBook.WorkSheets['3'];if not ADOQueryItemBook.IsEmpty thenbeginTblobfield(ADOQueryItemBook.FieldByName('pic')).SaveToFile(ExtractFilePath(ParamStr(0))+'temp.jpg');MsExcelWorkSheet.Pictures.Insert(ExtractFilePath(ParamStr(0))+'temp.jpg'); end;提供一些Excel的操作方法,希望有点用处吧。

一) 使用动态创建的方法首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObject( 'Excel.Application' );1) 显示当前窗口:ExcelApp.Visible := True;2) 更改 Excel 标题栏:ExcelApp.Caption := '应用程序调用 Microsoft Excel';3) 添加新工作簿:ExcelApp.WorkBooks.Add;4) 打开已存在的工作簿:ExcelApp.WorkBooks.Open( 'C:\Excel\Demo.xls' );5) 设置第2个工作表为活动工作表:ExcelApp.WorkSheets[2].Activate;或ExcelApp.WorksSheets[ 'Sheet2' ].Activate;6) 给单元格赋值:ExcelApp.Cells[1,4].Value := '第一行第四列';7) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米9) 在第8行之前插入分页符:ExcelApp.WorkSheets[1].Rows.PageBreak := 1;10) 在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;11) 指定边框线宽度:ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )12) 清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells[1,4].ClearContents;13) 设置第一行字体属性:ExcelApp.ActiveSheet.Rows[1] := '隶书';ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue;ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;14) 进行页面设置:a.页眉:ExcelApp.ActiveSheet.PageSetup.CenterHeader := '报表演示';b.页脚:ExcelApp.ActiveSheet.PageSetup.CenterFooter := '第&P页';c.页眉到顶端边距2cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;d.页脚到底端边距3cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;e.顶边距2cm:ExcelApp.ActiveSheet.PageSetup.TopMargin := 2/0.035;f.底边距2cm:ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2/0.035;g.左边距2cm:ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2/0.035;h.右边距2cm:ExcelApp.ActiveSheet.PageSetup.RightMargin := 2/0.035;i.页面水平居中:ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035; j.页面垂直居中:ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2/0.035; k.打印单元格网线:ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;15) 拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelApp.ActiveSheet.Range[ 'A1:E2' ].Copy;c.从A1位置开始粘贴:ExcelApp.ActiveSheet.Range.[ 'A1' ].PasteSpecial;d.从文件尾部开始粘贴:ExcelApp.ActiveSheet.Range.PasteSpecial;16) 插入一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Insert;b. ExcelApp.ActiveSheet.Columns[1].Insert;17) 删除一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Delete;b. ExcelApp.ActiveSheet.Columns[1].Delete;18) 打印预览工作表:ExcelApp.ActiveSheet.PrintPreview;19) 打印输出工作表:ExcelApp.ActiveSheet.PrintOut;20) 工作表保存:if not ExcelApp.ActiveWorkBook.Saved thenExcelApp.ActiveSheet.PrintPreview;21) 工作表另存为:ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' );22) 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True;23) 关闭工作簿:ExcelApp.WorkBooks.Close;24) 退出 Excel:ExcelApp.Quit;(二) 使用Delphi 控件方法在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。

Delphi文本文件读写完整操作

Delphi文本文件读写完整操作
end;
//不同数据类型的写入和读取
procedure TForm1.Button7Click(Sender: TObject);
var name: string[6];
age: Word;
birthday: TDate;
begin
AssignFile(F,FileName);
CloseFile(F);
end;
//追加
procedure TForm1.Button3Click(Sender: TObject);
begin
AssignFile(F,FileName);
Append(F); //打开准备追加
Writeln(F, '第三行');
procedure Button4ClБайду номын сангаасck(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
FileName: string = 'c:\temp\test.txt';
//写文件
procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile(F,FileName);
Rewrite(F); //会覆盖已存在的文件
Reset(F); //只读打开
Memo1.Clear;
while not Eof(F) do

delphi文件的读取和写入

delphi文件的读取和写入

delphi文件的读取和写入概述:Delphi是一种高级编程语言,用于开发Windows应用程序。

在Delphi中,文件的读取和写入是常见的操作,可以通过使用内置的文件处理函数和过程来实现。

本文将详细介绍如何在Delphi中进行文件的读取和写入操作。

一、文件的读取在Delphi中,可以使用TFileStream类来读取文件的内容。

以下是读取文件的步骤:1. 创建TFileStream对象:使用TFileStream类的构造函数创建一个TFileStream对象。

构造函数需要两个参数,第一个参数是文件名,第二个参数是打开文件的模式。

模式可以是fmOpenRead(只读模式)或fmShareDenyNone(允许其他进程访问)。

2. 读取文件内容:调用TFileStream对象的Read方法来读取文件的内容。

Read方法需要两个参数,第一个参数是读取到的数据存放的缓冲区,第二个参数是要读取的字节数。

3. 关闭文件:使用TFileStream对象的Free方法来关闭文件。

示例代码如下:```delphivarFileStream: TFileStream;Buffer: array of Byte;ReadBytes: Integer;beginFileStream := TFileStream.Create('file.txt', fmOpenRead);SetLength(Buffer, FileStream.Size);ReadBytes := FileStream.Read(Buffer[0], FileStream.Size);FileStream.Free;// 处理读取到的文件内容// ...end;```二、文件的写入在Delphi中,可以使用TFileStream类来写入文件的内容。

以下是写入文件的步骤:1. 创建TFileStream对象:使用TFileStream类的构造函数创建一个TFileStream对象。

Delphi文件名操作常用函数

Delphi文件名操作常用函数

Delphi⽂件名操作常⽤函数Delphi⽂件名操作常⽤函数通过下⾯的函数,可以⽅便地对⽂件名进⾏操作:1. ExpandFileName将当前驱动器名(盘符)、路径名和指定的⽂件名合成⼀个绝对⽂件名。

函数原型如下:function ExpandFileName(const FileName: string): string;返回值为合成的绝对⽂件名。

2. ExpandUNCFileName获取⼀个以U N C格式的包括⽹络驱动器名的绝对⽂件名。

函数原型如下:function ExpandUNCFileName(const FileName: string): string;3. ExtractFileDir从绝对⽂件名中获取⽬录名。

函数原型如下:function ExtractFileDir(const FileName: string): string;4. ExtractFileDrive从绝对⽂件名中获取驱动器号(盘号)。

函数原型如下:function ExtractFileDrive(const FileName: string): string;5. ExtractFileExt从绝对⽂件名中获取⽂件名的扩展名。

函数原型如下:function ExtractFileExt(const FileName: string): string;6. ExtractFileName从绝对⽂件名中获取⽂件名。

函数原型如下:function ExtractFileName(const FileName: string): string;7. ExtractFilePath从绝对⽂件名中获取路径名。

函数原型如下:function ExtractFilePath(const FileName: string): string;8. ExtractRelativePath从绝对⽂件名中获取相对于某⼀个路径的相对路径名。

delphi操纵word(完整版)[精华]

delphi操纵word(完整版)[精华]

一、Delphi程序启动Word采用CreateOleObjects的方法来启动Word,调用VBA代码,具体实现过程为:首先使用GetActiveOleObject('Word.Application')判断当前内存中是否存在Word程序,如果存在,则直接连接,如果没有Word程序,则使用CreateOleObject('Word.Application')启动Word二、Delphi程序新建Word文稿格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible)Template:使用模板的名称,NewTemplate:新建文档的类型,True表示为模板,False表示为文档DocumentType:文档类型,默认为空白文档Visible:打捞的窗口是否可见举例:Doc_Handle:=Word_Ole.Documents.Add(Template:='C:\Temlate.dot',NewTemplate:=False );三、Delphi程序打开Word文稿格式:WordDocuments.Open(FileName,ConfirmConversions,ReadOnly,PassWordDocument,PasswordTemplate,Revent,WritePasswordDocument,WritePassWordTemplate,Format,Encoding,Visible)FileName:文档名(包含路径)Confirmconversions:是否显示文件转换对话框ReadOnly:是否以只读方式打开文档AddToRecentFiles:是否将文件添加到"文件"菜单底部的最近使用文件列表中PassWordDocument:打开此文档时所需要的密码PasswordTemplate:打开此模板时所需要的密码Revert:如果文档已经,是否重新打开文档WritePasswordDocument:保存对文档更改时所需要的密码WritePasswordTemplate:保存对模板进行更改时所需要的密码Format:打开文档时所需使用的文件转换器Encoding:所使用的文档代码页Visible:打开文档的窗口是否可见举例:Doc_Handle:=Word_Ole.Documents.open(FileName:=Doc_File,ReadOnly:=False,AddToRecentFiles:=False);四、Delphi程序保存Word文稿格式:WordDocuments.SaveAs(FileName, FileFormat, LockComments, Password,AddToRecentFiles, WritePassword, ReadOnlyRecommended,EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter)FileName:文件名。

delphi delphi 文件操作

delphi delphi 文件操作

文件输入和输出下表列出了输入和输出例程:Procedure orfunctionDescriptionAppend打开存在的文本文件(用于对文件追加文本)。

AssignFile指定外部文件的文件名到文件变量。

BlockRead从无类型文件读出一个或多个记录。

BlockWrite向无类型文件写入一个或多个记录。

ChDir改变当前目录。

CloseFile关闭打开的文件。

Eof返回文件的文件结束(end-of-file)状态。

Eoln返回文本文件的行结束(end-of-line)状态。

Erase删除外部文件。

FilePos返回类型文件或无类型文件的当前位置。

FileSize返回文件的当前尺寸;不适用于文本文件。

Flush刷新输出文本文件的缓冲区。

GetDir返回指定驱动器的当前目录。

IOResult返回表示最后一次I/O函数执行状态的整数值。

MkDir创建子目录。

Read从文件读出一个或多个值到一个或多个变量。

Readln在文本文件中执行Read操作并跳至下一行行首。

Rename对外部文件重命名。

Reset打开存在的文件。

Rewrite创建并打开新文件。

RmDir删除空的子目录。

Seek从类型文件或无类型文件的当前位置移动到指定的分量;不适用于文本文件。

SeekEof返回文本文件的文件结束(end-of-file)状态。

SeekEoln返回文本文件的行结束(end-of-line)状态。

SetTextBuf指定输入/输出(I/O)缓冲区到文本文件。

Truncate在类型文件或无类型文件的当前位置截断文件。

Write向文件写入一个或多个值。

Writeln在文本文件中执行Write操作然后写入一个行结束(end-of-line)标记。

文件变量就是其类型是文件类型的任何变量。

在Object Pascal中,文件类型有三种:类型文件(typed)、文本文件(text)和无类型文件(untyped)。

文件类型的声明见文件类型。

Delphi中文件的操作FileOpen

Delphi中文件的操作FileOpen

Delphi中⽂件的操作FileOpenvariFileHandle : Integer;iFileLength : Integer;iBytesRead, i : Integer;Buffer : ^char;strPath : String;begin// 取得⽂件路径strPath := ExtractFilePath(Application.ExeName) + 'EventStep1.dat';// 读取⽂件内容iFileHandle := FileOpen(strPath,fmOpenRead);//fmopenread指的是⽂件以只读⽅式打开,还有其他更多的⽅式,如fmCreate等if iFileHandle <> -1then// 判断⽂件返回值,看打开是否正确beginiFileLength := FileSeek(iFileHandle,0,2);//得到⽂件的长度FileSeek(iFileHandle,0,0); // 游标指向起始GetMem(Buffer,(iFileLength+1));//buffer分配内存iBytesRead := FileRead(iFileHandle, Buffer, iFileLength); //读数据,写时可⽤FileWriteend;FileClose(iFileHandle);// 关闭⽂件end;在VC编程中,⽂件操作有较多的⽅式,⽐如使⽤API,C++的⽂件流,C的File⽂件操作以及使⽤MFC提供的封装类CFile等等, 其实在delphi中的⽂件操作也有很多的⽅式,这⾥我只想谈谈FileOpen操作⽂件的⽅式,话不多说,⽰例是最有说服⼒的:以上可以简单的说明怎样读取,当然要真正完全掌握这个⽅法,那就要靠⾃⼰多多专研了!。

Delphi文件、文件夹常用操作

Delphi文件、文件夹常用操作
r := DiskSize(3); //获取C:总空间, 单位是字节
r := r/1024/1024/1024;
Str(r:0:2,s); //格式为保留两位小数的字符串
s := 'C盘总空间是: ' + s + ' GB';
ShowMessage(s); //xx.xx GB
dir := 'c:\temp\delphi';
RemoveDir(dir); //返回 Boolean
//也可以直接用API:
RemoveDirectory(PChar(dir)); //返回 Boolean
end;
--------------------------------------------------------------------------------
var
FileName,Dir,s: string;
begin
FileName := 'notepad.exe';
Dir := 'c:\windows';
s := FileSearch(FileName,Dir);
if s<>'' then
ShowMessage(s) //c:\windows\notepad.exe
r := DiskFree(3); //获取C:可用空间
r := r/1024/1024/1024;
Str(r:0:2,s);
s := 'C盘可用空间是: ' + s + ' GB';
ShowMessage(s); //xx.xx GB
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Delphi 文件操作集锦Delphi 文件操作集锦时间:2011-5-26来源:yang 作者: peng点击: 11次Delphi 文件操作集锦unit Unit1; interface usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls; typeTForm1 = class(TForm)Button1: TButton;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end; varForm1: TForm1; implementationuses activex,comobj,shlobj;{$R *.dfm} function ResolveLink(const ALinkfile: String): String;varlink: IShellLink;storage: IPersistFile;filedata: TWin32FindData;buf: Array[0..MAX_PATH] of Char;widepath: WideString;beginOleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, link)); OleCheck(link.QueryInterface(IPersistFile, storage)); widepath := ALinkFile;Result := ‘unable to resolve link‘;If Succeeded(storage.Load(@widepath[1], STGM_READ)) ThenIf Succeeded(link.Resolve(GetActiveWindow,SLR_NOUPDATE)) ThenIf Succeeded(link.GetPath(buf, sizeof(buf), filedata, SLGP_UNCPRIORITY)) ThenResult := buf;storage := nil;link:= nil;end; // 用法:procedure TForm1.Button1Click(Sender: TObject);beginShowMessage(ResolveLink(‘C:\delphi 7.lnk‘));end; end. 2006-2-16 19:23:20发表评语&amp;raquo;&amp;raquo;&amp;raquo;2006-2-16 19:23:45 在Delphi中获取和修改文件的时间关键词:文件修改时间本文介绍了在Delphi中利用系统函数和Windows API函数调用来获取和修改文件的时间信息的方法。

熟悉Windows 95/98的朋友一定经常会用单击鼠标右键的方法来查看所选定的文件的属性信息。

在属性菜单中会列出该文件的创建时间、修改时间和访问时间。

这些信息常常是很有用的,它们的设置一般都是由操作系统(也就是由Dos/Windows等等)自动完成的,不会让用户轻易修改。

这里,我向大家介绍在Delphi中如何实现文件时间的获取和修改方法。

Delphi 中提供了很完备的Windows API函数的调用接口,可以方便的进行高级Windows编程。

利用Delphi中的FindFirst函数可以得到一个文件的属性记录,该记录中的FindData域中就记载了详细的文件时间信息。

然而遗憾的是,FindData中的时间信息是不能直接得到的。

因此,有人(编者按:很遗憾不知此人姓名)编写了一个转换函数来完成文件时间格式的转换。

下面给出了具体的实现方法,仅供参考:function CovFileDate(Fd:_FileTime):TDateTime;varTct:_SystemTime;Temp:_FileTime;beginFileTimeToLocalFileTime(Fd,Temp); FileTimeToSystemTime(Temp,Tct);CovFileDate:=SystemTimeToDateTime(Tct);end;有了上面的函数支持,我们就可以获取一个文件的时间信息了。

以下是一个简单的例子:procdeure GetFileTime(const Tf:string);{ 获取文件时间,Tf表示目标文件路径和名称}constModel=yyyy/mm/dd,hh:mm:ss; { 设定时间格式}varTp:TSearchRec; { 申明Tp为一个查找记录}T1,T2,T3:string;beginFindFirst(Tf,faAnyFile,Tp); { 查找目标文件}T1:=FormatDateTime(Model,CovFileDate(Tp.FindData.ftCreationTime)));T2:=FormatDateTime(Model,CovFileDate(Tp.FindData.ftLastWriteTime)));{ 返回文件的修改时间}T3:=FormatDateTime(Model,Now));{ 返回文件的当前访问时间}FindClose(Tp);end;设置文件的时间要复杂一些,这里介绍利用Delphi中的DataTimePicker组件来辅助完成这一复杂的操作。

下面的例子利用了四个DataTimePicker组件来完成文件创建时间和修改时间的设置。

注意:文件的访问时间用修改时间来代替。

使用下面的例子时,请在您的Form上添加四个DataTimePicker组件。

其中第一和第三个DataTimePicker 组件中的Kind设置为dtkDate,第二个和第四个DataTimePicker组件中的Kind设置为dtkTime. procedure SetFileDateTime(const Tf:string);{ 设置文件时间,Tf表示目标文件路径和名称}varDt1,Dt2:Integer;Fs:TFileStream;Fct,Flt:TFileTime;Dt1:=DateTimeToFileDate(Trunc(Form1.DateTimePicker1.Date) +Frac(Form1.DateTimePicker2.Time));Dt2:=DateTimeToFileDate(Trunc(Form1.DateTimePicker3.Date) +Frac(Form1.DateTimePicker4.Time));{ 转换用户输入在DataTimePicker中的信息}tryFS := TFileStream.Create(Tf, fmOpenReadWrite); tryif DosDateTimeToFileTime(LongRec(DT1).Hi, LongRec(DT1).Lo, Fct) and LocalFileTimeToFileTime(Fct, Fct) and DosDateTimeToFileTime(LongRec(DT2).Hi, LongRec(DT2).Lo, Flt) and LocalFileTimeToFileTime(Flt, Flt)then SetFileTime(FS.Handle,@Fct, @Flt, @Flt);{ 设置文件时间属性}finallyFS.Free;exceptMessageDlg(日期修改操作失败!,mtError, [mbOk], 0);{ 因为目标文件正在被使用等原因而导致失败}end;end;以上简单介绍了文件时间属性的修改方法,请注意:修改文件时间的范围是从公元1792年9月19日开始的,上限可以达到公元2999年或更高。

另外,请不要将此技术用于破坏他人文件等非正当途径。

2006-2-16 19:24:09 从快捷方式取得该快捷方式的指向文档关键词:快捷方式unit Unit1; interface usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls; typeTForm1 = class(TForm)Button1: TButton;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end; varForm1: TForm1; implementationuses activex,comobj,shlobj;{$R *.dfm} function ResolveLink(const ALinkfile: String): String;varlink: IShellLink;storage: IPersistFile;filedata: TWin32FindData;buf: Array[0..MAX_PATH] of Char;widepath: WideString;beginOleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, link)); OleCheck(link.QueryInterface(IPersistFile, storage)); widepath := ALinkFile;Result := ‘unable to resolve link‘;If Succeeded(storage.Load(@widepath[1], STGM_READ)) ThenIf Succeeded(link.Resolve(GetActiveWindow,SLR_NOUPDATE)) ThenIf Succeeded(link.GetPath(buf, sizeof(buf), filedata, SLGP_UNCPRIORITY)) ThenResult := buf;storage := nil;link:= nil;end; // 用法:procedure TForm1.Button1Click(Sender: TObject);beginShowMessage(ResolveLink(‘C:\delphi 7.lnk‘));end; 2006-2-16 19:24:44 修改文件的扩展名关键词:扩展名ChangeFileExtvarfilename:String;beginfilename := ‘abcd.html‘;filename := ChangeFileExt(filename, ‘‘);Edit1.Text:=filename;end; 2006-2-16 19:25:32 如何读写文本文件关键词:读写文本文件下面源代码或许对你有些帮助: Procedure NewTxt;VarF : Textfile;BeginAssignFile(F, ‘c:\ek.txt‘); {将文件名与变量F 关联} ReWrite(F); {创建一个新的文件并命名为ek.txt} Writeln(F, ‘将您要写入的文本写入到一个 .txt 文件‘); Closefile(F); {关闭文件F}End; Procedure OpenTxt;VarF : Textfile;BeginAssignFile(F, ‘c:\ek.txt‘); {将文件名与变量F 关联} Append(F); {以编辑方式打开文件F }Writeln(F, ‘将您要写入的文本写入到一个 .txt 文件‘); Closefile(F); {关闭文件F}End; Procedure ReadTxt;VarF : Textfile;str : String;BeginAssignFile(F, ‘c:\ek.txt‘); {将文件名与变量F 关联} Reset(F); {打开并读取文件F }Readln(F, str);ShowMessage(‘文件有:‘ +str + ‘行。

相关文档
最新文档