Hej Kasper og Jeppe
Principielt er det uden betydning om det er fra en GPS eller noget helt andet. Men for senere læsere og for de, som gerne vil vide noget om GPS data så er her en fin side med listning at datastrenge:
http://www.commlinx.com.au/NMEA_sentences.htm Data kommer ud i serielt format og kan nemt læses på en COM port.
Men nu til sagen. Her er nogle eksempler fra min PC med US/UK Win, men med metriske instillinger.
En form med to labels kaldet Label1 og Label2.
procedure TForm1.FormCreate(Sender: TObject);
var
C,D:double;
Komma,Punktum:string;
begin
Komma:='123,456';
C:=StrToFloat(Komma);
Label1.Caption:=FloatToStr(C);
Punktum:='123.456';
D:=StrToFloat(Punktum);
Label2.Caption:=FloatToStr(D);
end;
Dette eksempel giver fejl ved D:=StrToFloat(Punktum); af typen EConvertError.
Så jeg lader mig inspirere af denne:
http://delphi.about.com/library/rtl/blrtlTFormatSettings.htm
procedure TForm1.FormCreate(Sender: TObject);
var
C,D:double;
Komma,Punktum:string;
fs : TFormatSettings;
begin
GetLocaleFormatSettings(0,fs);
// fs.DecimalSeparator:='.';
fs.DecimalSeparator:='.';
Komma:='123,456';
C:=StrToFloat(Komma);
Label1.Caption:=FloatToStr(C);
Punktum:='123.456';
D:=StrToFloat(Punktum);
Label2.Caption:=FloatToStr(D);
end;
fs.DecimalSeparator:='.'; eller fs.DecimalSeparator:=','; gør ingen forskel. Jeg for stadig EConvertError ved D:=StrToFloat(Punktum);
Mik D.