我有一个程序,用户在其中注册我的程序,并为他们创建一个文本文件。 我尝试使用CreateFile函数,但不确定参数。当每个用户使用此功能或其他任何功能注册时,如何为他们创建文本文件?
答案 0 :(得分:2)
也许您可以创建一个字符串列表并将其保存到文件:
procedure MakeAStringlistAndSaveThat;
var
MyText: TStringlist;
begin
MyText:= TStringlist.create;
try
MyText.Add('line 1');
MyText.Add('line 2');
MyText.SaveToFile('c:\folder\filename.txt');
finally
MyText.Free
end; {try}
end;
答案 1 :(得分:2)
有两种方法可以将两行写入文本文件:
使用TFile
:
fn := 'out.txt';
// method 1
TFile.WriteAllLines(fn, ['Line1','Line2']);
// method 2
TFile.WriteAllText(fn, 'Line1'+sLineBreak+'Line2');
// method 3
TFile.WriteAllText(fn, 'Line1');
TFile.AppendAllText(fn, sLineBreak);
TFile.AppendAllText(fn, 'Line2');
使用TStringList
:
fn := 'out.txt';
sl := TStringList.Create;
try
Add('Line1');
Add('Line2');
WriteToFile(fn);
finally
sl.Free;
end;
答案 2 :(得分:1)
可能有最短的答案
FileCreate('filename.txt');
FileCreate
在System.SysUtils
中声明,实际上是一个返回THandle
的函数。 (当您未在调用时分配返回值时,该返回值将被简单地丢弃。)
我只是为了使上面的代码显示上面的代码;在大多数情况下,忽略返回值并不是一种好的编程习惯。特别是在这种情况下,您肯定会进一步需要它。
如果调用不成功,则返回值为INVALID_HANDLE_VALUE
,否则它将保存新创建文件的文件句柄。
即使您不需要立即使用该文件,也将需要该句柄:只有通过调用FileClose
函数释放该句柄后,该文件才可访问。因此,适当最短答案变为
FileClose(FileCreate('filename.txt');