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を使用してディレクトリとファイルを作成すると思いますか?等...

だから私の結論はそれを自動化することでした。

手伝ってくれませんか?

あなたが見ることができるように小さな画像:

ファイルとフォルダの作成を自動化

4

2 に答える 2

3

プログラムとButtonClickイベントで質問を正しく理解していれば、これは

  1. メモ行1に従って、ファイル名を使用してアプリケーションディレクトリに空のテキストファイルを作成します。
  2. メモ行2に従って、編集ごとに「ベースディレクトリ」にフォルダを作成します
  3. フォルダを作成し、メモ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;

明らかに、パスが有効であるかどうか、ファイル/ディレクトリが作成されているかどうかなどを判断するために、かなり多くのエラーチェックが必要です。

于 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

EDIT2:

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

Edit Controlの名前がEdit1で、ベースパスがあり、TMemoの最初の行にファイル名がある場合。必要なもう1つのビットは、ですEvent。つまり、TMemoインスタンスをダブルクリックすると、ファイルを保存するためのカスケードが開始されるイベントになります。

ご覧のとおり、これは非常に簡単であり、SaveDialogなど、さらに簡単にする方法が他にもあります。しかし、これがあなたの質問に答えることを願っています。

于 2012-10-23T01:57:32.637 に答える