Вверх ↑
Ответов: 1327
Рейтинг: 30
#1: 2021-08-31 21:26:18 ЛС | профиль | цитата
деление больших диапазонов сделал, а вот как мелкие диапазоны перед этим делом объединить, что бы потом разбить на равные, строго если адрес + размер равно следующему адресу (перескакивать даже через 1, нельзя, это должно считаться следующим диапазоном)

Add(MainForm,2953706,21,105)
{
link(onCreate,8696675:doEnum,[(135,125)(135,223)])
}
Add(StrList,13928242,203,140)
{
Strings=#22:140714546499584-835584|22:140714547335168-204800|20:140714547539968-8192|20:140714547548160-4096|22:140714547552256-163840|20:140714547740672-4096|23:140714547744768-5791744|23:140714553536512-1343488|21:140714554880000-32768|20:140714554912768-8192|22:140714554920960-421888|20:140714555342848-4096|22:140714555346944-413696|22:140714555760640-159744|21:140714555920384-16384|21:140714555936768-40960|20:140714556719104-4096|22:140714556723200-516096|22:140714557239296-208896|20:140714557448192-4096|20:140714557452288-4096|21:140714557456384-36864|20:140714557767680-4096|23:140714557771776-1159168|22:140714558930944-299008|20:140714559229952-4096|20:140714559234048-8192|21:140714559242240-36864|22:140714559279104-544768|
}
Add(Memo,12034018,504,217)
{
Left=440
Top=115
Align=5
ScrollBars=2
}
Add(InlineCode,16192031,378,217)
{
@Color=170
WorkPoints=#4:doPH|
EventPoints=#4:onPH|
DataPoints=#3:adr|4:size|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses Windows,Share,Debug,kol;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|27: onPH,adr,size:THI_Event;|49: procedure doPH(var _Data:TData; Index:word);|5: end;|0:|0:|14:implementation|0:|0:|0:|27:procedure THiAsmClass.doPH;|0:|3:var|17:adr_,adr2_:Int64;|14:size_:integer;|14:d1,d2:integer;|11:i: Integer;|9:d3:Int64;|11:d4:integer;|0:|5:begin|34:adr_:=Trunc(ReadReal(_data, adr));|32:size_:=ReadInteger(_data, size);|0:|28:if size_ ‹ 524288 then begin|59:_hi_onEvent(onPH, double2str(adr_) + ';' + Int2Str(size_));|14:end else begin|26:d1:=trunc(size_ / 524288);|26:d2:=size_ - (d1 * 524288);|0:|20:For i:=1 to d1 do|5:begin|60:_hi_onEvent(onPH, double2str(adr_) + ';' + Int2Str(524288));|18:adr_:=adr_+524288;|4:end;|56:_hi_onEvent(onPH, double2str(adr_) + ';' + Int2Str(d2));|0:|4:end;|0:|0:|0:|0:|0:|0:|4:end;|0:|4:end.|
link(onPH,12034018:doAdd,[])
link(adr,6577484:Part1,[(384,197)(353,197)(353,261)(307,261)])
link(size,6577484:Part2,[(391,182)(367,182)(367,272)(314,272)])
}
Add(ArrayEnum,8696675,217,217)
{
link(onItem,6577484:doSplit,[])
link(Array,13928242:Array,[])
}
Add(MultiStrPart,6577484,301,217)
{
Char="-"
link(onSplit,16192031:doPH,[])
}
карма: 2

0
Редактировалось 1 раз(а), последний 2021-08-31 21:27:38