Я новичок в программировании Delphi, и мне нужна помощь. У меня проблема с разделением моих серийных данных. Это мой код:Разделить серийные данные в delphi
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
DataByte : string;
x, i: integer;
save_data : TStringList;
begin
save_data := TStringList.create;
for x := 0 to Count-1 do begin
ComPort1.ReadStr(DataByte,1);
if DataByte = 'n' then
begin
memo1.Text := '';
end
else
begin
memo1.Text := memo1.Text + DataByte;
Split(' ', DataByte, save_data);
end;
end;
save_gyroX := save_data[0];
save_gyroY := save_data[1];
save_gyroZ := save_data[2];
save_accelX := save_data[3];
save_accelY := save_data[4];
save_accelZ := save_data[5];
SerialProcess();
save_data.Free;
end;
Мой Split(' ', DataByte, save_data);
не работает. Я не понимаю, потому что я просто разделил данные String
, которые взяты из последовательного порта. Это моя Split()
процедура:
procedure TForm1.Split(const Delimiter: Char; Input: string; const Strings: TStrings) ;
begin
Assert(Assigned(Strings));
Strings.Clear;
Strings.Delimiter := Delimiter;
Strings.DelimitedText := Input;
end;
Я не знаю, почему моя программа дает мне ошибку EStringListError
.
Можете ли вы привести пример данных вы –
Получать Не 'databyte' не только один символ, который вы не можете разделить? Почему бы вам не разбить полную строку из 'memo1.text'? – gammatester