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