Delphi - Не могу разобратся с savedialog
-
Njey
Delphi - Не могу разобратся с savedialog
В программе необходимо сделать возможность копирования файлов по средством savedialog.
Вот код:
If savedialog.Execute then CopyFile (
Pansichar(ExtractFilePath
(Application.ExeName)+'\pas.db'),
Pansichar(SaveDialog1.FileName),
false);
Проблема такая. Несмотря на то, что выделяю несколько файлов копируется всегда только один. Как нужно изменить код, чтобы можно было копировать несколько файлов, желательно любых расширений?
За ранее спасибо.
Вот код:
If savedialog.Execute then CopyFile (
Pansichar(ExtractFilePath
(Application.ExeName)+'\pas.db'),
Pansichar(SaveDialog1.FileName),
false);
Проблема такая. Несмотря на то, что выделяю несколько файлов копируется всегда только один. Как нужно изменить код, чтобы можно было копировать несколько файлов, желательно любых расширений?
За ранее спасибо.
-
DillerInc
Re: Delphi - Не могу разобратся с savedialog
Njey, нужно больше конкретики: что,куда...
А так я думаю,что это связано с необходимостью использования флага OFN_ALLOWMULTISELECT в структуре OPENFILENAME.Это всё про WinAPI.Придумайте,как это можно применить к Дельфям.
А так я думаю,что это связано с необходимостью использования флага OFN_ALLOWMULTISELECT в структуре OPENFILENAME.Это всё про WinAPI.Придумайте,как это можно применить к Дельфям.
-
DillerInc
Re: Delphi - Не могу разобратся с savedialog
Здадача такая. В корневой папке программы лежат следующие файлы:
pas.db
pas.px
pas.val
tepl.db
tepl.px
tepl.val
Необходимо из программы нужные пользователю файлы (те которые он выберет) скопировать в любую директорию которую выберет пользователь.
pas.db
pas.px
pas.val
tepl.db
tepl.px
tepl.val
Необходимо из программы нужные пользователю файлы (те которые он выберет) скопировать в любую директорию которую выберет пользователь.
-
DillerInc
Re: Delphi - Не могу разобратся с savedialog
Задача,значит такая.Берёшь какой-нибудь материал по этой теме и начинаешь зубрить.Тем более,что я сказал в первом своём посте,в какую сторону нужно копать.И потом говоришь,что конкретно не получается.
Вот нашёл у себя небольшой исходник большой давности.Прикладываю.Как раз по этой теме,но там я не использовал сохранение файлов,только открытие.Т.к. дело было давно,то код далёк от идеального.И там НЕ используется VCL.
Вот нашёл у себя небольшой исходник большой давности.Прикладываю.Как раз по этой теме,но там я не использовал сохранение файлов,только открытие.Т.к. дело было давно,то код далёк от идеального.И там НЕ используется VCL.
- Вложения
-
zip000
Re: Delphi - Не могу разобратся с savedialog
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;-
Njey
Re: Delphi - Не могу разобратся с savedialog
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), false);
в таком виде таблица pas.db просто копируется под разными именами.
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), false);
в таком виде таблица pas.db просто копируется под разными именами.
-
zip000
Re: Delphi - Не могу разобратся с savedialog
Цитата Njey:
в таком виде таблица pas.db просто копируется под разными именами.
ну что вы написали в 1 посте, то и получили. Смысл сего довльно прост : когда вы выбираете в SaveDialog несколько файлов, количество выбранных файлов храниться в SaveDialog.Files.Count, а доступ к конкретному имени файла осуществляется так SaveDialog.Files[НОМЕР_ФАЙЛА_В_СПИСКЕ_ВЫБРАННЫХ].
в таком виде таблица pas.db просто копируется под разными именами.
Delphi - Не могу разобратся с savedialog
ну что вы написали в 1 посте, то и получили. Смысл сего довльно прост : когда вы выбираете в SaveDialog несколько файлов, количество выбранных файлов храниться в SaveDialog.Files.Count, а доступ к конкретному имени файла осуществляется так SaveDialog.Files[НОМЕР_ФАЙЛА_В_СПИСКЕ_ВЫБРАННЫХ].
-
Njey
Re: Delphi - Не могу разобратся с savedialog
Цитата zip000:
к конкретному имени файла
осуществляется так
SaveDialog.Files
[НОМЕР_ФАЙЛА_В_СПИСКЕ_ВЫ
БРАННЫХ].
--------
var i : Integer;...................................... if
SaveDialog1 .Execute then for i :=
0 to SaveDialog1 .Files.Count - 1
do begin CopyFile
(ИСХОДНЫЙ_ФАЙЛ, Pansichar
(SaveDialog1.Files), 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), false); end;
ток теперь вобще копирования не происходит.
к конкретному имени файла
осуществляется так
SaveDialog.Files
[НОМЕР_ФАЙЛА_В_СПИСКЕ_ВЫ
БРАННЫХ].
--------
var i : Integer;...................................... if
SaveDialog1 .Execute then for i :=
0 to SaveDialog1 .Files.Count - 1
do begin CopyFile
(ИСХОДНЫЙ_ФАЙЛ, Pansichar
(SaveDialog1.Files), 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), false); end;
ток теперь вобще копирования не происходит.
-
detrin
Re: Delphi - Не могу разобратся с savedialog
Цитата Njey:
Необходимо из программы нужные пользователю файлы (те которые он выберет) скопировать в любую директорию которую выберет пользователь.
Что-то не совсем понятно, как вы с помощью только одного Savedialog хотите запомнить нужные файлы и папку куда их копировать? Я так понял ни список файлов заранее не известен, ни папка в которую нужно копировать эти файлы.
Необходимо из программы нужные пользователю файлы (те которые он выберет) скопировать в любую директорию которую выберет пользователь.
Delphi - Не могу разобратся с savedialog
Что-то не совсем понятно, как вы с помощью только одного Savedialog хотите запомнить нужные файлы и папку куда их копировать? Я так понял ни список файлов заранее не известен, ни папка в которую нужно копировать эти файлы.
-
Njey
Re: Delphi - Не могу разобратся с savedialog
Detrin в идеале да, список файлов не известен. Вернее он ограничен списком файлов лежащих в директории программы. У меня мало опыта в программирововании, поэтому пытаюсь упростить задачу. Думаю сделать сохранение по определенным комбинациям файлов. Вот тока не совсем получается. Посмотрите предидущий пост. В чем моя ошибка?