Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 637

Раздел: Delphi » Прочее
/ вопрос решён /

Дорогие и много уважаемые эксперты!Нужна помощь.Я делаю графический редактор.Одна кнопка открывает фаил-другая сохраняет.Программа находится в дериктории c:/Painter когдая открываю фаил с помощью OpenDialog из дериктории c:/pic и с помощью функции savetofile пытаюсь сохранить в c:/Painter/Temp происходит ошибка программа пытается сохранить картинку в c:/pic/c:/Painter/Temp а этого каталога не существует, как зделать так чтобы картинка сохранялась в c:/Painter/Temp а не в c:/pic/c:/Painter/Temp эта ошибка происходит только при предварительном открытии картинки из другого каталога(а не из каталога программы) да и использовать savedialog я не могу по своим причинам.

Аксион Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Аксион (статус: 4-ый класс)
Вопрос отправлен: 17 июня 2007, 14:54
Состояние вопроса: решён, ответов: 3.

Ответ #1. Отвечает эксперт: Николай Рубан

Здравствуйте, ММО!

Вам достаточно будет в параметрах SaveToFile использовать такой подход:
SaveToFile(ExtractFilePath(Application.ExeName)+'temp\FileName');

где FileName - имя сохраняемого файла.

Good Luck!!!

Ответ отправил: Николай Рубан (статус: 10-ый класс)
Время отправки: 17 июня 2007, 15:03
Оценка за ответ: 5

Комментарий к оценке: Спасибо

Ответ #2. Отвечает эксперт: Градов Ю.М.

Здравствуйте, ММО!
Используйте это:
uses FileCtrl;

procedure TForm1.Button1Click(Sender: TObject);
begin
ifnot DirectoryExists('c:/Painter/Temp') then
ifnot CreateDir('c:/Painter/Temp') then
raise Exception.Create('Cannot create c:/Painter/Temp');
end;

Ответ отправил: Градов Ю.М. (статус: 8-ой класс)
Время отправки: 17 июня 2007, 15:23
Оценка за ответ: 5

Комментарий к оценке: Спасибо

Ответ #3. Отвечает эксперт: Вадим К

Здравствуйте, ММО!
Функция CreateDir конечно позволит создать каталог, то только одно вложение. А писать процедуру, которая создаст весь путь очень утомительно. Но для этого есть Маленький секрет. Пусть, в s храниться имя файла с путём. Тогда используем слудующий код
ForceDir(ExtractFileDir(s));
if not DirectoryExsist(s) the Raise Exception.Create('Каталог не удалось создать');
SaveToFile(s);

Здесь есть один маленький нюанс. не все каталоги создать можно. Иногда это даже не описано в документации. К примеру попробуйте создать каталог с тремя точками в конце (можно и в проводнике) - вы будете приятно удивлены.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 17 июня 2007, 23:34
Оценка за ответ: 5

Комментарий к оценке: Спасибо

Мини-форум вопроса

Всего сообщений: 0.

31 января 2011, 19:23: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 4 июня 2023, 20:20
Выполнено за 0.03 сек.
Рейтинг@Mail.ru