Einzelnen Beitrag anzeigen

hansklok

Registriert seit: 14. Apr 2004
Ort: Karlsruhe
318 Beiträge
 
Delphi 2010 Architect
 
#1

Automatisierte Satzerstellung aus Objekteigenschaften mittels RegEx

  Alt 5. Jul 2017, 11:50
Hallo alle miteinander,

ich bin auf die folgende Seite gestossen: http://www.gedsite.com/en/sentences.htm. Es handelt sich um ein Programm, wo man Lebensereignisse zu einem Personendatensatz hinzufügen kann und mittels Variablen eine Satzstruktur erstellen kann, in der dann die Variablen durch die im Ereignis definierten Werte ersetzt werden.

Ein Ereignis setzt sich beispielsweise durch einen Ereignistyp (Geburt, Taufe, Tod etc.), ein Datum, einen Ort und einen Ereignissatz zusammen. Dabei sind die Angabe des Datums [D] (für Date) und des Ortes [L] (für Location) optional. Der Ereignissatz kann nun wie folgt aussehen:

[S] died< on [D]>< at [L]>. ([S] ist der Name der Person)

Alles das, was zwischen den spitzen Klammern auftaucht, wird nur ausgegeben, wenn das Ereignis die entsprechende Eigenschaft besitzt, sonst nicht. Würde jetzt aber anstelle des Beispiels oben, das hier stehen

[S] died on [D] at [L]. ,

würden die Teile garantiert ausgegeben und falls die Eigenschaften nicht gesetzt werden folgendes ausgegeben: Max Mustermann died on at .

Meine Frage also ist, wie man für dieses Prozedere eine günstige, schnelle Suchen und Ersetzen Methode kreiert. Reguläre Ausdrücke bieten sich an und sind bei diesem einfachen Beispiel für mich auch kein Problem. Schwierig wird es aber ab dem Bereich, der auf der verlinkten Seite unter Alternatives zu finden ist. Wie Liese sich so etwas umsetzen? Ideen?

Was es für mich noch schwieriger macht, wenn man sich den Abschnitt Variables for Formatting anseht, erkennt man ja, dass primitive Formatierungen der Textausgaben möglich sind. An sich muss man also nach zwei verschiednen Syntaxen suchen und diese entsprechend behandeln. Wie könnte man das Beispiel

[S] died [ITAL]< on [BOLD][D][/BOLD] >< at [L]>[/ITAL] .

in einem RichEdit formatiert ausgeben. Schwierig scheint mir hier, dass die Formatierungsbefehle beliebig verschachtelt auftreten können. Vielleicht hat ja jemand einen Ansatz und man kann sich gemeinsam etwas Zusammenspinnen,

Dankeschön!

Geändert von hansklok ( 5. Jul 2017 um 12:10 Uhr)
  Mit Zitat antworten Zitat