Token

Top  Previous  Next

Beispiele > Rechnung > Token

 

Als Betrag sollen Ausdrücke mit Vor- und Nachkommastellen erkannt werden, wie z.B.:

 

23,8

1,35

365,-

 

 

Betrag_

 

Für Beträge, deren Nachkommateil durch einen Strich ausgedrückt ist, wird ein gesondertes Token definiert, da ein Strich nicht ohne weiteres in eine Zahl zu konvertieren ist.

 

Name:        Betrag_

Parameter:        double& xSum

Text:        (\d+),\s?-

Aktion:        xSum += stod(xState.str(1));

 

 

Das Token ist als eine Folge von Ziffern definiert, auf die ein Komma und ein Strich folgt. Optional kann vor dem Strich ein Leerzeichen stehen.

 

Der Zahlenwert des Tokens wird allein durch die Vorkommastellen bestimmt. Durch die Klammerung von "\d+" kann auf die Vorkommastellen gesondert zugegriffen werden. Der Textabschnitt, der die Vorkommastellen repräsentiert wird durch xState.str(1) zurückgegeben. Diese Rückgabe wird unmittelbar an die Konvertierungsfunktion "stod" weitergereicht, die aus dem Text den entsprechenden Double-Wert macht. Der Wert wird zur bisherigen Betragssumme, die im Parameter xSum gespeichert ist, hinzuaddiert.

 

Betrag

 

Im allgemeinen enthalten Beträge einen bezifferten Nachkommaanteil. Diese werden durch das Token "Betrag" mit erfasst:

 

Name:        Betrag

Parameter:        double& xSum

Text:        (\d+),(\d\d?)

Aktion:        xSum += stod(xState.str(1) + "." + xState.str(2));

 

 

Der Nachkommateil besteht aus einer Ziffer, aus die optional eine zweite folgen kann. Die Funktion "stod" kann Betragsausdrücke, in denen ein Komma vorkommt nicht direkt konvertieren. "stod" verlangt einen Punkt als Trenner. Zur Umwandlung der Textdarstellung des Betrags in eine Zahl wird daher intermediär die Textdarstellung selbst in die Form konvertiert, die von "stod" verlangt wird.

 

 



Diese Seite gehört zur TextTransformer Dokumentation

Home  Inhalt  English