Моля, кажете ми : Integer & Byte

8 отговора 498 прегледа
#1

Моля, кажете ми : Integer & Byte

Моля, кажете ми как да го направя!

Това е пример които не ми върши работа, трябва ми обратният вариянт.

Byte[7]:=$55;
Byte[6]:=$66;
Byte[5]:=$BF;
Byte[4]:=$22;
Byte[3]:=$H5;
Byte[2]:=$77;
Byte[1]:=$31;
Byte[0]:=$11;

for B:=0 to 7 do ROM :=Byte;
for B:=0 to 7 do Number:=format('%.2X',[ROM])+Number;
Edit1.Text:=Number;

Искам от 5566BF22H5773111 да го прехвърля в Byte.

Благодаря ви предварително.

Отговор
в отговор на Timo #2

Re: Моля, кажете ми : Integer & Byte

Трябва да си взимаш по два символа от стринга и да ги конвертираш до число. Например нещо такова:

idx := 8;
while Length(s) > 1 do
begin
Dec(idx);
Bytes[idx] := StrToInt('$' + Copy(s, 1, 2));
Delete(s, 1, 2);
end;

Добави му някакво валидиране на стринга (да са само валидни символи и дължината му да е 16) и би трябвало да ти свърши работа.

Отговор
в отговор на Timo #3

Re: Моля, кажете ми : Integer & Byte

Int64Rec separates parts of an 8-byte value.

Unit

SysUtils

Delphi syntax:

type

Int64Rec = packed record
case Integer of
0: (Lo, Hi: Cardinal);
1: (Cardinals: array [0..1] of Cardinal);
2: (Words: array [0..3] of Word);
3: (Bytes: array [0..7] of Byte);

end;

Description

Int64Rec declares a record (structure) that decomposes a 64-bit integer value as type Byte, Word, or Cardinal (unsigned integer).

Отговор
в отговор на Timo #4

Re: Моля, кажете ми : Integer & Byte

Добре е освен това да не използваш служебни имена като Byte за имена на твои променливи. Object Pascal-а позволява това, както и още по-странни работи, като например:
type byte = integer;
integer = char;
...
но това със сигурност не е добра идея (освен ако целта ти е да напишеш труден за разглеждане и поддръжка код)

Отговор
в отговор на andrew_nikoloff #5

Re: Моля, кажете ми : Integer & Byte

Zabravih da ti blagodarja, mnogo mi pomogna.
A ima li drug na4in?

Отговор
в отговор на NDeu #6

Re: Моля, кажете ми : Integer & Byte

Blagodarja za predlojenieto no ne mi e jasno ni6to kakvo ima6 v predvid. Vijdam 4e ima ne6to posledovatelno ne ne vijdam kak 6te stane.

Отговор
в отговор на Formal #7

Re: Моля, кажете ми : Integer & Byte

Tova mi e napalno izvesno:
byte = integer;
integer = char;
za Byte si napalno prav no az go napisah za da go predstavja v foruna i ne go promenih. Ne sam iskal da pi6a truden za razpoznavane kod a ot string da go prehvarlja v Bite

Отговор
в отговор на Timo #8

Начини много

Начини има много. Онова го написах набързо без да се замисля много-много. Сега бих се разхождал по стринга, а не да му трия началото. Какво не ти харесва в това решение, че търсиш друг начин? Т.е. какво търсиш като решение?

Отговор
в отговор на andrew_nikoloff #9

Re: Начини много

Naprotiv haresa mi, ne se bjah setil da razdrobja stringa i taka da polu4a bitovete a i primera ti mi haresa no pitah dali ima drug na4in poneje NDeu e predlojil ne6to i ne razbiram kakvo e imal v predvid.
Inak s tvojat primer si svar6ih rabotata, blagodarja ti.

Отговор