0

非常に長い間試した後....助けを求めることにしました。

Delphi で Tmemo に送信された最後の行を読み取ろうとしています。コード行を 1 行ずつ開発者に送信しています。開発に乗り込みます。ボードは毎回異なるコード行を送信する必要があります。私の最終目標は、開発者の最後の行を読み返すことです。ボードが返送します。

例えば

ATT = 7 に設定 --->> \dev に送信。ボード

開発者 ボードの返信

OK <----- \ 開発者から受け取りました。ボード

次のコード行を送信します。

または

エラー

「set att = 7」コマンドを再度送信します。


これまでのところ、作業に必要なものはほとんど揃っています。Delphi に tmemo の最後の行を読み取らせることができません。

私が試してみました

procedure TReaderProgrammer.Button3Click(Sender: TObject );
var 
  RxData : string; 
  LL : string; 
  ll2: system.integer;
begin
  LL:= memorxdata.lines.count.ToHexString;
  LL2:=memorxdata.Lines.Count;
  if ComPort1.Connected then
  begin
     showmessage(ll);
     ComPort1.WriteStr(memorxdata.Lines[ll2]+#13+#10);
  end;
end;

showmessage は、私自身の参照用にのみ存在します...受信したデータを参照用にバウンスしていることはわかっています。

奇妙なことは、それが時々機能することです。カウントは時々文字を跳ね返すので、私はこれを完全に間違った方法で行っていると思います...

4

1 に答える 1

6

MemoRxData.Linesゼロベースであるため、 の終わりを過ぎて読んでいます。

ll2 := MemoRxData.Lines.Count - 1;

ComPort1.WriteStr(MemoRxData.Lines[ll2] + #13#10;

(あなたの変数名はひどいです、BTW.ll2は単に読むのが恐ろしいです。そのようなひどいショートカットの代わりに、意味があり、読みやすい変数名を使用する必要があります。)

于 2014-11-07T23:35:26.507 に答える