Ver Mensaje Individual
  #1  
Antiguo 01-03-2015
CM6ISG CM6ISG is offline
Registrado
NULL
 
Registrado: feb 2015
Posts: 4
Reputación: 0
CM6ISG Va por buen camino
¿Cómo cortar cadenas en Delphi 7?

Tengo en una variable con unas cadenas que me entrega el radio de una sola vez y quiero dividir esa cadena, en 5 cadenas y cada cadena tenerla en una nueva variable.
Esta lista de cadena la veo en un Memo
#PO0
#SQS
#EM0
#FT0715000
#FR0711200

Ahora La variable Str tengo esta cadena #PO0 #SQS #EM0 #FT0715000 #FR0711200
Entre cada cadena hay un cambio de línea y un enter, eso lo veo con un monitor de puerto es decir el radio me envía
#PO0#13#10
#SQS#13#10
Lo que necesito hacer es cortar la cadena en 5 y pasarla a 5 variables, es decir
Variables Power, SQ, Modo, FTX y FRX y en ese proceso quitarle el sino de numero (#) de las 3 primera variables y de las dos ultima quitarle (#FT y #FR) que viene delante.
Una ves hecho esto con las tres primeras variable la usare para: ejemplo

Código Delphi [-]
If Power = 'PO0' Then Begin Label7.Visible := True; end;


Con las dos ultima pasarla a un edit: Edit1.Text := Edit1.Text + FTX;
Ahora ajunto la última idea que estuve probando que me funciona en parte, pero no sé como asignar el resultado a las 5 nuevas variables



Código Delphi [-]
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
 var Str: String;
 lCampos : TStringList; i: integer;
 begin 
ComPort.ReadStr(Str, Count);
Memo.Text := Memo.Text + Str; 
lCampos := TStringList.Create; 
ExtractStrings(['#'], [' '], PChar(Str),
lCampos); for i := 0 to lCampos.Count-1 do
 Begin 
ShowMessage(lCampos[i]);
 end;

De esta manera logro obtener que me muestre 5 mensajes así: PO0 SQS EM0 FT0715000 FR0711200 solo me faltaría quitarle a la dos ultima de FR y FT el numero es variable pero siempre tendrá es formato de 7 caracteres.

¿Como pudiera pasar ese resultado a las 5 variables? que les comente, o si pueden decirme otra manera de lograr lo que quiero. Muchas gracias de antemano..

Última edición por CM6ISG fecha: 01-03-2015 a las 04:16:58. Razón: Correcion de Etiqueta
Responder Con Cita