Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 10.02.2019, 22:48   #1
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 37
Репутация: 10
По умолчанию Вставка файлы через SaveDialog

Здравствуйте, хочу скопировать файл:
Код:

procedure TForm1.btn2Click(Sender: TObject);
var
 FName : string;
begin
  if SaveDialog1.Execute then
  begin
  FName := SaveDialog1.FileName;
  ShowMessage('Выбранный каталог = '+FName);
  CopyFile(Pchar('data.ini'), Pchar(FName), True);
end;

В ShowMessage катулог и имя файла выводится верно, но ничего не копируется.
Подскажите пожалуйста, что не так?
Alex711 вне форума   Ответить с цитированием
Старый 10.02.2019, 23:32   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,605
Репутация: 6561
По умолчанию

У тебя SaveDialog скорее всего изменил рабочий каталог и data.ini не находит. У диалога где-то в опциях есть возможность избежать изменение рабочего каталога
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 10.02.2019, 23:50   #3
Вадим Мошев

Заслуженный модератор
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Адрес: Адрес: Адрес: Адрес: Адрес: Адрес: Адрес: Адрес: Адрес:
Сообщений: 8,060
Репутация: 3966
По умолчанию

Вообще, я помню на этом форуме мне советовали забыть про абсолютные пути и всегда дополнять их до полных. Путь к текущему каталогу можно получать так:
Код:

pathToCurrentDirectory:=extractFilePath( application.exeName );

После этого полученным путём предварять относительные пути. В вашем случае
Код:

CopyFile(Pchar( pathToCurrentDirectory + 'data.ini' ), Pchar(FName), True);

___

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
советую забыть про относительные пути.
всегда дополняйте их до полных.

а в вашей программе видимо есть диалоги(TOpenDialog/TSaveDialog/etc)
они меняют текущую директорию(директорию относительно которой относительный путь и дополняется автоматом)

ну а ответ дан выше, я просто уточнил причины.
Отсюда: http://www.programmersforum.ru/showthread.php?t=131971 (моя старая тема, где я выложил кусок своего г-нокода)
Вадим Мошев вне форума   Ответить с цитированием
Старый 11.02.2019, 09:57   #4
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка РУ
Сообщений: 880
Репутация: 435
По умолчанию

Если нужно для диалога SaveDialog
Код:

SaveDialog1.InitialDir:= extractFilePath(application.exeName) + '\'; ну либо путь можно сохранять например в ini и его потом использовать при повторном открытии, запомнить так сказать последний путь 
if SaveDialog1.Execute then
..................................

либо так
Код:

SaveDialog1.InitialDir:= ExtractFilePath(ParamStr(0)) + '\';
if SaveDialog1.Execute then
..................................

а все остальное вам написали выше

Последний раз редактировалось Aliens_wolfs; 11.02.2019 в 10:08.
Aliens_wolfs вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохраниение через SaveDialog Asblue Помощь студентам 1 02.12.2010 13:44
Вставка данных в Excel через ADO Slava БД в Delphi 4 19.07.2009 22:22
Вставка строки через n-е количество строк glazomer Microsoft Office Excel 5 12.03.2009 14:20
Проблемы с сохранением файла через SaveDialog Волк Общие вопросы Delphi 4 05.02.2009 05:27


20:24.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru