AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

string to Float, für lesen aus einer Datei

Ein Thema von bernhard_LA · begonnen am 17. Mär 2018 · letzter Beitrag vom 18. Mär 2018
Antwort Antwort
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
540 Beiträge
 
Delphi 12 Athens
 
#1

AW: string to Float, für lesen aus einer Datei

  Alt 17. Mär 2018, 16:16
Es gibt dann aber noch folgende Schreibweise für Zahlen, die berücksichtigt werden müssten:

10,000,000.34 oder ev. auch 10.000.000,34
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#2

AW: string to Float, für lesen aus einer Datei

  Alt 17. Mär 2018, 19:20
Es gibt dann aber noch folgende Schreibweise für Zahlen, die berücksichtigt werden müssten:

10,000,000.34 oder ev. auch 10.000.000,34
. . . siehe Post #2 :
"Mehrere Vorkommen des Dezimalseparators innerhalb eines einzelnen Wertes sind ja eh nicht zulässig, ..."

bei "10.000.000,34" könnt' ich mir glatt überlegen, ob dies eine IP-Adresse sein soll

aber mal ernsthaft : ich hab' solche Schreibweisen mit mehreren Separatoren auch schon gesehen und dann gegrübelt, was das denn nun sein soll - man kann von einer Software nicht erwarten, dass sie die Absicht oder Meinung desjenigen errät, der sich bei der Schreibweise von Zahlenwerten nicht an gängige Normen hält.
Im obigen Beispiel fallen mir gleich 4 mögliche Lösungen ein, die ich dann abfragen bzw. auswerten müsste . . .
Markus H.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: string to Float, für lesen aus einer Datei

  Alt 17. Mär 2018, 22:46
"Mehrere Vorkommen des Dezimalseparators innerhalb eines einzelnen Wertes sind ja eh nicht zulässig, ..."
Im obigen Beispiel fallen mir gleich 4 mögliche Lösungen ein, die ich dann abfragen bzw. auswerten müsste . . .
Ich bin der Meinung das bei dem Beispiel nur ein Dezimalseperator vorhanden ist.
Als Lösung für so eine Situation schwebt mir so etwas vor:
String in einer Schleife nach "." und "," suchen lassen, das zuletzt gefundene wird als Seperator genommen, im gleichen Atemzug werden die 100'er Markierungen entfernt.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.554 Beiträge
 
Delphi 7 Professional
 
#4

AW: string to Float, für lesen aus einer Datei

  Alt 18. Mär 2018, 10:58
Und was passiert hierbei?

1.001
1,001
100,001
100.001

Was ist jetzt Eintausendeins und was Einskommanullnulleins?
Was ist Einhundertkommanullnulleins und was Einhunderttausendeins?

Für eine sichere Erkennung des Dezimalseparators benötigt man mindestens zwei Tausenderseperatoren und damit Werte über einer Million.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: string to Float, für lesen aus einer Datei

  Alt 18. Mär 2018, 11:38
Ich verstehe was Du meinst, da wird es schnell chaotisch.
Na dann Fragen wir doch mal den TE ob 1000'er Markierungen überhaupt vorliegen.

So hier könnte man testen ob eine Konvertierung gelingt bevor man es konvertiert:
Code:
funtion TestFloatStr ( S : String ) : Boolean;
begin
  try
    StrToFloat(s); // normal aufrufen
    result := true; // scheint keine Exception auszulösen also ist Wert gut
  except
    result := false; // oh-oh, fehler!
  end;
end;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.609 Beiträge
 
Delphi 12 Athens
 
#6

AW: string to Float, für lesen aus einer Datei

  Alt 18. Mär 2018, 11:50
So hier könnte man testen ob eine Konvertierung gelingt bevor man es konvertiert:
Oder man benutzt gleich TryStrToFloat oder Double.TryParse mit den erwarteten FormatSettings . Das hat den Nebeneffekt, daß es auch gleich konvertiert, wenn das denn möglich ist.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: string to Float, für lesen aus einer Datei

  Alt 18. Mär 2018, 15:05
Das mit dem Double.TryParse war mir neu und klingt interessant, ich habe jetzt ein wenig darüber gelesen, per CultureInfo/InvariantCulture kann man das "." und "," Problem in den Griff bekommen. Aber wenn die Quelle gemixt ist, da hilft sowas auch nicht weiter, vermute ich, Danke für den Tipp!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr.
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 by Thomas Breitkreuz