Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String auf bestimmtest Format (Geokoordinaten) prüfen und verbessern (https://www.delphipraxis.net/173959-string-auf-bestimmtest-format-geokoordinaten-pruefen-und-verbessern.html)

DeddyH 26. Mär 2013 11:01

AW: String auf bestimmtest Format (Geokoordinaten) prüfen und verbessern
 
Und nun?

BBoy 26. Mär 2013 12:19

AW: String auf bestimmtest Format (Geokoordinaten) prüfen und verbessern
 
Danke für die Routine!
data.NSMinutes und Data.EWMinutes zeigt er aber nur die 1. stelle an, also eine 4 bzw 3. Wüsste nicht woran das liegt..

DeddyH 26. Mär 2013 12:25

AW: String auf bestimmtest Format (Geokoordinaten) prüfen und verbessern
 
Die Routine war eigentlich gar nicht in der Form für den Produktiveinsatz gedacht. Hast Du mal debuggt? Betrifft das nur die Ausgabe, oder sind die Daten schon falsch?

BBoy 26. Mär 2013 13:06

AW: String auf bestimmtest Format (Geokoordinaten) prüfen und verbessern
 
Die Routine passt aber fast genau für mich, daher habe ich mich dieser bemächtigt :)
Es waren ein paar kleine Tippfehler drin, die habe ich verbessert. aber warum der nur die 1. stelle anzeigt verstehe ich nicht.
data.NSMinutes enthält 41,766 es liegt am Format Befehl.

DeddyH 26. Mär 2013 13:10

AW: String auf bestimmtest Format (Geokoordinaten) prüfen und verbessern
 
Und Du hast den Code per C&P eingefügt? Bei mir kommt nämlich beim ShowMessage
Zitat:

N 49° 41.766 E 008° 31.672
heraus.

BBoy 26. Mär 2013 13:31

AW: String auf bestimmtest Format (Geokoordinaten) prüfen und verbessern
 
Ja C&P. Bei mir gibt es aber Settings := TFormatSettings.Create; und auch TFormatSettings.Create(LOCALE_USER_DEFAULT); nicht! Die Zeile habe ich weggelassen.

DeddyH 26. Mär 2013 13:35

AW: String auf bestimmtest Format (Geokoordinaten) prüfen und verbessern
 
Ich habe hier kein Delphi 5 zur Verfügung. Was kommt denn hierbei heraus?
Delphi-Quellcode:
var
  OldSep: char;
begin
  OldSep := DecimalSeparator;
  try
    DecimalSeparator := '.';
    ShowMessage(Format('%.3f', [12.34567]));
  finally
    DecimalSeparator := OldSep;
  end;
end;

BBoy 26. Mär 2013 13:43

AW: String auf bestimmtest Format (Geokoordinaten) prüfen und verbessern
 
Ergebnis=12.346

Kann es vlt. am , liegen bei data.NSMinutes (41,766) ?

Delphi 5? Habe Delphi 2009

DeddyH 26. Mär 2013 13:55

AW: String auf bestimmtest Format (Geokoordinaten) prüfen und verbessern
 
Im Ausgangspost hast Du Delphi 5 angegeben. Ja, es wird wahrscheinlich am Komma liegen, deshalb ja der "Aufwand" mit den FormatSettings. Da musst Du mal in der Hilfe nachlesen, wie das unter Delphi 2009 genau funktioniert.

[edit] Neuer Versuch:
Delphi-Quellcode:
var
  Settings: TFormatSettings;
begin
  GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, Settings);
  Settings.DecimalSeparator := '.';
  ShowMessage(Format('%.3f', [12.34567], Settings));
end;
[/edit]

BBoy 26. Mär 2013 15:06

AW: String auf bestimmtest Format (Geokoordinaten) prüfen und verbessern
 
Hier bekomme ich nur eine 1 als Ergebnis.
War das Ergebnis 12.346 aus dem letzten Test nicht ok?

Ich habe mal Data.EWMinutes := 41.278; direkt zugewiesen und mit Format ausgegeben. es wird immer noch nur die 1. stelle angezeigt. Ich komme nicht dahinter an was es liegt.

Edit:// wenn ich ShowMessage(Format('%.3f', [data.ewminutes])); mache dann funktioniert es!

Edit://
So geht es:
Delphi-Quellcode:
  DecimalSeparator := '.';
  showmessage(Format('%s %.2d%s %.3f %s %.3d%s %.3f', [
    Data.NSOrientation,
    Data.NSDegree,
    DEGREESIGN,
    Data.NSMinutes,
    Data.EWOrientation,
    Data.EWDegree,
    DEGREESIGN,
    Data.EWMinutes]));


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz