一个简单的问题(当局者迷) (20分)

  • 主题发起人 主题发起人 饼饼
  • 开始时间 开始时间

饼饼

Unregistered / Unconfirmed
GUEST, unregistred user!
var
F : textFile;
FileName, NewName : string;
s : string;

AssignFile(F,FileName);
Append(F);
writeln(F,s);
reName(F,NewName);
closeFile(F);
主要是在更名的时候出错!
可是老是报错,错误码为32。或是报102 (已设置信号灯且无法关闭。 )
 
你别用append() wirteln()试试,
 
主要是为了实现在一个文本中删除几行。采用将不删除的加入到一个临时文件,然后将原文件删除
,将临时文件命名为原文件名!
 
AssignFile(F,FileName);
Append(F);
writeln(F,s);
closeFile(F);
reNamefile(filename,NewName);
 
reName(F,NewName);
closeFile(F);
改为
closeFile(F);
reName(F,NewName);
试试
 
这样改报错误码为32。问题我自己在改的时候就存在了!希望各位再帮!
 
这样就行了:
procedure TForm1.Button3Click(Sender: TObject);
var
F : textFile;
FileName, NewName : string;
s : string;
begin
//s、FileName、NewName应该先赋值
s:='aaa';
FileName:='D:/ere1.txt';//改为你的文件名
NewName:='d:/ere2.txt';
AssignFile(F,FileName);
Append(F);
writeln(F,s);
closeFile(F);//关闭文件再改名
reName(F,NewName);
end;
还可以改成以下的方式:
procedure TForm1.Button2Click(Sender: TObject);
var
f: TextFile;
begin
if OpenDialog1.Execute then
begin
AssignFile(f, OpenDialog1.FileName);
Append(f);
Writeln(f, 'Append some stuff to the end of the file.');
CloseFile(f);
if SaveDialog1.Execute then
Rename(f, SaveDialog1.FileName);
end;
end;
 
var
F : textFile;
FileName, NewName : string;
s : string;
AssignFile(F,FileName);
if fileexists(FileName) then
append(f)
else
rewrite(f);
writeln(F,s);
closeFile(F);
reName(F,NewName);


writeln(filename,datetimetostr(now));
closefile(filename);
 
很感谢楼上的!
AssignFile(F,FileName);
reset(F);
AssignFIle(fTmp,NewFName);
rewrite(fTmp);
Append(fTmp);
while not Eof(F) do
begin
readln(F,sTmp);
if pos(key,sTmp) = 0 then
writeln(fTmp,sTmp);
if pos(key,sTmp) <> 0 then
begin
while pos(EndFlag,sTmp) = 0 do
readln(F,sTmp);
end;
end;
Flush(fTmp);
closefile(F);
CloseFile(fTmp);
rename(fTmp,sNTmp);
都成功

reName(F,'./file/sssss.txt');
报错! 错误码 23
 
问题已经找到!谢谢各位!
 
后退
顶部