|  | 
 
 | 
| 
			 
			#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)
 | ||