Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.01.2020, 09:43
Vansha Vansha вне форума
Прохожий
 
Регистрация: 18.01.2018
Сообщения: 30
Версия Delphi: 7, XE5
Репутация: 10
По умолчанию Копия файла с новым именем

Здравствуйте.
Нужна помощь.
Как можно осуществить копирование файла, но с каждым разом с новым именем. Анализировала программа каждое имя и присваивала новое т.е. 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  
Старый 27.01.2020, 12:55
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Код:
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;
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.

Последний раз редактировалось dr. F.I.N., 27.01.2020 в 12:57.
Ответить с цитированием
  #3  
Старый 31.01.2020, 07:06
Vansha Vansha вне форума
Прохожий
 
Регистрация: 18.01.2018
Сообщения: 30
Версия Delphi: 7, XE5
Репутация: 10
По умолчанию

Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
i:=1;
while FileExists((Format('C:\test\копия\test%d.xls',[i]))) do inc(i);
CopyFile('С:\temp\test.xls', PAnsiChar(Format('C:\test\копия\test%d.xls',[i])), true);
end;

Рабочая версия.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:29.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter