10 |
|
function Encode_Int(input: LongWord): TByteData; |
11 |
|
function Decode_Float(buffer: TByteData): Single; |
12 |
|
function Encode_Float(input: Single): TByteData; |
13 |
+ |
function IntToBin(Value: Byte): String; |
14 |
|
function DataToBin(Data: TByteData): String; |
15 |
|
function BinToInt(bin: String): Byte; |
16 |
|
|
39 |
|
|
40 |
|
|
41 |
|
|
41 |
– |
|
42 |
|
function BoolToStr(bool: Boolean): String; |
43 |
|
begin |
44 |
|
if bool then |
48 |
|
end; |
49 |
|
|
50 |
|
|
51 |
– |
|
52 |
– |
|
51 |
|
function HexToLong(hex: String): LongWord; |
52 |
|
|
53 |
|
function NormalizeHexString(var hex: String): Boolean; |
73 |
|
|
74 |
|
begin |
75 |
|
if NormalizeHexString(hex) then |
76 |
< |
begin |
79 |
< |
Result := StrToInt(hex); |
80 |
< |
{ |
81 |
< |
hex := UpperCase(hex); |
82 |
< |
Result := 0; |
83 |
< |
for i := 1 to Length(hex) do |
84 |
< |
begin |
85 |
< |
Result := Result shl 4; |
86 |
< |
case hex[i] of |
87 |
< |
'0'..'9': |
88 |
< |
Result := Result + Ord(hex[i]) - 48; |
89 |
< |
'A'..'F': |
90 |
< |
Result := Result + Ord(hex[i]) - 55; |
91 |
< |
else |
92 |
< |
Result := 0; |
93 |
< |
Exit; |
94 |
< |
end; |
95 |
< |
end; |
96 |
< |
} |
97 |
< |
end |
76 |
> |
Result := StrToInt(hex) |
77 |
|
else |
99 |
– |
begin |
78 |
|
Result := 0; |
101 |
– |
end; |
79 |
|
end; |
80 |
|
|
81 |
|
|
105 |
– |
|
106 |
– |
|
82 |
|
function Decode_Int(buffer: TByteData): LongWord; |
83 |
|
begin |
84 |
|
Result := buffer[0] + buffer[1] * 256 + buffer[2] * 256 * 256 + buffer[3] * 256 * 256 * 256; |
85 |
|
end; |
86 |
|
|
87 |
|
|
113 |
– |
|
114 |
– |
|
88 |
|
function Encode_Int(input: LongWord): TByteData; |
89 |
|
begin |
90 |
|
SetLength(Result, 4); |
98 |
|
end; |
99 |
|
|
100 |
|
|
128 |
– |
|
129 |
– |
|
101 |
|
function Decode_Float(buffer: TByteData): Single; |
102 |
|
var |
103 |
|
_valueswitcher: TValueSwitcher; |
109 |
|
end; |
110 |
|
|
111 |
|
|
141 |
– |
|
142 |
– |
|
112 |
|
function Encode_Float(input: Single): TByteData; |
113 |
|
var |
114 |
|
_valueswitcher: TValueSwitcher; |
118 |
|
end; |
119 |
|
|
120 |
|
|
121 |
+ |
function IntToBin(Value: Byte): String; |
122 |
+ |
var |
123 |
+ |
i: Byte; |
124 |
+ |
begin |
125 |
+ |
Result := ''; |
126 |
+ |
for i := 7 downto 0 do |
127 |
+ |
Result := Result + IntToStr((Value shr i) and $01); |
128 |
+ |
end; |
129 |
|
|
130 |
|
|
131 |
|
function DataToBin(Data: TByteData): String; |
149 |
|
end; |
150 |
|
|
151 |
|
|
175 |
– |
|
176 |
– |
|
152 |
|
function BinToInt(bin: String): Byte; |
153 |
|
var |
154 |
|
Add: Integer; |
170 |
|
|
171 |
|
|
172 |
|
|
198 |
– |
|
173 |
|
function FormatNumber(Value: LongWord; Width: Byte; leadingzeros: Char): String; |
174 |
|
begin |
175 |
|
Result := AnsiReplaceStr(Format('%' + IntToStr(Width) + 'u', [Value]), ' ', leadingzeros); |