Вверх ↑
Ответов: 499
Рейтинг: 1
#1: 2007-03-30 16:50:17 ЛС | профиль | цитата
Galkov писал(а):
И, кстати говоря, независимо от того, запускал ли я пример.

тогда смею вас уверить, что теория теорией, а практика показывает, что именно в том примере результат положительный. я просто умоляю, запустите его, и повыбирайте на разных уровнях каталоги. хоть тресни, но создается ини в каталоге с программой.
все зависит от реализации, и здесь она такова, что пример работает.
Galkov писал(а):
Уберите из примера Dilma одну связь, и откройте нам: чего там надо заменять в Run Time

у Dilma было вот так:
Add(StrCat,8718215,378,259)
{
Str2="dataerror"
link(onStrCat,3332837:doValue,[])
}
Add(FilePart,11316055,315,259)
{
link(onPath,8718215:doStrCat,[])
link(FileName,4256867:AppFileName,[])
}
Add(Application,4256867,315,203)
{
}
Add(Memory,3332837,434,259)
{
}
я немного сократил, но вы меня опередили ;) и предложили вот так:
Add(Memory,12225769,287,217)
{
}
Add(StrCat,11408909,231,217)
{
Str2="data\test.ini"
link(onStrCat,12225769:doValue,[])
link(Str1,10897749:CurrentDir,[])
}
Add(Dir,10897749,231,161)
{
}
т.е. на один элемент меньше.
в таком виде работает всегда, хоть относительный путь указывается, хоть просто имя файла. моя конструкция была еще на один элемент меньше, однако работала только в одном случае. ваши с Dilma - всегда.
Galkov писал(а):
e:test.ini - не подумайте случайно что это корневая папка на диске E

эти аксиомы еще лет 14 назад изучал и запомнил, так что это точно не открытие америки для меня ;)

в общем, проблема снята, вернее решена обходным путем, что тоже вариант. однако для будущих наступателей на грабли может внести пояснение, что во избежание проблем любые файловые операции необходимо проводить с полными путями, а не только с именами файлов? новый компонент чтоли ввести, по аналогии с инструментом PointXY, который складывает перемножает два числа...

а самое главное - что в споре рождается истина
карма: 0

0