Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2012, 16:59   #1
Kreadlling
Форумчанин
 
Аватар для Kreadlling
 
Регистрация: 03.09.2009
Сообщений: 116
По умолчанию Как заменить абсолютный путь относительным Delphi

Здравствуйте! Не поможете в решении одной задачи: У меня программа на Delphi - загружает тесты по физике в виде картинок в базу данных. Но при этом указывается полный путь d:/my/task. Если открывать открывать эту
программу на другом компе, то папка my может быть перемещена на диск e. И при попытке достать картинку по старым путям в базе данных уже не получится. Открывается картинка с помощью элемента OpenPictureDialog1.
Не подскажете как решить эту проблему.

Спасибо заранее.

Код:
procedure TFormMain.BitBtn7Click(Sender: TObject);
var Fname:string;
begin
   if OpenPictureDialog1.Execute then
      begin
         fname:=openpicturedialog1.filename;
         with dm.q do // Запрос из базы данных
            begin
               Active := false;       // неактивен
               SQL.Clear; // очистить запрос
               SQL.Add('INSERT INTO IM_TABLE(IMG) VALUES(');
               SQL.Add(QuotedStr(Fname) + ')');
               ExecSQL;
            end;
            with dm.SimpleDataSet2 do  
            begin
               Active:=false;
               DataSet.Active := false;
               DataSet.Active := true;
               Active := true;
               Locate('IMG', Fname, [loCaseInsensitive]); 
            end;
      end;
end;
Kreadlling вне форума Ответить с цитированием
Старый 28.03.2012, 11:36   #2
Kreadlling
Форумчанин
 
Аватар для Kreadlling
 
Регистрация: 03.09.2009
Сообщений: 116
По умолчанию

Вопрос немного изменился: как при добавлении в базу добавлялся путь только начиная с подпапки картинок
где лежит прога, т.е. чтобы в базу заносилась информация не d:\my\pic\pic1\1.jpg, a только pic\pic1\1.jpg? my - папка с прогой
Нужна функция которая разбивала бы путь на подпути, может есть такая?
Kreadlling вне форума Ответить с цитированием
Старый 28.03.2012, 11:39   #3
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Проще и правильнее где-то в настройках держать путь к папке с картинками, а в базе только имя файла (если они все скопом в одной папке).
=master= вне форума Ответить с цитированием
Старый 28.03.2012, 14:19   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Код:
ExtractFilePath(Application.ExeName); //со слешем в конце
// или
ExtractFilePath(ParamStr(0));

ExtractFileDir(Application.ExeName);  //без слеша в конце
// или
ExtractFileDir(ParamStr(0));
А папки с картинками храни внутри папки с программой
_SERGEYX_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Абсолютный путь к файлу/папке Red_Line Общие вопросы по Java, Java SE, Kotlin 0 16.02.2012 22:06
DOS->COM->абсолютный адрес загрузки Пепел Феникса Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 24.10.2011 13:29
C++/Абсолютный адрес регистра Ebp coNsept Общие вопросы C/C++ 6 29.03.2011 12:56
WebBrowser Абсолютный и относительный адрес nikmay Общие вопросы Delphi 1 01.10.2009 22:41
Delphi 2009. Как иземнить стандартный путь сохранения файлов? TwiX Общие вопросы Delphi 2 25.08.2009 21:13