|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.02.2008, 18:28 | #1 |
Новичок
Джуниор
Регистрация: 12.02.2008
Сообщений: 2
|
копирование текстовых файлов
Доброе время суток, форумчане.
Все текстовые файлы *.txt переписываются из одного каталога в другой. Допустим, в каталоге-приёмнике уже есть несколько текстовых файлов с такими же именами, как в каталоге исходнике. Для запроса на перезапись использовал функцию MessageDlg (только кнопки Yes и No для 1 файла). Как сделать так, чтобы Delphi по нажатию кнопки YesToAll делала перезапись сразу всех файлов, а по нажатию NoToAll - создавала новые файлы с именем типа копия+имя исходного файла? Заранее спасибо. |
14.02.2008, 19:23 | #2 |
Форумчанин
Регистрация: 10.05.2007
Сообщений: 117
|
для одного файла
Код:
Задачи на заказ
Блажен тот, кто ничего не знает: он не рискует быть не понятым. |
16.02.2008, 16:49 | #3 |
Новичок
Джуниор
Регистрация: 12.02.2008
Сообщений: 2
|
В программе не используются TMemo или TOpenDialog.
Компоненты: DriveComboBox1, DriveComboBox2, DirectoryListBox1, DirectoryListBox2, FileListBox1, FileListBox2, Button1. Исходник: procedure Copy_File(name_of_file:string; source_dir, dest_dir:string); var tmp:TStringList; begin tmp:=TStringList.Create; tmp.LoadFromFile(source_dir+'\'+nam e_of_file); tmp.SaveToFile(dest_dir+'\'+name_of _file); tmp.Free; end; procedure TForm1.DriveComboBox1Change(Sender: TObject); begin DirectoryListBox1.Drive:=DriveCombo Box1.Drive; end; procedure TForm1.DirectoryListBox1Change(Send er: TObject); begin FileListBox1.Directory:=DirectoryLi stBox1.Directory; FileListBox1.Drive:=DriveComboBox1. Drive; end; procedure TForm1.DriveComboBox2Change(Sender: TObject); begin DirectoryListBox2.Drive:=DriveCombo Box2.Drive; end; procedure TForm1.DirectoryListBox2Change(Send er: TObject); begin FileListBox2.Directory:=DirectoryLi stBox2.Directory; FileListBox2.Drive:=DriveComboBox2. Drive; end; procedure TForm1.Button1Click(Sender: TObject); var sr:TSearchRec; begin if FindFirst(FileListBox1.Directory+'\ '+’*.txt’, faAnyFile,sr)=0 then begin repeat if FileExists(FileListBox2.Directory+' \'+sr.Name) then begin if MessageDlg('Файл '+sr. Name+ ' уже существует.Перезаписать его?', mtConfirmation,[mbYes, mbNo],0)=mrYes then Copy_File(sr.Name, FileListBox1.Directory, FileListBox2.Directory) else Copy_File('Копия '+sr.Name, FileListBox1.Directory, FileListBox2.Directory); end else Copy_File (sr.Name, FileListBox1.Directory, FileListBox2.Directory); FileListBox2.Update; until FindNext(sr)<>0; end; FindClose(sr); end; |
16.02.2008, 20:06 | #4 |
Участник клуба
Регистрация: 30.04.2007
Сообщений: 1,307
|
FileExists(FileName) - проверка
CopyFile(OldFile,NewFile,Replace) - копирование OldFile - прежнее расположение NewFile - новое расположение Replace - (True,False) разрешить/запретить замену если файл сушествует. Юзай!
Всё гениальное - просто!
|
16.02.2008, 20:29 | #5 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Открываем хэлп и изучаем 2 функции для копирования файлов:
1. CopyFile(LPCTSTR lpszExistingFile, LPCTSTR lpszNewFile, BOOL fFailIfExists) 2. CopyFileEx( LPCWSTR lpExistingFileName, // pointer to name of an existing file LPCWSTR lpNewFileName, // pointer to filename to copy to LPPROGRESS_ROUTINE lpProgressRoutine, // pointer to the callback function LPVOID lpData, // to be passed to the callback function LPBOOL pbCancel, // flag that can be used to cancel the operation DWORD dwCopyFlags // flags that specify how the file is copied ); Все варианты в них предусмотрены. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выбор компонента для работы с содержимым текстовых файлов[Delphi] | sergey31 | Помощь студентам | 2 | 28.08.2008 16:53 |
как загрузить в ListBox несколько текстовых файлов? | One.Love | Общие вопросы Delphi | 5 | 14.01.2008 11:54 |
Слияние двух текстовых файлов | nataly_ukr | Общие вопросы Delphi | 5 | 26.12.2007 16:45 |
копирование файлов | matus | Общие вопросы Delphi | 2 | 07.11.2007 21:57 |
Сравнение текстовых файлов | BR17UY | Общие вопросы Delphi | 15 | 07.05.2007 20:18 |