![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте.
Нужна помощь. Как можно осуществить копирование файла, но с каждым разом с новым именем. Анализировала программа каждое имя и присваивала новое т.е. test1, test2, test3 и т.д. Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if CopyFile('C:\test\test.xls', 'D:\test\test1.xls', true) then
ShowMessage('файл скопирован.')
else
ShowMessage('ошибка копирования.');
end; |
|
#2
|
||||
|
||||
|
Код:
function MakeNewName(OldName: string): string;
var
i: Integer;
new_name, ext: string;
begin
ext := ExtractFileExt(OldName); // извлекаем расширение файла
new_name := Copy(OldName, 1, Length(OldName) - Length(ext)); // отделяем имя файла от расширения
i := 1;
Result := new_name + IntToStr(i) + ext; // формируем имя нового файла
while FileExists(Result) do // если файл с таким именем существует, то формируем новое
begin
Inc(i);
Result := new_name + IntToStr(i) + ext;
end;
end;В Вашем случае использовать как-то так: Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
...
file_for_copy := 'C:\test\test.xls';
if CopyFile(file_for_copy, MakeNewName(file_for_copy), true) then
ShowMessage('файл скопирован.')
else
ShowMessage('ошибка копирования.');
end;Последний раз редактировалось dr. F.I.N., 27.01.2020 в 12:57. |
|
#3
|
|||
|
|||
|
Цитата:
Рабочая версия. |