Форум: "Основная";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];
ВнизПроблема с пониманием программы пути Найти похожие ветки
← →
dreamse (2005-08-04 08:32) [0]В общем есть путь ..\skin\temp\skin.ini
И когда происходит выбор скина то этот путь меняеться относительно программы то есть становиться примерно таким "Путь выбраного скина + ..\skin\temp\skin.ini " А мне нужно чтобы путь всегда был расположен от программы то есть в верхнем каталоге программы.
Как решить этот вопрос ?
← →
Думкин © (2005-08-04 08:35) [1]какой вопрос?
← →
Skyle © (2005-08-04 08:36) [2]А что это за путь такой?
Код в студию...
← →
dreamse (2005-08-04 08:50) [3]В общем мы видим путь ..\Skin\Temp\Skin.ini отлично :)
// после следующей строки путь теряеться
if bsSkinOpenDialog1.Execute then begin
// Здесь мы его уже не видим
bsSkinUnZip1.UnZipToDir(bsSkinOpenDialog1.FileName,"..\Skin\Temp\");
// Здесь тоже не видим
bsSkinData1.LoadFromFile("..\Skin\Temp\Skin.ini");
← →
dreamse (2005-08-04 08:51) [4]> Думкин © (04.08.05 08:35) [1]
Вопрос такой , как сделать чтобы программа видела путь ..\Skin\Temp\Skin.ini после того как мы выбрали файл из диалога
← →
Думкин © (2005-08-04 08:55) [5]> [3] dreamse (04.08.05 08:50)
Издеваешься, да? Я сплю и вижу что такое твои Skin Zip и прочая дребедень.
А про TMyOwnerData.LoadFrom(MyPath,"..\data\log",cOptions) чего скажешь?
← →
Skyle © (2005-08-04 08:56) [6]> программа видела пут
Где видела? Что значит "программа видела"?
← →
Думкин © (2005-08-04 08:57) [7]> [4] dreamse (04.08.05 08:51)
Если файл из диалога - то там и путь есть. Или о каком пути речь. Что выбираем и в чем разница с тем что видеть хотим? Выбраем в диалоге файл
"c:\winnt\regedit.exe"?
← →
evvcom © (2005-08-04 08:57) [8]ExtractFilePath(Application.ExeName) + "Skin\Temp\Skin.ini"
← →
cheloveck (2005-08-04 08:58) [9]dreamse (04.08.05 08:50) [3]
Попробуй восстановить текущий каталог на корневой твоей программы. Так как, скорее всего, после вызова OpenDialog текущим каталогом стал тот, который выбран в OD.
← →
Думкин © (2005-08-04 08:59) [10]> [8] evvcom © (04.08.05 08:57)
Ему диалог важен. А у тебя он отсутсвует. Пусть объяснит про диалог.
← →
evvcom © (2005-08-04 09:07) [11]
> Ему диалог важен.
По моему, ему он как раз и не важен. А вяжется он к нему, понимая, что после смены текущего каталога в диалоге он уже не может добраться до своего ini в другом месте.
← →
Думкин © (2005-08-04 09:09) [12]> [11] evvcom © (04.08.05 09:07)
Телепат? НЛП? Уважаю.
← →
evvcom © (2005-08-04 09:09) [13]Хотя, конечно, туфта какая-то написана. Какой смысл в ini-файле, если он хранится в Temp директории?
← →
dreamse (2005-08-04 09:11) [14]> cheloveck (04.08.05 08:58) [9]
Именно так ! Я это и говорил. Вот и вопрос как востановить текущий каталог ?
> evvcom © (04.08.05 08:57) [8]
Не получиться так как у меня каталог для хранения скинов должен распологаться на директорию выше
> Думкин © (04.08.05 08:55) [5]
Вниматльнее читай пост 3
Специально для тебя поясняю
Сначала FileExists(..\Skin\Temp\Skin.ini) = true
Потом : if bsSkinOpenDialog1.Execute then begin
После этого FileExists(..\Skin\Temp\Skin.ini) = false !
Так понятно ?
← →
Antonn © (2005-08-04 09:12) [15]:="\"+copy((opendialog.filename),lenght(extractfilepath(application.exename)),lenght(opendialog.filename)-lenght(extract filepath(application.exename)));
может где-то ошибся, не проверял
← →
evvcom © (2005-08-04 09:15) [16]
> Не получиться так как у меня каталог для хранения скинов
> должен распологаться на директорию выше
ExtractFilePath(Application.ExeName) + "..\Skin\Temp\Skin.ini"
Если и это не то, дай четкую структуру твоих важных каталогов, чтобы хоть что-то понятно было из твоих мутных объяснений.
> Думкин © (04.08.05 09:09) [12]
> > [11] evvcom © (04.08.05 09:07)
>
> Телепат?
Бывает иногда. Но похоже не в этот раз.
> НЛП?
Что-то не телепатируется, что бы эта аббревиатура обозначала.
> Уважаю.
Спасибо. :)
← →
Skyle © (2005-08-04 09:19) [17]
> > НЛП?
>
> Что-то не телепатируется, что бы эта аббревиатура обозначала.
НеЛинейное Предсказание.
2Автор: работай правильно, не завязывайся на текущий каталог. Он может измениться в такие моменты, которые тебе даже и не снятся.
← →
dreamse (2005-08-04 09:19) [18]> Antonn © (04.08.05 09:12) [15]
Что то не работает :( не понял принципа ...
> evvcom © (04.08.05 09:09) [13]
В Temp директорию распоковываеться скин
← →
Думкин © (2005-08-04 09:22) [19]> Вниматльнее читай пост 3
Да? А что мешает просто завести сразу же по запуску не относительный, а абсолютный путь? И не иметь геммор?
← →
dreamse (2005-08-04 09:23) [20]> ExtractFilePath(Application.ExeName) + "..\Skin\Temp\Skin.ini"
Пробывал :) Получаеться : c:\proga\..\Skin\Temp\Skin.ini в итоге по тому пити нефига не загрузишь
Структура каталогов
Каталог_со_скинами
| | |
прога1 прога2 прога3
Куча прог которые рабоатют со скинами но скины нужно брать из одного места
← →
dreamse (2005-08-04 09:25) [21]> Думкин © (04.08.05 09:22) [19]
Я понимаю что можно делать переменную и в ней хранить путь но :
> ExtractFilePath(Application.ExeName) + "..\Skin\Temp\Skin.ini"
Не выходит ! Получаеться абракодабра !
Вопрос Как ?
← →
Skyle © (2005-08-04 09:26) [22]
> ExtractFilePath(Application.ExeName) + "..\Skin\Temp\Skin.ini"
Это что такое?
Мало того, что ходить туда неприятно, так оттуда ещё и не возвращаются...
← →
Antonn © (2005-08-04 09:26) [23]аге, ошибся в [15]
label2.caption:=copy((opendialog1.filename),length(extractfilepath(application.exename)),length(opendialog1.filename)-le ngth(extractfilepath(application.exename))+1);//только если выбираемы файл лежит ниже программы
← →
Antonn © (2005-08-04 09:33) [24]выходим на уровень выше:
label2.caption:=extractfilepath( copy(extractfilepath(application.exename),1,length(extractfilepath(application.exename))-1)+".a");
дальше прибавляй "skin\Temp\Skin.ini"
← →
evvcom © (2005-08-04 09:47) [25]
> dreamse (04.08.05 09:23) [20]
Ты уж сам определись, где у тебя что лежит. То ты говоришь, что папка со скинами лежит на уровень выше от проги, а то пишешь структуру с папками прог внутри папки со скинами.
> c:\proga\..\Skin\Temp\Skin.ini
аналогичен c:\Skin\Temp\Skin.ini. Тебе это надо?
> В Temp директорию распоковываеться скин
Ну и пусть себе распаковывается, а ini-то почему там же?
← →
Verg © (2005-08-04 09:51) [26]Получи абсолютный путь из относительного и пользуйся им
ExpandFileName
← →
dreamse (2005-08-04 09:58) [27]> Antonn © (04.08.05 09:33) [24]
Спасибо большое ! Заработало !
Всем спасибо за активное участие Вопрос закрыт
← →
dreamse (2005-08-04 10:00) [28]> > c:\proga\..\Skin\Temp\Skin.ini
>аналогичен c:\Skin\Temp\Skin.ini. Тебе это надо?
Нет , если был бы аналогичен то скины подгружали бы , а так нехотят :(
Вопрос был уже решён спасибо.
← →
Profi © (2005-08-04 13:32) [29]Antonn © (04.08.05 9:33) [24]
Блин, я видимо спал мало, но во всей этой бредятине (в вопросах то бишь) ни х не понял.
← →
Antonn © (2005-08-04 14:00) [30]Profi © (04.08.05 13:32) [29]
я в [20] допер, он "ДОСовские" пути писал "..\тыры-пыры\"
← →
Profi © (2005-08-04 14:24) [31]Antonn © (04.08.05 14:00) [30]
А теперь понял. Видимо просто пропустил. Надо больше спать.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.04 c