AGB  ·  Datenschutz  ·  Impressum  







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

Konzept - BBCode Parser

Ein Thema von Prototypjack · begonnen am 14. Mai 2007 · letzter Beitrag vom 12. Okt 2007
 
Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#1

Konzept - BBCode Parser

  Alt 14. Mai 2007, 12:58
Moin!

Ich plane momentan eine Komponente zu erstellen, die mit BBCode zurechtkommt und diesen auch erwartungsgemäß darstellen kann.

Was ich mich diesen Thread erreichen will ist, ob das, was ich bis jetzt geplant habe, überhaupt Sinn ergibt, verbesserungswürdig ist, oder tatsächlich gut ist.

Meine Überlegungen:

Zitat:
Da gibt es eine Funktion ( ), sie hat einen Parameter, in dem gespeichert ist, welche Formatierung gerade aktiv ist (Record, mit Werten wie Bold(Boolean) usw.) und einen Widestring-Wert, der den jeweiligen zu parsenden Text enthält.

Eine Funktion liest den gesamten Text, sie übergibt jeden einzelnen Buchstaben in ein Mehrdimensionales Array (Zweidimensional, also array of array of TExtendedchar). Falls ein BBCode-Tag gefunden wird, wird zuerst überprüft ob es ein passendes End-Tag gibt (wenn nicht wird es einfach ignoriert und nach dem nächsten BB-Tag gesucht), sollte dies der Fall sein, wird das Tag geparsed, entschieden, welches Formatierungszeichen zulässig ist (bei [b] zum Beispiel Record.Bold := True), dann wird der Startparameter der Funktion genommen (Lokale-Kopie), um dieses BB-Tag erweitert (Beispiel: Attribut Bold := True wird hinzugefügt) und ALLES was zwischen dem Start und dem End-Tag liegt wird an die Funktion (Rekursiv) selbst übergeben (zusammen mit dem Lokalen-Start Parameter).

Wenn die Funktion beendet ist, habe ich in der ersten Dimension des Arrays alle Lines des Memos, in der zweiten (jeweiligen) einen Record (TExtendedChar), welcher dann alle Attribute, die in diesem Moment aktiv waren und den Char enthält.

Später kann ich dieses Array durchgehen, und alle Buchstaben einzeln (oder, vielleicht, immer den Pack, wo die Formatierung gleich ist, also z.B. die drei Einheiten des Arrays der 2ten Dimension, welche alle Bold und Italic beinhalten), per TextOut und vorheriger anpassung der Attribute eines Canvas ausgeben.
Kann man das so umsetzen? Gibt es bereits etwas brauchbares? Gibt es Performancebedenken? Haltet ihr mich für verwirrt und versteht nicht was ich meine?

Gruß,
Max
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat
 


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 11:02 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