AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Automatisierte Satzerstellung aus Objekteigenschaften mittels RegEx
Thema durchsuchen
Ansicht
Themen-Optionen

Automatisierte Satzerstellung aus Objekteigenschaften mittels RegEx

Offene Frage von "jobo"
Ein Thema von hansklok · begonnen am 5. Jul 2017 · letzter Beitrag vom 5. Jul 2017
Antwort Antwort
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, 12: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 13:10 Uhr)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Automatisierte Satzerstellung aus Objekteigenschaften mittels RegEx

  Alt 5. Jul 2017, 14:37
Vielleicht ein Fall für Regex back references.
öffnende / schließende HTML Tags kann man damit auch erwischen.
Leere Variablen kann man vlt. entweder stumpf ersetzen und mit Leerwert vergleichen, dann ggF. rauswerfen oder die entsprechenden Abschnitte gleich restlos entfernen, wenn Quellwerte leer sind.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz