如何从 TComPort - Delphi 获得正确的响应?

How to get just the correct response from TComPort - Delphi?

当我发送命令 "AT+CUSD=1,"*200#",15" 时,我得到响应:

OK


+CUSD: 0,"Crdit :1.33DA au 21/05/20.Credit offert :0DA",15  

是否有函数或其他 AT 命令来获取

Crdit :1.33DA au 21/05/20.Credit offert :0DA 

哪个是我想要的答案?

调制解调器响应是用逗号分隔的字符串包。

您可以:
- 将此字符串分配给 TStringList.DelimitedText 以获取单个子字符串的集合
- 按第 0 项识别包裹 - 此处 'CUSD'
- 获得第 1 个项目 'Crdit...'

Memo.Lines 示例(类型 TStrings):

var
  s: string;
  sl: TStringList;
begin
  s := '+CUSD: 0,"Crdit :1.33DA au 21/05/20.Credit offert :0DA",15';
  sl := TStringList.Create; 
  try
    sl.Delimiter := ',';
    sl.StrictDelimiter := True;
    sl.DelimitedText := s;
    Memo1.Lines.Add(sl[1]);
  finally
    sl.Free;

result in sl:
 +CUSD: 0
 Crdit :1.33DA au 21/05/20.Credit offert :0DA
 15
in Memo:
 Crdit :1.33DA au 21/05/20.Credit offert :0DA