AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Markup-Parser

Ein Thema von hansklok · begonnen am 18. Apr 2016 · letzter Beitrag vom 26. Apr 2016
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Markup-Parser

  Alt 18. Apr 2016, 17:03
Also du willst quasi so etwas daraus bekommen:
Code:
[
  {
    "style": null,
    "elements":[
      {
        "color": null,
        "style": [],
        "content": "Das ist mein erster Absatz"
      }]
  },
  {
    "style": "Normal",
    "elements":[
      {
        "color": null,
        "style": [],
        "content": "Und hier beginnt mein zweiter Absatz, der das Absatzformat "Normal" hat und der "
      },
      {
        "color": null,
        "style": ["Fett"],
        "content": "formatierten, "
      },
      {
        "color": "rot",
        "style": ["Fett"],
        "content": "farbigen"
      },
      {
        "color": null,
        "style": [],
        "content": " Text darstellen kann."
      }]
  },
  {
    "style": null,
    "elements":[
      {
        "color": null,
        "style": [],
        "content": "Ach ja und das hier ist der dritte Absatz."
      }]
  }
]
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
hansklok

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

AW: Markup-Parser

  Alt 18. Apr 2016, 17:10
Ja, ganz genau Sir Ruf JSON wäre beispielsweise ja gar nicht so übel (siehe Dein Beispiel). Wobei anzumerken ist, dass ich den Color-Tag nicht benötige, da meine Reports nur auf globalen Styles aufbauen. Somit wird die Textfarbe auch als Character-Style gespeichert. Wie "Fett", ist also auch "Rot" ein Character-Style. Der zweite Absatz enthält jedoch verschachtelte Markup, daher müsste das eher so ausschauen:

Code:
{
    "style": "Normal",
    "elements":[
      {
        "style": null,
        "content": "Und hier beginnt mein zweiter Absatz, der das Absatzformat Normal hat und der "
      },
      {
        "style": "Fett",
        "elements":[
          {
            "content": "formatierten, "
          },
          {
            "style": "Rot",
            "content": "farbigen"
          }]
      },
      {
        "style": null,
        "content": " Text darstellen kann."
      }]
  }

Geändert von hansklok (18. Apr 2016 um 17:32 Uhr)
  Mit Zitat antworten Zitat
hansklok

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

AW: Markup-Parser

  Alt 19. Apr 2016, 19:36
Hmm, offenbar scheint das noch nie jemand in ähnlicher Form gebraucht zu haben?!

Noch ein paar Gedanken dazu:
  • Zuerst würde ich das ganze jeweils in Absätze splitten (Zeilenumbruch)
  • Und dann die einzelnen Paragraphen in Tokens aufteilen, mittels RegEx [^\s]+
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Markup-Parser

  Alt 19. Apr 2016, 20:28
Du kannst dir etwas zusammenfrickeln (mit RegEx) oder einen echten Parser schreiben.

So ein Parser geht Zeichen für Zeichen durch und entscheidet anhand des aktuellen Status, was passieren soll. Wäre auf jeden Fall meine Wahl der Mittel.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
hansklok

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

AW: Markup-Parser

  Alt 19. Apr 2016, 21:13
Das hab ich mir schon gedacht, dass der Parser die beste Variante ist. Ich habe nur null Plan, wie das umzusetzen ist, weil, sobald der Parser z.B. beim ersten { angelangt ist und weitere Verschachtelungen folgen, wird es doch mega kompliziert?!
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Markup-Parser

  Alt 25. Apr 2016, 15:46
Wir benutzen CoCo https://de.wikipedia.org/wiki/Coco/R
  Mit Zitat antworten Zitat
hansklok

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

AW: Markup-Parser

  Alt 26. Apr 2016, 12:47
Cool, danke und wie funktioniert der? Hast Du ein Beispiel?
  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 02:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz