AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Code formatieren

Ein Thema von colder · begonnen am 6. Aug 2006 · letzter Beitrag vom 6. Aug 2006
Antwort Antwort
Benutzerbild von colder
colder

Registriert seit: 23. Jul 2004
Ort: Bonn
30 Beiträge
 
Delphi 7 Professional
 
#1

Code formatieren

  Alt 6. Aug 2006, 07:23
Hallo,

wir setzen in unserer Firma eine eigene Scripting-Language ein.
Für diese Scripting-Language habe ich eine IDE geschrieben. Was
mir jetzt noch fehlt ist ein Code-Fomatter in Form von DelForEx
oder Jedi Code Formatter.

Leider habe ich keine Ahnung wo ich da ansetzen soll. Hat jemand
eine Idee oder Erfahrung wie man so etwas angeht.

hier mal so ein Code-Auszug aus der Language

Delphi-Quellcode:
Uses ("..\Lib\Util.csl")
[b]Vorher:[/b]
/*-----------------------------------------------------------------------------------------*\
Detect ()
Result : Detect Access
\*-----------------------------------------------------------------------------------------*/
Function Main (bValidate As Bool, uText As DynStruct) As Bool
Dim bRet As Bool = CheckDetect ()
Dim lsInfo As List Of String = RestoreMessage ()

// Version und Application konnten nicht initialisiert werden Util-Function
// Meldung wird in Util generiert (RestoreMessage). Detect im Restore-Modus
// sind die Version differnt so benötigt das Module ein Mapfile. Ist dieses
// nicht vorhanden so ist kein Restore möglich.

If ((Not cpStoring) And (Not bRet))
uText.Title = lsInfo [1]
uText.Description = lsInfo [2]
EndIf


Return (bRet)

EndFunction


[b]Nachher:[/b]

Uses ("..\Lib\Util.csl")
/*-----------------------------------------------------------------------------------------*\
   Detect ()
   Result : Detect Access
\*-----------------------------------------------------------------------------------------*/
Function Main (bValidate As Bool, uText As DynStruct) As Bool
  Dim bRet As Bool = CheckDetect ()
  Dim lsInfo As List Of String = RestoreMessage ()

  // Version und Application konnten nicht initialisiert werden Util-Function
  // Meldung wird in Util generiert (RestoreMessage). Detect im Restore-Modus
  // sind die Version differnt so benötigt das Module ein Mapfile. Ist dieses
  // nicht vorhanden so ist kein Restore möglich.

  If ((Not cpStoring) And (Not bRet))
   uText.Title = lsInfo [1]
   uText.Description = lsInfo [2]
  EndIf

  Return (bRet)

EndFunction
Miniaturansicht angehängter Grafiken
ccvisualscripter_939.jpg  
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung.
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#2

Re: Code formatieren

  Alt 6. Aug 2006, 08:36
Ihr werdet da doch sicher einen Tokenzieher haben. da einfach nach bestimmten Tokens alle Token wie Zeilenumbrüche entfernen und durch die gewünschten ersetzen und fertig
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: Code formatieren

  Alt 6. Aug 2006, 09:59
Hi,
i.d.R. geht man das in mehreren Stufen an.
Die erste besteht im scannen des Dokuments durch einen Scanner. Das ist das, was arbu man schon sagte, du erzeugst hier einfach Token.
Dies Token kannst du dann einfach weiter reichen an einen Parser. Dieser erkennt dann einfach die Art der Token und kann die dann schon mal interpretieren (also wann beginnt etwas und wo wird es beendet).
In der nächsten Stufe wird häufig ein Erbauer-Muster verwendet. Es bietet sich an, dass du hier einfache ein Baumartige Struktur erzeugst. Diese musst du dann nur noch (den Bedürfnissen der Formatierung) als String wieder ausgeben. Hier kannst du dann den Benutzer seine Einstellungen wählen lassen.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:09 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