Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Komma in Punkt umwandeln mit "for to-schleife"


kiwicht - Do 30.01.03 18:44
Titel: Komma in Punkt umwandeln mit "for to-schleife"

Quelltext
1:
2:
for i := 1 to Length(bruttotest) do begin
if bruttotest[i] = ',' then bruttotest[i] := '.';


....müsste doch eigentlich aus jedem Komma ein Punkt machen.. tuts aber nicht. liegt auf dem OnExit-Ereigniss eines EditFeldes...Und BruttoTest ist eine String-Variable.

weiß einer warum?

oder besser, gibt es fertige proceduren, um aus Integern mit Komma(10,5) Integer mit Punkt (10.5) zu machen?

mfg & thx

kiwicht


Brueggendiek - Do 30.01.03 18:54

Hallo Kiwicht!

Dein Programm ist in Ordnung. Der Fehler kann nur an einer anderen Stelle liegen. Vielleicht ist "Bruttotest" noch nicht vorbelegt oder wird in einem späteren Ereignis wieder überschrieben.

Da hilft nur der Debugger - Breakpoint auf das OnExit, verfolgen und nachsehen, ob der Anfangs- und Endwert stimmen. Danach prüfen, wer noch an der Variablen rumpfudelt.
Wird das OnExit überhaupt aufgerufen??
Vielleicht ist es sogar besser, die Umwandlung erst vor der Weiterverarbeitung des Wertes durchzuführen.

Gruß

Dietmar Brüggendiek


Raphael O. - Do 30.01.03 19:20

könntest es auch damit machen:
Zitat:
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);


in deinem quelltext kann ich keinen fehler finden...

noch mal suchen und evtl. mehr posten...

Fiji-Fighter


Delete - Do 30.01.03 20:26

Ich nehme an es geht darum das StrToFloat nicht richtig geht. Kuck dir deswegen mal in der Hilfe DecimalSeperartor an. Damit kannst du ihn abfragen und setzen.


kiwicht - Fr 31.01.03 00:26

also hintergrund der geschicht:
in meinem datenbank-programm will ich per update u.a. dieses brutto-feld aktualisieren.
das feld ist in der datenbank als "Integer" deklariert, es ist aber möglich den brutto-wert als "string" an die datenbank zu übergeben. ausser in dem string befinden sich ausser dem punkt eine zahl.

also hab ich (zum testen erstmal) auf ein edit-feld die betreffende methode gelegt (onExit), um zu sehen, ob alles seinen gang geht. was ja nicht der fall ist, aber ich glaube jetzt zu wissen wo das problem liegt. undzwar wandelt delphi zwar schön das komma in ein punkt um, aber davon hat mein edit-feld ja nichts! schließlich muss ich die variable an jenes ja noch übergeben.... doch nicht mehr heute, werds morgen früh mal testen.

erstmal danke für eure hinweise

mfg


kiwicht - Fr 31.01.03 09:14

guten morgen allerseits...

und es war! .... der fehler.
klappt so wie ich es mir gedacht hab... jaja, die dummheit der homo sapiens kann manchmal unendlich sein... :roll:

danke für eure hilfe

mfg
kiwicht


foxy - Fr 31.01.03 15:02

ich weis ich sollte das hier nicht reinposten, aber anders antwortet mir kiwi nich ... schau mal bitte in deine PN sektion danke !!!!!


kiwicht - Fr 31.01.03 18:57

u got mail! 8)