File 如何在Delphi中创建文本文件

File 如何在Delphi中创建文本文件,file,delphi,createfile,File,Delphi,Createfile,我有一个程序,用户注册我的程序,并为他们创建一个文本文件。 我尝试过使用CreateFile函数,但不确定参数。当每个用户使用此功能或任何其他功能注册时,我如何为他们创建文本文件?也许您可以创建一个stringlist并将其保存到文件: procedure MakeAStringlistAndSaveThat; var MyText: TStringlist; begin MyText:= TStringlist.create; try MyText.Add('line 1'

我有一个程序,用户注册我的程序,并为他们创建一个文本文件。
我尝试过使用CreateFile函数,但不确定参数。当每个用户使用此功能或任何其他功能注册时,我如何为他们创建文本文件?

也许您可以创建一个stringlist并将其保存到文件:

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;

有几种方法可以将两行写入文本文件:

使用
t文件

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

const fn := 'out.txt';
var sl := TStringList.Create;
try
  sl.Add('Line1');
  sl.Add('Line2');
  sl.SaveToFile(fn);
finally
  sl.Free;
end;

最短答案:

FileCreate('filename.txt');
FileCreate
System.SysUtils
中声明,实际上是一个返回
THandle
的函数。(如果调用时不赋值,返回值将被丢弃。) 我只是展示了上面的代码,以显示敏捷性;大多数情况下,忽略返回值并不是很好的编程实践。特别是在这种情况下,你肯定会需要它进一步

如果调用未成功,则返回值为
无效\u HANDLE\u value
,否则它将保留新创建文件的文件句柄。 即使不需要立即使用该文件,也需要句柄:在调用
FileClose
函数释放句柄之前,无法访问该文件。因此,正确的最短答案变成

FileClose(FileCreate('filename.txt');

您可以在控制台应用程序中使用
TFileStream
,或
WriteLn
,或者
TStringList.SaveToFile
如果文件不是太大(低于几百兆)。这里有几十篇关于使用所有这些方法的帖子;进行一些搜索,并确定哪种方法最适合您的特定需求。对于简单的文本文件输出,通常不需要求助于低级API代码,如
CreateFile
。好的,如果您写入文本文件(而不是控制台),您也可以在非控制台应用程序中使用Writeln。但我会使用缓冲流和临时写手,或者像安德烈亚斯的回答一样,使用TStringList。@joel_kruger:如果它有效,那么你应该回答。