1

我是 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 来创建目录和文件?ETC...

所以我的结论是自动化它。

你能帮帮我吗?

一个小图像,所以你可以看到:

自动创建文件和文件夹

4

2 回答 2

3

使用 Program 和 ButtonClick 事件如果我正确理解了这个问题,这将

  1. 在应用程序目录中创建一个空文本文件,其文件名与备注行 1 一致
  2. 根据备忘录第 2 行和编辑在“基本目录”中创建文件夹
  3. 在“基本目录”中再次按照备忘录第 3 行创建一个文件夹并清空 TextFile

基本应用示例

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;

显然需要更多的错误检查来确定路径是否有效以及创建的文件/目录等......

于 2012-10-23T06:05:29.123 回答
0

编辑:浏览器中的代码所以不知道它是否有效,但确实是一件简单的事情。

如果您想在保存数据之前显示数据,则应该只使用 TMemo,因为可视化控件的任务是显示某些内容。但是,如果您只想使用 TMemo 的 Items 属性来收集字符串,然后将它们保存到文件中,您应该使用 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

编辑2:

Memo1.Lines.SaveToFile(edit1.text + Memo1.Lines[0]);

假设 Edit Control 名为 Edit1 并具有您的基本路径,并且 TMemo 的第一行具有文件名。您需要的另一位是一个Event,我的意思是如果您双击您的 TMemo 实例,它将是启动级联以保存文件的事件。

如您所见,它非常简单,还有其他方法,例如 SaveDialog 可以使它更容易。但希望这能回答你的问题。

于 2012-10-23T01:57:32.637 回答