Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-1119855411
Dot
2005-06-27 10:56
2005.08.21
Как создать линк?


3-1121255279
Валерий
2005-07-13 15:47
2005.08.21
Как правильно запретить редактирование записи


14-1122530561
Ega23
2005-07-28 10:02
2005.08.21
С днем рождения! 28 июля


1-1122641358
slotti
2005-07-29 16:49
2005.08.21
Как узнать количество созданных обьектов ?


14-1122376452
BiN
2005-07-26 15:14
2005.08.21
За использование смайликов придется платить Microsoft





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский