Ver Mensaje Individual
  #6  
Antiguo 02-03-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por CM6ISG Ver Mensaje
...
Ahora #POX #SQX #EMX #FTXXXXXXX #FRXXXXXXX fíjate en el detalle te puse (X) ese dato varia en depende de la frecuencia del radio, modo potencia, etc.

Lo otro seria como cambio ShowMessage(lCampos.Text); en su lugar necesito 5 variables con cada una de sus cadenas.
Ejemplo:

Power:=(‘POX’)
Qsl:=(‘SQX’)
Modo:=(‘EMX’)
FTX:=(‘XXXXXXX’)
FTR:=(‘XXXXXXX’)
Si deseas incluir las cadenas 'FT' y 'FR', sólo tenes que cambiar el valor de inicio en la función Copy. Y para pasar a variables asignar los valores del StringList:
Código Delphi [-]
...
    ix:= lCampos.Count-1;
 
    // Incluir 'FT' y 'FR'
    lCampos[ix-1]:= Copy(lCampos[ix-1], 1, MaxInt);
    lCampos[ix]  := Copy(lCampos[ix]  , 1, MaxInt);

    // Asignar a variables independientes
    Power:= lCampos[0];
    Qsl  := LCampos[1];
    Modo := lCampos[2];
    FTX  := lCampos[3];
    FTR  := lCampos[4];  
 ...
Pero si es factible la reutilización de esas variables tal vez te convenga encapsularlas en un registro. Eso te permitiría enviar todos los valores en un solo parámetro, como por ejemplo:
Código Delphi [-]
...
type
  TPortValues = record
    Power: string;
    Qsl  : string;
    Modo : string;
    FTX  : string;
    FTR  : string;
  end;

procedure ShowValues(TS: TStrings; pv: TPortValues);
begin
  TS.Add(pv.Power);
  TS.Add(pv.Qsl);
  TS.Add(pv.Modo);
  TS.Add(pv.FTX);
  TS.Add(pv.FTR);
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  DLM = #13#10;
var
  Str: string;
  ix: Integer;
  lCampos: TStrings;
  pv: TPortValues;
begin
  Str:= '#PO0' + DLM + '#SQS' + DLM + '#EM0' + DLM + '#FT0715000' + DLM + '#FR0711200';
  lCampos:= TStringList.Create;
  try
    ExtractStrings(['#'],[' '], PChar(Str), lCampos);

    ix:= lCampos.Count-1;
    lCampos[ix-1]:= Copy(lCampos[ix-1], 1, MaxInt);
    lCampos[ix]  := Copy(lCampos[ix]  , 1, MaxInt);

    pv.Power:= lCampos[0];
    pv.Qsl  := LCampos[1];
    pv.Modo := lCampos[2];
    pv.FTX  := lCampos[3];
    pv.FTR  := lCampos[4];

    ShowValues(ListBox1.Items, pv);
  finally
    lCampos.Free;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita