Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.21;
Скачать: CL | DM;

Вниз

Проблема с пониманием программы пути   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.062 c
4-1119619778
NikNet
2005-06-24 17:29
2005.08.21
Как найти конец сектора, что бы завершить поиск в ROOTDIR?


6-1115484224
nap
2005-05-07 20:43
2005.08.21
не удаляет письмо с сервера


4-1120064577
ВломПридумывать
2005-06-29 21:02
2005.08.21
HELP !!!


1-1122844342
ronyn
2005-08-01 01:12
2005.08.21
Срок работы DEMO


1-1122550947
Pasha L
2005-07-28 15:42
2005.08.21
AND и OR, оперирующие с интежером