Вверх ↑
Ответов: 499
Рейтинг: 1
#1: 2007-03-30 01:13:36 ЛС | профиль | цитата
я не совсем новичок, просто то, что для вас очевидно, для меня стало не сразу.
вот схема.
Add(StrList,3616182,154,42)
{
Strings=#3:.a|3:.|3:.c|3:.d|3:.e|3:.f|3:.g|3:.h|3:.i|3:.j|3:.k|3:.l|3:.m|3:.
|3:.o|3:.p|3:.q|3:.|3:.s|3:. |3:.u|3:.v|3:.w|3:.x|3:.y|3:.z|
}
Add(ArrayEnum,2768686,119,133)
{
link(onItem,5118179:doWrite,[])
link(onEndEnum,2120324:doEnum,[(166,146)(166,195)])
link(Array,1070503:Var1,[(125,107)])
}
Add(Ini,5118179,245,126)
{
FileName="abc"
Section="main"
Type=1
link(Key,2768686:Item,[(265,116)(198,116)(198,175)(125,175)])
}
Add(Button,6822326,56,133)
{
Left=10
Top=180
link(onClick,2768686:doEnum,[])
}
Add(ListBox,15334728,245,189)
{
Left=80
Top=10
Height=360
}
Add(ArrayEnum,2120324,182,189)
{
link(onItem,15334728:doAdd,[])
link(onEndEnum,7704623:doEnum,[(224,202)(224,243)(158,243)(158,272)])
link(Array,1070503:Var3,[(188,107)])
}
Add(GetDataEx,1070503,161,98)
{
link(Data,3616182:Array,[])
}
Add(ListBox,14604827,315,266)
{
Left=150
Top=10
Height=360
}
Add(ArrayEnum,7704623,168,266)
{
link(onItem,3607995:doRead,[])
link(Array,1070503:Var2,[(174,189)(174,189)])
}
Add(Ini,3607995,245,266)
{
FileName="abc"
Section="main"
Type=1
link(onResult,14604827:doAdd,[])
link(Key,7704623:Item,[(265,256)(223,256)(223,308)(174,308)])
}
сразу видно, что символы
обрабатываются неверно (для этого примера)

реальный пример. при запуске программы проверяется наличие файла настроек, в котором указан путь к некоторому каталогу для дальнейшего использования.
если файла нет, то предлагается выбрать файл, лежащий в нужном каталоге, потом из его полного пути выкидывается имя файла, и оставшийся путь пишет в файл настроек (не нашел средство для выбора просто каталогов).
если файл есть, и путь прописан, то считывается значение пути и присваивается глобальной переменной. (в примере нет)
вот пример. для упрощения выбираем путь к самом экзешнику программы, но в реале нужный каталог может быть где угодно.
Add(MainForm,4314951,63,119)
{
Left=20
Top=105
Width=421
Height=293
Visible=1
link(onCreate,16534992:doFileExists,[])
}
Add(FilePart,15988081,315,133)
{
link(onPath,3851752:doEvent1,[])
}
Add(FileTools,16534992,119,133)
{
link(onEnd,2800087:doCompare,[])
link(FileName,12202576:Var1,[(125,121)])
}
Add(Memory,12225769,266,77)
{
Default=String(data\test.ini)
}
Add(If_else,2800087,168,133)
{
Op2=Integer(0)
link(onTrue,14717202:doMessage,[])
link(onFalse,8976951:doRead,[(211,146)(211,188)])
}
Add(GetDataEx,12202576,259,112)
{
link(Data,12225769:Value,[])
}
Add(Ini,8976951,420,182)
{
Section="main"
Key="path"
Type=1
link(onResult,3956664:doEvent2,[(460,188)(460,153)])
link(FileName,12202576:Var3,[(426,121)])
}
Add(ODialog,3859134,266,133)
{
Filter="exe|*.exe|All|*"
Title="Укажите путь к файлу fsgame.ltx в папке игры."
FileName="test"
link(onExecute,15988081:doPart,[])
}
Add(Message,14717202,217,133)
{
Message="Похоже, что это первый запуск программы.
После нажатия кнопки ОК укажите расположение
файла test.exe"
Caption="Первый запуск"
Icon=4
link(onMessage,3859134:doExecute,[])
}
Add(Message,4539096,525,168)
{
Caption="расположение:"
link(onMessage,4314951:doClose,[(572,174)(572,222)(54,222)(54,146)])
}
Add(Hub,3956664,469,140)
{
InCount=2
link(onEvent1,9664091:doValue,[])
link(onEvent2,4539096:doMessage,[(513,153)(513,174)])
}
Add(Hub,3851752,364,133)
{
link(onEvent1,8976951:doWrite,[(408,139)(408,195)])
link(onEvent2,3956664:doEvent1,[])
}
Add(GlobalVar,9664091,525,140)
{
Name="path"
}
здесь файл настроек test.ini должен быть в каталоге data (здесь его надо создать самому).
пока элемент "память" содержит этот путь в виде data\test.ini все хорошо. здесь встретилась буква "t" в имени, этот случай понятен и решаем, так как мы сами определяем имя файла.
но если расположение файла настроек будет предварительно указываться пользователем? тогда придется элементу "работа c ini-файлами" передавать полный путь, в котором могут встретиться "запрещенные" последовательности...
карма: 0

0