我想在文本文件头插入一行字符串string,应该用什么函数???????????我没有分了!!!!!只有这些!!!!高手进来看一看吧※※※※××× (5分)

  • 主题发起人 主题发起人 txyx
  • 开始时间 开始时间
这么简单的问题,
Reset(File);
Writeln(Str);
 
有没有搞错,这个方法不对啊!
 
rewrite(f1);
writeln(f1);
reset(f2);
blockread(f2);
blockwrite(f1);
 
没听说过有什么好办法. 除了
新建文件, 写字符串, 复制旧文件内容, 删除旧文件, 新文件改名为旧文件名.
 
Writeln(Str);是往文件后加一行
我有一个办法,有点苯,但肯定实用!

Memo1.Lines.LoadFromFile('文件名');
Memo1.Lines.Insert(0,'要加的字符串')
// 加在文件头
Memo1.Lines.SaveToFile('文件名');
 
function insertintofilehead(str:string;):string;
begin
try
memo1.Lines.LoadFromFile('文件名');
memo1.Lines.Insert(0,str)

memo1.Lines.SaveToFile('文件名');
except
begin
result :='open/write file error';
exit;
end;
end;
result := 'Ok';
end;
 
太夸张了,用到memo,不是浪费资源吗?
我有一个方法:
filehandle:=FileOpen('a.txt',fmOpenReadWrite);
FileSeek(FileHandle,0,0);
getmem(buffer,200);
try
strpcopy(buffer,str+#13#10);
Filewrite(Filehandle,buffer^,length(str));
finally
freemem(buffer);
end;
Fileclose(Filehandle);
但是它只是替换前面几个字符,而不是插入到它的前面,不知道在哪里错了
 
多人接受答案了。
 
可以试一下TMemoryStream,WriteBuf;
 
如果用tstring,tmemo 等,会被限制文件大小的,最大为64k,除非自己该控件
 
后退
顶部