Вверх ↑
Ответов: 373
Рейтинг: 108
#1: 2009-12-16 15:45:35 ЛС | профиль | цитата
Poputchik писал(а):
Подскажите можно ли в HiAsm сделать программу, которая могла бы сверять две версии одной программы собранные в HiAsm и выделять разницу в отдельный файл (патч), что бы создавать файлы обновлений? Запустив который происходило изменение установленной программы до необходимой версии.

простой пример

Add(MainForm,3558543,112,98)
{
Width=395
Height=375
}
Add(FileStream,1322289,287,147)
{
link(onLoad,6472744:doOpen,[])
link(FileName,11562004:Text,[])
}
Add(Stream2Hex,12006005,287,196)
{
link(onResult,4962789:doLoad,[])
link(Data,1322289:Stream,[])
}
Add(FileStream,6472744,385,147)
{
link(FileName,11411735:Text,[])
}
Add(Stream2Hex,13421383,385,196)
{
link(onResult,10399308:doLoad,[])
link(Data,6472744:Stream,[])
}
Add(ArrayEnum,506682,336,287)
{
link(onItem,12688004:doRead,[])
link(onEndEnum,2531857:doData,[(387,300)(387,363)])
link(Array,9994712:Var2,[])
}
Add(ArrayRW,12688004,434,287)
{
link(onRead,65554:doCompare,[])
link(Array,10399308:Array,[])
link(Index,13127906:Var3,[(447,275)])
}
Add(Button,14702844,112,273)
{
Left=15
Top=10
Caption="get"
link(onClick,8507733:doStart,[])
}
Add(CharArray,4962789,336,196)
{
Point(Count)
link(onLoad,13421383:doConvert,[])
}
Add(CharArray,10399308,434,196)
{
Point(Count)
}
Add(If_else,65554,497,287)
{
Type=5
link(onTrue,894521:doString,[])
link(Op1,506682:Item,[(503,271)(487,271)(487,346)(342,346)])
link(Op2,12688004:Item,[(510,275)(517,275)(517,332)(440,332)])
}
Add(Hub,14326885,217,273)
{
OutCount=3
link(onEvent1,1322289:doOpen,[(259,279)(259,153)])
link(onEvent2,12006005:doConvert,[(266,286)(266,202)])
link(onEvent3,506682:doEnum,[])
}
Add(FormatStr,894521,560,287)
{
Mask="%1;%2"
link(onFString,14754717:doAdd,[])
link(Str1,13127906:Var1,[(566,264)(426,264)])
}
Add(GetDataEx,13127906,420,270)
{
Angle=3
link(Data,506682:Index,[(399,275)(399,332)(349,332)])
}
Add(Memo,14620100,679,336)
{
Left=185
Top=30
Width=115
Height=295
ScrollBars=2
}
Add(Edit,11562004,287,91)
{
Left=15
Top=30
Width=170
Text="C:\exe\1.exe"
}
Add(Edit,11411735,385,91)
{
Left=15
Top=55
Width=170
Text="C:\exe\2.exe"
}
Add(StrList,14754717,623,287)
{
}
Add(DoData,2531857,623,357)
{
link(onEventData,14620100:doText,[])
link(Data,14754717:Text,[])
}
Add(Thread,8507733,161,273)
{
Delay=1
FastStop=0
link(onExec,14326885:doEvent1,[])
}
Add(Button,8645036,553,420)
{
Left=15
Top=100
Caption="patch"
link(onClick,5548816:doEnum,[])
}
Add(ArrayEnum,5548816,637,420)
{
link(onItem,14729460:doEvent1,[])
link(onEndEnum,1315656:doConvert,[(700,433)(700,538)])
link(Array,14754717:Array,[])
}
Add(MultiStrPart,15320409,756,420)
{
}
Add(ArrayRW,15808874,749,483)
{
link(Array,9994712:Var3,[(755,250)])
link(Index,15320409:Part1,[])
link(Value,15320409:Part2,[])
}
Add(Hub,14729460,714,420)
{
link(onEvent1,15320409:doSplit,[])
link(onEvent2,15808874:doWrite,[(738,433)(738,496)])
}
Add(Stream2Hex,1315656,805,532)
{
Mode=1
link(onResult,13603527:doCopyFromStream,[])
link(Data,10399308:Str,[(811,242)(447,242)])
}
Add(FileStream,13603527,854,518)
{
Mode=2
AutoCopy=0
Point(doCopyFromStream)
link(FileName,1401397:Text,[])
}
Add(Edit,1401397,854,413)
{
Left=15
Top=120
Width=170
Text="C:\exe\3.exe"
}
Add(GetDataEx,9994712,336,245)
{
link(Data,4962789:Array,[])
}

в "1.exe" только форма
в "2.exe" форма с кнопкой
карма: 0

0