Для удобного просмотра блоков памяти если функции hex() недостаточно
Например - сложно кодированых IP-пакетов. Можно удобно отследить каждый байт.
Готового ничего подходящего не нашел.
Код:
Procedure.s MemoryToHex(*mem, memSize, delimiter.s="") Protected result$="", *buff, B.b, DelimSize=Len(delimiter) If memSize=0 ProcedureReturn result$ EndIf *buff=AllocateMemory(memSize*(2+DelimSize)+1) If *buff For i=0 To memSize-1 B=PeekB(*mem+i) PokeS(*buff+i*(2+DelimSize), RSet(Hex(B,#PB_Byte),2,"0")+delimiter) Next i result$=PeekS(*buff,memSize*(2+DelimSize)-DelimSize,#PB_Ascii) FreeMemory(*buff) EndIf ProcedureReturn result$ EndProcedure
например
Код:
Send SNMP request 30.29.02.01.00.04.06.70.75.62.6C.69.63.A0.1C.02.04.52.72.2A.2A.02.01.00.02.01.00 .30.0E.30.0C.06.08.2B.06.01.02.01.01.01.00.05.00 SNMPresponse 30.45.02.01.00.04.06.70.75.62.6C.69.63.A2.38.02.04.52.72.2A.2A.02.01.00.02.01.00 .30.2A.30.28.06.08.2B.06.01.02.01.01.01.00.04.1C.4B.59.4F.43.45.52.41.20.4D.49.5 4.41.20.50.72.69.6E.74.69.6E.67.20.53.79.73.74.65.6D
для сравнения - видно истинное расположения байтов числа
Код:
test.l=123456789 hex(test)=75BCD15 MemoryToHex(test)=15 CD 5B 07
Отредактировано SadStar (07.03.2014 01:30:39)