Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Не могу разобратся с savedialog

Ответить
Настройки темы
Delphi - Не могу разобратся с savedialog

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


В программе необходимо сделать возможность копирования файлов по средством savedialog.
Вот код:
If savedialog.Execute then CopyFile (
Pansichar(ExtractFilePath
(Application.ExeName)+'\pas.db'),
Pansichar(SaveDialog1.FileName),
false);
Проблема такая. Несмотря на то, что выделяю несколько файлов копируется всегда только один. Как нужно изменить код, чтобы можно было копировать несколько файлов, желательно любых расширений?
За ранее спасибо.

Отправлено: 09:48, 10-03-2008

 

Аватара для DillerInc

Обратный инженер


Сообщения: 644
Благодарности: 47

Профиль | Отправить PM | Цитировать


Njey, нужно больше конкретики: что,куда...
А так я думаю,что это связано с необходимостью использования флага OFN_ALLOWMULTISELECT в структуре OPENFILENAME.Это всё про WinAPI.Придумайте,как это можно применить к Дельфям.

-------
То,что неясно,следует выяснить.То,что трудно творить,следует делать с великой настойчивостью. © Конфуций


Отправлено: 20:27, 11-03-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здадача такая. В корневой папке программы лежат следующие файлы:
pas.db
pas.px
pas.val
tepl.db
tepl.px
tepl.val
Необходимо из программы нужные пользователю файлы (те которые он выберет) скопировать в любую директорию которую выберет пользователь.

Отправлено: 06:31, 12-03-2008 | #3


Аватара для DillerInc

Обратный инженер


Сообщения: 644
Благодарности: 47

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar OpenMulti.rar
(11.1 Kb, 9 просмотров)

Задача,значит такая.Берёшь какой-нибудь материал по этой теме и начинаешь зубрить.Тем более,что я сказал в первом своём посте,в какую сторону нужно копать.И потом говоришь,что конкретно не получается.

Вот нашёл у себя небольшой исходник большой давности.Прикладываю.Как раз по этой теме,но там я не использовал сохранение файлов,только открытие.Т.к. дело было давно,то код далёк от идеального.И там НЕ используется VCL.

-------
То,что неясно,следует выяснить.То,что трудно творить,следует делать с великой настойчивостью. © Конфуций


Отправлено: 18:01, 12-03-2008 | #4


Аватара для zip000

Техноманьяк


Сообщения: 1146
Благодарности: 184

Профиль | Отправить PM | Цитировать


Njey, все просто
Код: Выделить весь код
var
  i : Integer;
......................................
  if SaveDialog1.Execute then
    for i := 0 to SaveDialog1.Files.Count - 1 do begin
      CopyFile (ИСХОДНЫЙ_ФАЙЛ, Pansichar(SaveDialog1.Files[i]), false);
    end;

-------
Глючит - значит существует. (с) Билл Гейтс


Отправлено: 22:08, 12-03-2008 | #5


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Zip000, к сожалению не просто.
var i : Integer;

if
SaveDialog1 .Execute then for i :=
0 to SaveDialog1 .Files.Count - 1
do
begin
CopyFile
(Pansichar(extractfilepatch( Application.ExeNAME)+'\pas.db'),
Pansichar
(SaveDialog1.Files[i]), false);
в таком виде таблица pas.db просто копируется под разными именами.

Отправлено: 08:11, 13-03-2008 | #6


Аватара для zip000

Техноманьяк


Сообщения: 1146
Благодарности: 184

Профиль | Отправить PM | Цитировать


Цитата Njey:
в таком виде таблица pas.db просто копируется под разными именами. »
ну что вы написали в 1 посте, то и получили. Смысл сего довльно прост : когда вы выбираете в SaveDialog несколько файлов, количество выбранных файлов храниться в SaveDialog.Files.Count, а доступ к конкретному имени файла осуществляется так SaveDialog.Files[НОМЕР_ФАЙЛА_В_СПИСКЕ_ВЫБРАННЫХ].

-------
Глючит - значит существует. (с) Билл Гейтс


Отправлено: 15:48, 13-03-2008 | #7


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата zip000:
к конкретному имени файла
осуществляется так
SaveDialog.Files
[НОМЕР_ФАЙЛА_В_СПИСКЕ_ВЫ
БРАННЫХ].

--------
var i : Integer;...................................... if
SaveDialog1 .Execute then for i :=
0 to SaveDialog1 .Files.Count - 1
do begin CopyFile
(ИСХОДНЫЙ_ФАЙЛ, Pansichar
(SaveDialog1.Files[i]), false); end;

-----------

Значит в место ИСХОДНЫЙ_ФАЙЛ мне нужно подставлять все исходные файлы?
Типа так:
const
afilename : array[1..2] of string=('pas.db', 'pas.px');
var i : Integer;
afilename : array[1..2] of string=('pas.db', 'pas.px');
if
SaveDialog1 .Execute then
begin
for i :=
0 to SaveDialog1 .Files.Count - 1 do
CopyFile
(PansiChar ('afilename'), Pansichar
(SaveDialog1.Files[i]), false); end;
ток теперь вобще копирования не происходит.

Отправлено: 09:16, 14-03-2008 | #8


Аватара для detrin

Ветеран


Сообщения: 540
Благодарности: 42

Профиль | Отправить PM | Цитировать


Цитата Njey:
Необходимо из программы нужные пользователю файлы (те которые он выберет) скопировать в любую директорию которую выберет пользователь. »
Что-то не совсем понятно, как вы с помощью только одного Savedialog хотите запомнить нужные файлы и папку куда их копировать? Я так понял ни список файлов заранее не известен, ни папка в которую нужно копировать эти файлы.

-------
Лучше ничего не делать, чем делать ничего.


Отправлено: 20:27, 14-03-2008 | #9


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Detrin в идеале да, список файлов не известен. Вернее он ограничен списком файлов лежащих в директории программы. У меня мало опыта в программирововании, поэтому пытаюсь упростить задачу. Думаю сделать сохранение по определенным комбинациям файлов. Вот тока не совсем получается. Посмотрите предидущий пост. В чем моя ошибка?

Отправлено: 11:44, 15-03-2008 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Не могу разобратся с savedialog

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Принтер - не могу разобратся с подачей бумаги на canon mp630 ZGG Прочее железо 6 12-11-2009 11:10
PowerShell - [решено] Не могу разобратся с Convertto-html glazemir Скриптовые языки администрирования Windows 3 26-06-2009 08:26
Помагите разобратся!!!!! MIXAA Ноутбуки 3 13-04-2008 14:23
Delphi - Delphi, savedialog.options Roman Go Программирование и базы данных 5 23-07-2004 23:56




 
Переход