Einzelnen Beitrag anzeigen

stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#17

AW: "Sicheres" Umwandeln von Zeichenkette in Zahl

  Alt 29. Sep 2017, 18:13
Mal 'ne etwas altertümliche Idee:

Es gibt doch die Prozedure VAL. Könnte man damit nicht "austesten"?
Delphi-Quellcode:
var
  I : Float; // oder sowas
  Code: Integer;
begin
  { Text aus Zeichenfolge übernehmen }
  Val(Zeichenfolge, I, Code);
  { Fehler bei der Konvertierung in Zahl? }
  if Code <> 0 then begin
    // In Code haben wir jetzt die Position des Zeichens,
    // dass eine Konvertierung in eine Zahl verhindert.
    // Dieses Zeichen könnte man jetzt auswerten, um zu erfahren
    // ob es der Tausendertrenner oder der Dezimalseparator ist.
    // Einen derartigen Test müsste man dann (hoffentlich nur) für die erste Zeile
    // einer CSV-Datei machen und könnte damit ermitteln, welche Zeichen
    // zu tauschen sind.
  end;
end;
Hab ich jetzt mal kurz ausgetestet.
ein Test mit 1.024,15 ergibt die Fehlerposition '6', das bedeutet dann, erst alle Punkte zu entfernen und anschließend eine Umwandlung des Kommas in einen Punkt.
Ja, auch as funktioniert dann.
  Mit Zitat antworten Zitat