Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
29. Sep 2017
Der Code soll natürlich nur als Richtlinie dienen. Natürlich muss man die ganze Sucherei nach den richtigen FormatSettings nicht bei jedem Wert machen. Einmalig am Anfang der Datei genügt. Danach sollte sich das ja nicht mehr ändern. (Hat Stephan ja in einem der Code-Comments schon erwähnt)
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
29. Sep 2017
Ah ja, ich vergaß! Nein, dann funktioniert das so nicht. Dann muss man erst den Dezimalseparator ermitteln und dann die Tausendertrenner eliminieren. Ist dann allerdings nicht mehr so kompakt:
function TryStrToFloatAll(const S: string; out Value: Double): Boolean;
var
sep: set of Char;
dez: Char;
I: Integer;
begin
Result := False;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
29. Sep 2017
Um meinen Vorschlag mal zu konkretisieren (hoffe mal, das geht alles unter D2006):
var
AllFormatSettings: array of TFormatSettings;
procedure InitFormatSettings;
const
cLocales: array of Integer
= (
1031, { German }
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
29. Sep 2017
Ich kenne jetzt nicht die genauen Anforderungen, aber so spontan würde ich es mit
function TryStrToFloat(const S: string; out Value: Single;
const FormatSettings: TFormatSettings): Boolean; overload;
und verschiedenen FormatSettings versuchen. Natürlich würde die Kenntnis der Sprache vorab deutlich helfen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
29. Sep 2017
Wirklich Delphi 2006 oder darf es auch etwas moderner sein?