demorei mas consegui este código aqui e pode servir para outra pessoas que tenha precisão, com uma amiga chamada Melissa e não estou entrar em contato com ela
estou sem o Delphi e no Lazarus já dá mesensagem de erro bem na primeira linha do case e não estou conseguindo acertar isso e não sei se tem mais coisas que podem travar na frente
Agradecido a quem poder dar um auxilio
begin
case P_Caracter of
‘º’: Result := StrToInt(Trim(Copy(P_Texto, 1, Pos(P_Caracter, P_Texto)-1)));
__________________________________________________________________________________________
Melissa
Segue solução em Delphi, destaco que Edit1 e Edit2 esperam uma string válida, com o formato: ggº mm’ ss”
————–
procedure TForm1.Button1Click(Sender: TObject);
function GetValorNumerico(const P_Texto: string; const P_Caracter: Char): Integer;
begin
case P_Caracter of
‘º’: Result := StrToInt(Trim(Copy(P_Texto, 1, Pos(P_Caracter, P_Texto)-1)));
””: Result := StrToInt(Trim(Copy(P_Texto, Pos(‘º’, P_Texto)+2, 2)));
‘”‘: Result := StrToInt(Trim(Copy(P_Texto, Pos(””, P_Texto)+2, 2)));
end;
end;
var
W_Graus1: integer;
W_Minutos1: integer;
W_Segundos1: integer;
W_Graus2: integer;
W_Minutos2: integer;
W_Segundos2: integer;
W_Graus3: integer;
W_Minutos3: integer;
W_Segundos3: integer;
begin
W_Graus1 := GetValorNumerico(Edit1.Text, ‘º’);
W_Minutos1 := GetValorNumerico(Edit1.Text, ””);
W_Segundos1 := GetValorNumerico(Edit1.Text, ‘”‘);
W_Graus2 := GetValorNumerico(Edit2.Text, ‘º’);
W_Minutos2 := GetValorNumerico(Edit2.Text, ””);
W_Segundos2 := GetValorNumerico(Edit2.Text, ‘”‘);
if W_Segundos1 < W_Segundos2 then
begin
Dec(W_Minutos1);
Inc(W_Segundos1, 60);
end;
W_Segundos3 := W_Segundos1 – W_Segundos2;
if W_Minutos1 < W_Minutos2 then
begin
Dec(W_Graus1);
Inc(W_Minutos1, 60);
end;
W_Minutos3 := W_Minutos1 – W_Minutos2;
W_Graus3 := W_Graus1 – W_Graus2;
Label1.Caption := Format(‘%dº %d” %d”‘, [W_Graus3, W_Minutos3, W_Segundos3]);
end;