|
#1
|
|||
|
|||
String в массив
Добрый день.
Может не правильно назвал тему, извините если что Суть проблемы следующая. Есть функция расчета контрольной суммы, мне необходимо чтобы данные брало не с константы, а с Edit1.Text. Версия Delphi 10.3 Код:
type TData = array[0..7] of byte; implementation {$R *.dfm} function ks(const data: TData): Word; Сейчас выводится вот так: Код:
procedure TForm1.Button1Click(Sender: TObject); const data: TData = ($3A, $1F, $23, $65, $1F, $12, $56, $72); begin Edit2.Text := inttohex(ks(data), 4); end; Помогите пожалуйста кодом. Последний раз редактировалось Istvel, 25.01.2021 в 14:42. |
#2
|
|||
|
|||
Код:
var Str, s : String; Data : Array Of Byte; Len, I : Integer; begin Str := Edit1.Text; If (Str mod 2) <> 0 Then Raise Exception.Create('Incorect length of string'); Len := Str div 2; SetLength(Data,Len); For I := 0 To Len-1 Do Begin s := Copy(Str,1*2+1,2); Data[i] := StrToHex(s); End; |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Istvel (26.01.2021)
|
#3
|
|||
|
|||
По вашему примеру высыпалось куча ошибок, но на мысль правильную навели:
Код:
var Str, s : String; Data : TData; i : Integer; begin Str := Edit1.Text; for i := 0 to 7 Do begin s := '$' + Str.Substring(i*2, 2); Data[i] := StrToInt64(s); end; Edit2.Text := inttohex(ks(data), 4); end; Спасибо за помощь! Последний раз редактировалось Istvel, 26.01.2021 в 13:35. |
#4
|
|||
|
|||
Ну звыны...
Набросал идею, не проверял. Главное, что ты разобрался и сделал то, что тебе надо... |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Istvel (27.01.2021)
|