Код: Выделить всё
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
fullanswer,answer:string;
j:integer;
begin
form1.ComPort1.ReadStr(answer,Count);
If form3.RzCheckBox2.Checked then // установил галку для теста, чтобы собирать данные в кучу... но не помогло...
fullanswer:=fullanswer+answer
else
fullanswer:=answer;
j:=length(fullanswer);
form3.Edit2.Text:=decodstr(fullanswer); // декодирую данные полученные в строку
end;
Function decodstr(reciv:string):string;
var
i:integer;
dagramm,answer: string;
ansarray:array[1..7] of char;
begin
assignfixedstring(ansarray,reciv);
for i := low(ansarray) to length(reciv) do
dagramm := dagramm+IntToHex(ord(ansarray[i]),2);
Result:=dagramm;
end;
Procedure AssignFixedString( Var FixedStr: Array of Char; Const S: String);
Var
maxlen: Integer;
Begin
maxlen := succ(High( FixedStr ) - Low( FixedStr ));
FillChar( FixedStr, maxlen, ^@ );
If Length(S) > maxlen Then
Move( S[1], FixedStr, maxlen )
Else
Move( S[1], FixedStr, Length(S));
End;