Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
 Аватар для Morgan-S23
-26 / 3 / 0
Регистрация: 20.03.2011
Сообщений: 102

Как писать относительный адрес файлов для загрузки на форму?

19.07.2013, 19:30. Показов 4937. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу загрузить картинку на форму. Пишу так: Image1->Picture->LoadFromFile("C:\\123.bmp");

Но, что будет, когда программу запустят на другом компьютере!

Как пишется относительный адрес? Пробовал как в HTML, не получается.

P.S. Картинки лежат в папке, которая лежит в папке с проектом. F:\Program\Проект\Images
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.07.2013, 19:30
Ответы с готовыми решениями:

Как добавить относительный путь файлов в ListBox, для открытия в PictureBox?
listBox1.Items.Clear(); //1 ...

Как добавить относительный путь файлов в ListBox, для открытия в PictureBox?
listBox1.Items.Clear(); //1 ...

Как преобразовать относительный адрес файла в абсолютный?
Я создал файл Как преобразовать относительный адрес в абсолютный? И как записать текст в этот файл? FileStream fCreate = new...

9
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
19.07.2013, 19:51
положи файл в папку разработки, в последствии в папку с программой и пиши просто
"123.bmp"

Добавлено через 3 минуты
Цитата Сообщение от Morgan-S23 Посмотреть сообщение
Как пишется относительный адрес?
относительный это относительно чего то
например у тебя прога лежит в папке 1
а картинки в папке 2, которая лежит в папке 1
тогда можно будет написать "2\\ img.bmp"
тогда будет искать в папке 1 папку 2 и в ней картинку
если папки никак не связаны то только полный путь
0
83 / 78 / 14
Регистрация: 14.06.2012
Сообщений: 261
19.07.2013, 20:23
Из ресурсов загружать не пробовали?
0
 Аватар для Morgan-S23
-26 / 3 / 0
Регистрация: 20.03.2011
Сообщений: 102
19.07.2013, 20:45  [ТС]
Короче, путем несложных экспериментов понял, как надо.

Просто пишу: Image1->Picture->LoadFromFile("Images/127.bmp");
тут папка Images находится в папке проекта, поэтому абсолютный адрес не нужен. Если бы картинка лежала просто в папке проекта, то адрес был бы: ("127.bmp")

Всем спасибо, все свободны
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
19.07.2013, 20:50
Если имеется в виду подпапка Images рядом с программой, то используйте универсальный путь: Application->ExeName+\\Images\\123.bmp
В этом случае, даже если при запущенном приложении вы переключитесь на другую задачу и оттуда перейдете в другую папку, даже на другой диск - программа все равно будет обращаться по правильному адресу к "123.bmp"
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.07.2013, 15:59
Цитата Сообщение от nick42 Посмотреть сообщение
то используйте универсальный путь: Application->ExeName+\\Images\\123.bmp
Это не универсальный путь, а скорее наоборот привязанный путь к папке приложения.
0
2 / 2 / 1
Регистрация: 26.08.2010
Сообщений: 54
22.07.2013, 16:15
AnsiString ResourcePath = ExtractFilePath(Application->ExeName);

Application->ExeName - Узнаем где лежит программа.

пример
Application->ExeName - С:\program and files\myprogram\project.exe

ExtractFilePath(Application->ExeName) - берем путь к каталогу где она лежит

пример
ExtractFilePath(Application->ExeName) - С:\program and files\myprogram\

Если картинки будут лежать в каталоге Resource то
AnsiString ResourcePath = ExtractFilePath(Application->ExeName) + "\Resource\\"


Image1->Picture->LoadFromFile(ResourcePath + "127.bmp");

Ты это имел введу ?
0
 Аватар для Morgan-S23
-26 / 3 / 0
Регистрация: 20.03.2011
Сообщений: 102
22.07.2013, 16:32  [ТС]
Цитата Сообщение от gera3323 Посмотреть сообщение
Ты это имел введу ?
Да. Но в чем разница между этими примерами и простым
C++
1
Image1->Picture->Loadfromfile("image.bmp");
разве так не проще? Или все же есть разница?
0
2 / 2 / 1
Регистрация: 26.08.2010
Сообщений: 54
22.07.2013, 16:38
так надежнее
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.07.2013, 16:45
Цитата Сообщение от Morgan-S23 Посмотреть сообщение
Да. Но в чем разница между этими примерами и простым
Есть понятие "рабочего каталога" вот от него и считаются относительные пути.

Если запускать прогу "как обычно" то рабочий каталог - каталог запуска программы (и если внутри программы рабочий каталог не меняется программно).

Но так же есть возможность запускать программу из другого каталога, например с помощью консоли предварительно установив другой путь.
( или через батник, или через ярлык, или через другой процесс)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.07.2013, 16:45
Помогаю со студенческими работами здесь

Как правильно прописывать относительный адрес к текстовым файлам?
добрый день. в папке лаба есть ещо двепапки как показано на рисунке в одной екзе файл в другой текстовые файлы(их много) как...

Как правильно писать адрес документа в теге A?
Вопрос такой: как правильно писать адрес документа в теге <a>? Есть два примера: 1. <a...

Как грамотно сделать разделение прав для загрузки файлов?
Здравствуйте! У меня навигация осуществляется просто. Жму ссылку, в запросе передаю имя страницы, потом по этому имени из БД достаю...

Относительный адрес ячейки в макросах Excel
Добрый день! Чтобы присвоить ячейке значение из макроса пишу так: Cells(1,1).Value="АБВГД" или ...

Относительный адрес REST Spring Boot
Здравствуйте! Подскажите, пожалуйста, как можно сделать так, чтобы мне не нужно было в конфигурацию микросервисов добавлять url сервера...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru