备注并创建文件和文件夹?

时间:2012-10-22 01:26:20

标签: delphi tmemo

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

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

你可以帮我吗?

一张小图片,你可以看到:

Automate create files&folder

2 个答案:

答案 0 :(得分:3)

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

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

    BasicAppExample

    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,可以让它更容易。但希望这能回答你的问题。