我有一个程序,用户在我的程序中注册后会创建一个文本文件。我尝试使用CreateFile函数,但不确定参数该如何设置。我应该如何使用这个或其他函数为每个用户创建一个文本文件?
我有一个程序,用户在我的程序中注册后会创建一个文本文件。我尝试使用CreateFile函数,但不确定参数该如何设置。我应该如何使用这个或其他函数为每个用户创建一个文本文件?
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;
有几种方法可以将两行写入文本文件:
使用 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
:
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
的函数。(当您在调用时不进行赋值时,返回值将被简单地丢弃。)INVALID_HANDLE_VALUE
,否则它保存了新创建文件的文件句柄。即使您不需要立即使用该文件,您也需要该句柄:在调用FileClose
函数释放句柄之前,该文件将无法访问。因此,最合适的最短答案变成了:FileClose(FileCreate('filename.txt');
begin
AssignFile(TFReceipt,'Receipt.TXT');
redtEReceiptBod.Lines.SaveToFile('Receipt.TXT');
Showmessage('Receipt generated');
end;
它将任何字符串的内容放入文件中。 为了使文件可读(删除分页符号如/par),您可以将Rich Edit(或任何其他字符串容器)的属性更改为 RichEdit.plaintext:=true; 这将删除所有不必要的分页内容。
警告 请记住,这是我高中项目的一部分,因此它并不是非常复杂,并且可能在所有情况下都无法正常工作。
TFileStream
,或者在控制台应用程序中使用WriteLn
,或者如果文件不太大(几百兆以下),可以使用TStringList.SaveToFile
。这里有很多关于使用这些方法的现有帖子;搜索一下并决定哪种方法最适合你的特定需求。通常情况下,不需要使用低级API代码(如CreateFile
)来进行简单的文本文件输出。 - Ken White