Function KommaToPunktum(s: string):string; Var i: word; Begin Result := s; i := pos(\',\',Result); if i > 0 then begin delete(Result,i,1); Insert(\'.\',Result,i); end; end;
Det viser sig (som tidligere konstateret) at Microsoft har lavet en megabommert ved at sætte forskellige standarder altefter om man kører American eller andet. Og efter som Delphi følger Windows, kan det give fantastisk underlige fejlmeldinger.
...Ja så skal man faktisk bruge denne function istedet:
Function TextToCurrency(Const S: String):Currency; Var i, k: Integer; Numerals: Set Of Char; temp: String; Begin Numerals := [\'0\'..\'9\',\'-\', \'+\',DecimalSeparator, ThousandSeparator]; i := 1; While (i<=Length(S)) and not (S[i] In Numerals) Do Inc(i); Exclude(Numerals, \'-\'); Exclude(Numerals, \'+\'); k:= i+1; While (k<=Length(S)) and (S[k] In Numerals) Do Begin If S[k] = DecimalSeparator Then Begin Exclude(Numerals, DecimalSeparator); Exclude(Numerals, ThousandSeparator); End; Inc(k); End; {While} If (i <= Length(S)) Then Begin temp := Copy(S,i,k-i); For i:= length(temp) downto 1 Do If temp[i] = ThousandSeparator Then Delete(temp, i, 1); Result := StrToCurr(temp) End Else raise EConvertError.CreateFmt(\'%s is not a valid currency value!\', [S] ); End; {TextToCurrency}
Jeps, men FloatToStr sætter ikke tusindadskiller med mindre man ber om det.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.