Bonjour à tous,
Je reviens encore vers vous car, si en suivant les conseils de J. Pork (un grand merci !!) j'ai pu accéder aux données émises par le port Com :
Je n'arrive pas à isoler dans la chaine constituée StrPoidsActu Les données qui m'intéressent qui sont la suite de carcatères Nombres ( 0 ..9) et le point décimal (.) pour pouvoir ensuite les utiliser pour la suite du programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 procedure TF_balanc.Laz_serieRxData(Sender: TObject); // accès au Port série - lecture des données Var CurPos : integer ; Var Strbal : String ; // chaine lecture du port série // Var chainStock , Caract_lu2 : String ; Var Totol : integer ; Var iii, ijk : integer ; begin Strbal := Laz_serie.readData ; // instruction de lecture des données émises Sleep(200) ; CurPos :=Pos(Char(10), Strbal) ; if length(StrPoidsActu) > 10 then StrPoidsActu:= '' ; // Chaine de carcatère à stocker if CurPos = 0 then Begin StrPoidsActu := StrPoidsActu + Strbal ; end Else Begin StrPoidsActu := StrPoidsActu + Copy(StrBal , 1, CurPos -1) ; end;
J'obtiens par exemple dans StrPoidsActu ' + 1025.3 g' #13et il m'est impossible d'isoler 1025.3 .
Dans mon ancien programme sous Delphi4 je stoppais la lecture du port série par Laz_Serie.PurgeRead et je travaillais ensuite la chaine StrPoidsActu pour en sortir une chaine ne contenat que ce qui pouvait constituer un nombre, mais je n'ai pas trouvé pour LazSerial l'instruction adéquate.
Qui peut me renseigner sur la dynamique détaillée des instructions déjà écrites et à écrire pour arriveer à mes fins ?
Merci
R.O.
Partager