в XE5. Я создал приложение, в котором по умолчанию загружается небольшая txt файл с несколькими строками с использованием функции OnShow. Также есть 1 TEdit1 Поле со значением по умолчанию = и TButton для сохранения файла в определенном каталоге.Используйте поле TEdit, чтобы указать количество сгенерированных файлов.
Как можно: 1.) используя значение в поле TEdit1 для получения этого количества файлов в указанном каталоге, при необходимости значение может быть изменено; 2.) все сгенерированные файлы должны быть как: 1.txt, 2.txt, 3.txt ... и т.д.
Теперь кнопки несильно является:
procedure TForm1.GenerateClick(Sender: TObject);
var
dirName : String;
begin
// Create a new directory
dirName := 'gen';
if DirectoryExists(dirName)
then
Memo1.Lines.SaveToFile('gen\default.txt')
else
CreateDir(dirName);
Memo1.Lines.SaveToFile('gen\default.txt');
end;
С наилучшими пожеланиями, G
весь рабочий код:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IOUtils, Vcl.ComCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
SaveFile: TButton;
Generate: TButton;
Memo1: TMemo;
procedure LoadFile(Sender: TObject);
procedure SaveFileClick(Sender: TObject);
procedure GenerateClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.LoadFile(Sender: TObject);
begin
if FileExists('template.txt')then begin
Memo1.Lines.LoadFromFile('template.txt');
end
else
ShowMessage('Cant find template.txt, add text and use SAVE button !!!');
end;
procedure TForm1.SaveFileClick(Sender: TObject);
begin
Memo1.Lines.SaveToFile('template.txt');
end;
procedure TForm1.GenerateClick(Sender: TObject);
var
dirName, fName : String;
i, max: integer;
begin
// Create a new directory
dirName := 'gen';
if NOT DirectoryExists(dirName) then
CreateDir(dirName);
fName := Edit1.Text;
max := StrToInt(fName);
for i := 1 to max do begin
fName := dirName + '\'+ IntToStr(i) + '.txt';
Memo1.Lines.SaveToFile(fName);
end;
end;
end.
Спасибо :)
Почему вы повторяете OPself? 'if not direxists then createdir;' –
@Free. Чтобы указать, как неправильно отпечаток кода может вызвать ошибки («SaveToFile» фактически находится за пределами «if»). –
Знаете ли вы с ForceDirectories (dirName); вы просто получите ошибку, которая не может создать каталог. – Goaul