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" форма с кнопкой
|