Zitat von
Der_Unwissende:
Ok, Du verwendest die fConvertStrToDouble-Methode. Da ich gerade nichts zu der finde mal die Frage, wo kommt die denn her? Was macht die denn? Und falls die nur in meiner Hilfe fehlt, gibt es die überladen, so dass man hier wieder einen Dezimalseperator angeben könnte?
Nein, die gibt es nicht überladen, da ich mir die Methode selber geschrieben habe. Ich paste sie mal hier rein
Delphi-Quellcode:
{_______________________________________________________________________________
Wandelt einen String in eine Floatzahl um
@param Fstring (in) : String, der umgewandelt werden soll
@param decimals (in) : Anzahl der Nachkommastellen
@return (out) : 0 --> Zahl konnte nicht umgewandelt werden
sonst --> umgewandelte Float-Zahl
_______________________________________________________________________________}
function fConvertStrToDouble(Fstring : string ; decimals : integer):double;
var
i : byte;
temp : double;
settings : TFormatSettings;
begin
Result := 0;
kommaCount := 0;
//englischen Zahlen-Standard laden (Decimalseperator = '.')
GetLocaleFormatSettings(1033, settings);
for i := 1 to Length(Fstring) do
if Fstring[i] = ',' then begin
fString[i] := '.';
end;
//String umwandeln
if TryStrToFloat(Fstring,temp,settings) then
Result := temp;
end;
Beschreibe nochmal kurz, was ich überhaupt machen will. Also ich lese eine Txt-Datei ein, in der Datensätze gespeichert sind. Es geht halt darum diese Datensätze nun in der Datenbank zu speichern. In der Txt-Datei sind die Fließkommazahlen mit einem ',' gespeichert.
Ich lese also die Zahl mit dem Komma als String ein und will es dann in der fConvertStrToDouble umwandeln. Wie du siehst habe ich da auch schonmal mit den TFormatSettings gearbeitet. (Ist das überhaupt .Net-Kompatibel?)
Wie gesagt, bisher sind bei mir alle Versuche mit dem Komma als Separator zu arbeiten, fehlgeschlagen.