我是Delphi的新手,我是法国用户,对我糟糕的英语感到抱歉......
因此可以创建一个用 TMemo 编写的文件吗?
test.txt
dir1/dir2/text.txt
dir3/
我的TMemo有3行,所以我想拿第一行并在当前目录中创建 test.txt 文件。
2nd line: create a folder
3rd line: create a folder again+files.txt
etc ...
我认为使用mkdir或ForceDirectories来创建目录和文件?等...
所以我的结论是自动化它。
你可以帮我吗?
一张小图片,你可以看到:
答案 0 :(得分:3)
使用Program和on ButtonClick事件 如果我正确理解了这个问题,那么
procedure TForm1.Button1Click(Sender: TObject);
var
Path: String;
F: TextFile;
begin
// Create File in current directory
Path := ExtractFilePath(ParamStr(0)) + Memo1.Lines.Strings[0];
if not FileExists(Path) then
begin
AssignFile(F, Path);
Rewrite(F);
//Writeln(F, 'text to write to file');
CloseFile(F);
end;
// Create Directories
Path := IncludeTrailingPathDelimiter(edPath.Text) + Memo1.Lines.Strings[1];
if not DirectoryExists(Path) then
ForceDirectories(Path);
// Create Directory and File
Path := IncludeTrailingPathDelimiter(edPath.Text) + Memo1.Lines.Strings[2];
if not DirectoryExists(ExtractFilePath(Path)) then
ForceDirectories(ExtractFilePath(Path));
if not FileExists(Path) then
begin
AssignFile(F, Path);
Rewrite(F);
//Writeln(F, 'text to write to file');
CloseFile(F);
end;
end;
显然需要更多的错误检查确定路径是否有效以及文件/目录是否已创建等...
答案 1 :(得分:0)
编辑:浏览器中的代码,所以不知道它是否有效但是真的很简单。
如果要在保存数据之前显示数据,则应该只使用TMemo,因为可视控件的任务是显示某些内容。但是如果你只想使用TMemo的Items propery来收集字符串然后将它们保存到文件中,你应该使用TStringList:
var
i: Integer;
sl: TStringList;
begin
sl := TStringList.Create;
try
for i := 0 to Memo1.Lines.Count-1 do
sl.Add(Memo1.Lines[i]);
sl.SaveToFile(sl[1]);
finally
sl.free;
end;
end;
您可能也喜欢这个主题:http://www.tek-tips.com/viewthread.cfm?qid=678231
EDIT2:
Memo1.Lines.SaveToFile(edit1.text + Memo1.Lines[0]);
如果编辑控件名为Edit1并且具有基本路径,则TMemo的第一行具有文件名。您需要的另一个位是Event
,我的意思是,如果您双击TMemo实例,它将是启动级联以保存文件的事件。
如您所见,它非常简单,还有其他方法,如SaveDialog,可以让它更容易。但希望这能回答你的问题。