如何动态的打开文件和改变其属性?急(200分)

  • 主题发起人 主题发起人 wtb
  • 开始时间 开始时间
W

wtb

Unregistered / Unconfirmed
GUEST, unregistred user!


我把文本文件的路径和文件名存入数据库一个字符字段
DBEdit21.text:=OpenDialog1.FileName;
如何能在程序中打开和改变其属性?
象这样: Winexec('Notepad.exe E:/1212/jiz/a.txt',9);
FileSetAttr('E:/1212/jiz/a.txt', faReadOnly or faHidden);
可如何在程序中用 DBEdit21.text 代替 'E:/1212/jiz/a.txt'
实现动态的打开文件和改变其属性?
我如下写的都不行!
// FileSetAttr(DBEdit21.text, faReadOnly or faHidden);
// FileSetAttr(OpenDialog1.FileName, faReadOnly or faHidden);
// Winexec('Notepad.exe DBEdit21.text',9);
请指教!
 
pchar filename=pchar(dbedit21.text);
Winexec(filename,9);
FileSetAttr(filename, faReadOnly or faHidden);
 
注意PChar和String的区别。
FileSetAttr(PChar(DBEdit21.Text),faReadOnly or faHidden);
FileSetAttr(PChar(OpenDialog1.FileName,faReadOnly or faHidden);
WinExec(PChar('Notepad.exe'+DBEdit21.Text'),9)
 
FileSetAttr(PChar(OpenDialog1.FileName), faReadOnly or faHidden);
编译通不过,出现:
[Error] Unit13.pas(446): Operator not applicable to this operand type

WinExec(PChar('Notepad.exe'+DBEdit21.Text),9);
这一句好像没执行一样!
我错哪了?
帮我!!!!!!!!!!!
 
对不起,刚是顺手写的
filesetattr的第一个参数是string类型的
所以filesetattr(pchar.....)是错的
winexec的notepad.exe后是不是加个空格,notepad.exe是不是在search path.
再则参数9是什么?意义不明,建议用SW_SHOW等
 
9=SW_RESTORE
SetFileAttr是Delphi提供的函数。
WinExec是Windows的API函数。
FileSetAttr(DBEdit21.Text,faReadOnly or faHidden);
FileSetAttr(OpenDialog1.FileName,faReadOnly or faHidden);
WinExec(PChar('Notepad.exe '+DBEdit21.Text'),9)
 
FileSetAttr(DBEdit21.Text,faReadOnly or faHidden);
编译通不过,出现:
[Error] Unit13.pas(446): Operator not applicable to this operand type
能帮我试试么!
有其它方发么!
Winexec('Notepad.exe E:/1212/jiz/a.txt',9);
FileSetAttr('E:/1212/jiz/a.txt', faReadOnly or faHidden);
可以
 
我试
Winexec(PChar('Notepad.exe '+Edit1.Text),9);
FileSetAttr(Edit1.Text, faReadOnly or faHidden);
可以:)
你不行就这样。
var
TmpStr: String;
begin
TmpStr := DBEdit21.Text;
Winexec(PChar('Notepad.exe '+TmpStr),9);
FileSetAttr(TmpStr, faReadOnly or faHidden);
end;
 
多人接受答案了。
 
后退
顶部