![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| larinva |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 24.7.2006 Репутация: нет Всего: 1 |
Всем привет! подскажите какой функцией пользоваться чтобы не указывать явный путь к файлу пример (LoadFromFile(c:\12\nm.txt)) а то если изменищь директорю придется вносить изменение и в программе
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 9 Всего: 58 |
Если nm.txt лежит в папке с программой. можно использовать
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Если ты перемещаешь файл, то программе так и так нужно каким-то образом дать знать об этом. К примеру, создать файл конфигурации для хранения списка путей к файлам, и в этом списке уже изменять пути.
Ну, конечно, ещё можно предусмотреть в программе какой-нибудь поиск файла. Но это, сам понимаешь, каково будет по скорости - искать новый каталог файла по всему винту. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 8 Всего: 329 |
Советую не делать так. А реализовать работу с файлами, как это сделано во многих нормальных программах - работа с файлами в папке Мои документы или лучше в папке "C:\Documents and Settings\имя_пользователя\Application Data", в противном случае винда может не дать программе доступ к файлу, особенно если программа будет установлена в папке Program files. Всё равно когда-нибудь прийдётся переделывать, не сегодня, так через год. Так почему бы сразу не реализовать правильно?
|
|||
|
||||
| larinva |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 24.7.2006 Репутация: нет Всего: 1 |
Всем сп-бо направление понял тема может быть закрыта!
|
|||
|
||||
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
||||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Советую использовать функцию SHGetSpecialFolderPath с параметром CSIDL_MYDOCUMENTS
-------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
Подгоню ссылочку: http://www.gunsmoker.ru/2011/09/blog-post_11.html (код в конце).
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Хм. Эту статью я ещё не видел. И "FOLDERID" меня заинтересовал. У вас, Александр всегда под рукой ссылки. Не могли бы вы подкинуть сюда ещё и ссылку на статью или что-либо другое, что объяснит чем "старый"вызов ShGet(Special)Folderxxx может обломаться на Vista+. Есть у меня и "особый/шкурный" интерес. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
Он должен нормально работать, ИМХО. Но пути к новым папкам через него не получить - нет констант.
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
А какие "новые" папки имеются в виду? Или это "задел" на "новые разработки"? -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Lols |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 21.10.2011 Репутация: нет Всего: нет |
Ну, это тогда просто нужно будет учесть и все - не смертельно. Или я не права? |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
Физические папки: FOLDERID_Contacts, FOLDERID_DeviceMetadataStore, FOLDERID_DocumentsLibrary, FOLDERID_Downloads, FOLDERID_GameTasks, FOLDERID_ImplicitAppShortcuts, FOLDERID_Libraries, FOLDERID_Links, FOLDERID_LocalAppDataLow, FOLDERID_MusicLibrary, FOLDERID_PhotoAlbums, FOLDERID_PicturesLibrary, FOLDERID_Playlists, FOLDERID_ProgramFilesX64, FOLDERID_ProgramFilesCommonX64, FOLDERID_Public, FOLDERID_PublicDownloads, FOLDERID_PublicGameTasks, FOLDERID_PublicLibraries, FOLDERID_PublicRingtones, FOLDERID_QuickLaunch, FOLDERID_RecordedTVLibrary, FOLDERID_Ringtones, FOLDERID_SampleMusic, FOLDERID_SamplePictures, FOLDERID_SamplePlaylists, FOLDERID_SampleVideos, FOLDERID_SavedGames, FOLDERID_SavedSearches, FOLDERID_SidebarDefaultParts, FOLDERID_SidebarParts, FOLDERID_UserPinned, FOLDERID_UserProfiles, FOLDERID_UserProgramFiles, FOLDERID_UserProgramFilesCommon, FOLDERID_VideosLibrary Виртуальные папки: FOLDERID_AddNewPrograms, FOLDERID_AppUpdates, FOLDERID_ChangeRemovePrograms, FOLDERID_ConflictFolder, FOLDERID_Games, FOLDERID_HomeGroup, FOLDERID_OriginalImages, FOLDERID_SEARCH_CSC, FOLDERID_SEARCH_MAPI, FOLDERID_SearchHome, FOLDERID_SyncManagerFolder, FOLDERID_SyncResultsFolder, FOLDERID_SyncSetupFolder, FOLDERID_UsersFiles, FOLDERID_UsersLibraries Я выделил жирным интересные (на мой взгляд) папки.
Разумеется. Хотя, смотря как "учитывать". К примеру, папка для сейвов игр. В XP мы можем учесть её отсутствие и писать в AppData - окей. Но если ровно же этот код мы будем использовать и в Vista+, то получится, что мы его пишем не туда - вот тебе и "учли". Добавлено через 6 минут и 25 секунд Итого: если в программе мы хотим работать только с папками, которые входят в CSIDL, то использовать ShGet(Special)FolderXXX - это окей. Это будет работать и работать корректно. Никаких проблем тут нет, обратная совместимость - конёк Microsoft. Да, можно проверять версию системы и использовать функции ShGetKnownFolderXXX на Vista+. Но вы от этого ничего не выиграете, а даже скорее наоборот - теперь в вашем коде две ветки (и в два раза больше кода). Но если нам надо получать хотя бы одну новую папку (из Vista+), то (ИМХО) лучше использовать ShGet(Special)FolderXXX-функции на XP и ниже, и ShGetKnownFolderXXX - на Vista и выше. Чисто по соображениям единообразия. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Ну мне это "не интересно". Ну а в целом, спасибо! -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 8 Всего: 329 |
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |