Daten laden |
Top Previous Next |
Wie kann man ... > Daten laden
Bisweilen werden in einem Projekt externe Daten benötigt. Einzelne Parameter können als Start-Parameter übergeben werden Es ist aber auch möglich größere Datenmengen aus einer externen Datei einzulesen.
Im folgenden Beispiel soll eine Vornamensliste dazu verwendet werden, um zu entscheiden, ob es sich bei einem mit einem Token NAME erkannten Namen um einen Vornamen handelt oder nicht. Das geht mit folgendem Code, wenn die Vornamen als Schlüssel in der map m_mFirstNames gespeichert sind.
NAME {{ if(m_mFirstNames.findKey(to_upper_copy(xState.str()))) xsVorname = xState.str(); else xsNachname = xState.str(); }}
Um die Vornamen in die map einzulesen, wird zunächst eine Datei mit den Namen in einen string buf geladen, der dann anschließend mit der Produktion ReadFirstNames geparst wird.
{{ str buf;
if(!load_file(buf, "FirstNames.txt")) throw CTT_Error("\"FirstNames.txt\" konnte nicht geladen werden");
ReadFirstNames(buf); }}
Die Produktion ReadFirstNames wird hier als Unter-Parser innerhalb der semantischen Aktion aufgerufen. Die Liste könnte so aussehen:
AARON ACHIM ADALBERT ADALIA ADAM ADELBERT ADELE ...
Sie ist sehr einfach zu parsen:
( SKIP {{ m_mFirstNames[trim_right_copy(xState.str())] = ""; }} EOL )*
|
Diese Seite gehört zur TextTransformer Dokumentation |
Home Inhalt English |