用tinifile读取文件出错,谁帮看看(50分)

  • 主题发起人 主题发起人 bill_max
  • 开始时间 开始时间
B

bill_max

Unregistered / Unconfirmed
GUEST, unregistred user!
我想从INI文件中读2个参数,来实现文件拷贝,一个参数是源文件名,一个参数是目的文件夹,但问题是读出来的2个参数都是空的,是哪里错了?下面是全部源代码,和INI文件的内容。


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,inifiles;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function autoCOPY():boolean;
var
str1:string;
str2:string;
pstr1:pAnsiChar;
pstr2:pAnsiChar;
inifile:tinifile;
fileStr:string;
tagFileName:string;
begin
tagFileName := 'aaa.jpg' ;
try
//读入2个字串:源文件名, 目的文件夹
inifile := tinifile.Create('d:/autoCopy.ini');
inifile.ReadString('srcFile','file',str1);
inifile.ReadString('tagDir','dir',str2);

// str1:= 'd:/autocopy.ini';
// str2:= 'd:/';
form1.Edit2.Text := str1;
form1.edit3.text := str2;
str2:= str2 + tagFileName;
form1.Edit4.Text :=str2;
pstr1:=pAnsiChar(str1);
pstr2:=pAnsiChar(str2);
//拷贝文件
if copyfile(pstr1,pstr2,false) then
result:=true
else
result:=false;
finally
inifile.Free ;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if autocopy() then
edit1.Text := 'succed'
else
edit1.Text := 'false';


end;

end.



INI 文件的内容 :

[srcFile]
file=C:/Documents and Settings/Administrator/My Documents/未命名站点 1/xml/images/body_main_header.gif
[tagDir]
dir=d:/
 
inifile := tinifile.Create('d:/autoCopy.ini');
inifile.ReadString('srcFile',[red]'file'[/red],str1);
inifile.ReadString('tagDir',[red]'dir'[/red],str2);
第一,不要用红色的变量;
第二、在做以上操作前对str1,str2赋空字符串;
第三、你上面的写法不对;应该这样
str1:='';
str2:='';
str1:=inifile.ReadString('srcFile','file','');
str2:=inifile.ReadString('tagDir','dir','');
if (str1='') or (str2='') then
showmessage('读文件错误');
第四、就快给分吧!
 
inifile.ReadString('srcFile','file',str1);
inifile.ReadString('tagDir','dir',str2);
上面的代码不对。
 
多人接受答案了。
 
后退
顶部