SkyPrinceRus писал(а):
нужна маленькая программкаcode_30204.txt
Задание не до конца ясное, не понятно нужно ли процент от баланса админа брать или нет. В схеме все суммировалось и строка с балансом админа заменяется. По примеру, думаю сможешь доделать под себя.
Если от админа процент брать не нужно и суммировать с ним в конце, то схема будет такой:
Add(MainForm,2953706,21,105)
{
}
Add(StrList,10450699,329,210)
{
Point(doReplace)
link(Str,15796485:Value,[])
link(FileName,4519459:Var2,[])
}
Add(Button,14042664,133,98)
{
Top=250
Width=65
Caption="Открыть"
link(onClick,1377368:doExecute,[])
}
Add(ArrayEnum,10730766,343,490)
{
link(onItem,7926257:doSplit,[])
link(onEndEnum,2911326:doEvent1,[(385,503)(385,566)])
link(Array,4489359:Var2,[])
}
Add(ODialog,1377368,182,98)
{
Filter="Тукстовый документ|*.txt*"
FileName="Тукстовый документ.txt"
link(onExecute,13183075:doEvent1,[])
}
Add(Memory,5921908,336,105)
{
}
Add(Hub,13183075,231,98)
{
OutCount=4
link(onEvent1,10450699:doClear,[(302,104)(302,223)])
link(onEvent2,3056013:doWork2,[])
link(onEvent3,10450699:doLoad,[(296,118)(296,244)])
link(onEvent4,7804160:doLoad,[(415,125)(415,356)])
}
Add(Memo,7804160,441,322)
{
Top=5
Width=390
Height=240
link(FileName,4519459:Var3,[(454,152)])
}
Add(Button,5126357,257,476)
{
Left=305
Top=250
Width=85
Caption="Пересчетать"
link(onClick,7212352:doEvent1,[])
}
Add(StrPart,7926257,406,490)
{
Char=":"
link(onSplit,2509880:doSplit,[])
}
Add(StrPart,2509880,448,490)
{
Char=" "
link(onPart,4927789:doEvent,[])
}
Add(MathParse,5337628,665,504)
{
DataCount=3
MathStr="round(%1 - %1/100 + %2 + %3, 0.01)"
link(onResult,16722983:doValue,[(709,510)(709,477)(660,477)(660,440)])
link(X2,16060947:Var2,[])
}
Add(Memory,16722983,672,434)
{
}
Add(Hub,7212352,308,476)
{
OutCount=3
link(onEvent1,11220828:doEvent1,[(336,482)(336,440)])
link(onEvent2,13499133:doReset,[(368,489)(368,454)])
link(onEvent3,10730766:doEnum,[])
}
Add(FormatStr,5436151,777,567)
{
DataCount=1
Mask="Admin balance:%1 stat:0"
link(onFString,15080761:In,[])
link(Str1,7294821:Result,[])
}
Add(LineBreak,13046422,154,245)
{
link(Out,13051351:doEvent1,[])
Primary=[15080761,672,322]
}
Add(DoData,6543310,280,252)
{
Data=Integer(0)
link(onEventData,10450699:doReplace,[])
}
Add(Hub,13051351,245,245)
{
OutCount=4
link(onEvent1,15796485:doValue,[(272,251)(272,167)])
link(onEvent2,6543310:doData,[])
link(onEvent3,7804160:doClear,[(272,265)(272,335)])
link(onEvent4,8685403:doEnum,[(264,272)(264,300)])
}
Add(Memory,15796485,329,161)
{
}
Add(ArrayEnum,8685403,378,294)
{
link(onItem,7804160:doAdd,[(432,300)(432,328)])
link(Array,4489359:Var3,[(384,278)])
}
Add(GetDataEx,4489359,343,273)
{
link(Data,10450699:Array,[])
}
Add(GetDataEx,4519459,336,147)
{
link(Data,5921908:Value,[])
}
Add(Button,5408749,134,161)
{
Left=120
Top=250
Width=65
Caption="Сохранить"
link(onClick,16272977:doExecute,[])
}
Add(SDialog,16272977,182,161)
{
Filter="Тукстовый документ|*.txt*"
FileName="Тукстовый документ.txt"
link(onExecute,1508037:doEvent1,[])
}
Add(HubEx,3056013,252,105)
{
link(onEvent,5921908:doValue,[])
}
Add(Hub,1508037,231,161)
{
link(onEvent1,3056013:doWork3,[(256,167)])
link(onEvent2,10450699:doSave,[(287,174)(287,251)])
}
Add(Switch,13499133,511,441)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(State)
Point(doOn)
}
Add(IndexToChanel,4927789,511,497)
{
Point(Index)
link(onEvent1,9705462:doEvent1,[(551,503)(551,489)])
link(onEvent2,5337628:doCalc,[])
link(Index,13499133:State,[])
}
Add(Memory,15688061,742,406)
{
}
Add(Hub,11220828,630,434)
{
link(onEvent1,15688061:doClear,[(652,440)(652,419)])
link(onEvent2,16722983:doClear,[])
}
Add(Hub,9705462,560,483)
{
link(onEvent1,15688061:doValue,[(595,489)(595,412)])
link(onEvent2,13499133:doOn,[(586,496)(586,476)(499,476)(499,461)])
}
Add(Math,7294821,777,511)
{
link(Op1,16060947:Var3,[(783,488)])
link(Op2,15688061:Value,[(790,475)(748,475)])
}
Add(GetDataEx,16060947,672,483)
{
link(Data,16722983:Value,[])
}
Add(Hub,2911326,707,560)
{
link(onEvent1,7294821:doOperation,[(749,566)(749,517)])
link(onEvent2,5436151:doString,[])
}