delphi打开文件的各种方法?

来源:百度知道 编辑:UC知道 时间:2024/07/07 10:43:15
目前发现有两种方法:

方法1,定义一个文件变量F,assign(F,fileName);reset(F,1);

方法2,定义一个文件句柄,fHandle,
fHandle:=FlieOpen(fileName,fmReadandWrite);

我的问题是,两种方法都可以读、写文件,而且两种方法的实现各种功能的函数和过程名称很类似,如seek(),fileseek();fileopen(),openfile();好像就非把你搞头晕一样。那为什么还要搞两种方法?他们有什么区别?

肯定有区别,只是我研究的不深。

第一种方法,使用SelectDirectory 函数 ,在ShellApi中
  procedure TForm2.BtSelectPathClick(Sender: TObject);
var
strCaption,strDirectory:String;
wstrRoot:WideString;
begin
strCaption:='这是浏览文件夹的说明文字,可以根据需要进行书写。'
+#13#10+'一般二行文字就满了。';
//该参数是浏览文件夹窗口的显示说明部分
wstrRoot:='';
//这个参数表示所显示的浏览文件夹窗口中的根目录,默认或空表示“我的电脑”。
SelectDirectory(strCaption,wstrRoot,strDirectory);
EdLocalPath.Text:=strDirectory;
end;
  
  第二种方法
  要求:利用Win32 API SHBrowseForFolder开启一个选择文件目录的对话框,预先定位到默认的目录,最后返回所选择的结果,如果没有进行选择(即单击“取消”结束选择)则返回空''。
代码如下:(以下两个函数定义需要在uses中引入两个单元ShlObj,Windows;)
function BrowseCallbackProc(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer stdcall;
begin
case uMsg of
BFFM_INITIALIZED: SendMessage(Wnd, BFFM_SETSELECTION, 1, lpData);
end;
Result := 0;
end;
  function BrowsFolder(const Folder: string): string;