<< Update >> simple - Einfach mächtig

eforia web manager Blog

Execprog


Irgendwie ist es manchmal zu aufwendig, für kleine Aufgaben extra ein eigenes Modul zu schreiben. Mit der if-Abfrage alleine kommt man aber auch nicht weiter. Also dachte ich zuerst, ich integriere Tags um Variablen zu definieren und Schleifen zu ermöglichen. Aber so richtig Übersichtlich ist das nicht, außerdem wäre es alles andere als schnell. Da fiel mir eine sehr, sehr alte Funktion der tdbengine ein: Execprog. Damit wird ein Stück Quellcode zur Laufzeit übersetzt und ausgeführt. Darum dann flugs einen Tag gebastelt:

Beispiel:
{execprog}
var fhAusgabe : integer
fhAusgabe:=Rewrite('ramtext:out')
writeln(fhAusgabe,'hallo welt')
close(fhAusgabe)
{/execprog}


Nachdem man ja nicht direkt an der aktuellen Stelle ausgeben kann, benutze ich einfach ramtext:out. Alles was man in dem Mini-Progrämmchen dorthin ausgibt, wird nach Beendigung an der aktuellen Stelle eingefügt.

Mit Variablen muss man ein wenig aufpassen, man kann eforia-Eigene nämlich auch überschreiben. Insgesammt ist die Funktion sehr mächtig, man sollte also wissen was man tut. Bei Compiler-Fehlern im Programm wird das Problem angezeigt, man muss also nicht ganz "blind" arbeiten.

Wo ist nun der Sinn?
Beispielsweise kann man in einem RSS-Feed Tags ausgeben. Allerdings einzeln in einer besonderen Weise. Intern gespeichert werden die Tags aber in einem Feld. Das muß man also etwas "umbauen". Das geht dann so:
{execprog}
  var fhAusgabe : integer
  var cTags,cTemp : string
  cTags:=getfield(cms_web,'Tags')
  fhAusgabe:=Rewrite('ramtext:out',0)
  while cTags#'' do
    write(fhAusgabe,'<category><!--[CDATA[')
    if pos(' ',cTags)>0 then
      cTemp:=cTags[1,pos(' ',cTags)-1]
      cTags:=cTags[pos(' ',cTags)+1,255]
    else
      cTemp:=cTags
      cTags:=''
    end
    write(fhAusgabe,cTemp)
    writeln(fhAusgabe,']]--></category>')
  end
  close(fhAusgabe)
{/execprog}

Ein Nachteil sei noch erwähnt: Der Programmcode muss im Quelltextmodus eingegeben werden. Sonst stören HTML-Codes für Zeilenumbrüche oder Leerzeichen. Hier muss ich mal einen neuen Button im Editor einbauen, der das dann so macht wie jetzt die Javascript oder PHP-Bereiche. Allerdings hat das keine hohe Priorität, weil ich es hauptsächlich für Vorlagen verwenden werde.



Dieser Artikel wurde veröffentlicht am 19.11.2008 um 17:24 Uhr. Tags: ewm5  beta  execprog   | Permalink | Trackback URI
Ähnliche Beiträge:

Bisher 3 Kommentare:
Volker Schulte sagte am 21.11.2008 um 11:14 Uhr:
Finde ich persönlich ganz gut, aber auch gefährlich, weil man viel kaputt machen kann. Und soooo lange dauert eine Modulentwicklung auch nicht.

Horst sagte am 21.11.2008 um 11:37 Uhr:
Aber für Kleinigkeiten wie das zerlegen eines Strings, ist ein eigenes Modul doch übertrieben, oder?
Ich arbeite gern komplett online, für ein Modul muss ich lokal eine Datei anlegen, kompilieren und hochladen. Direkt online kompilieren würde eine komplette Entwicklungsumgebung online bedeuten. Daher halte ich das Execprog für kleine Lösungen schon ganz sinnvoll. Natürlich ist es nur etwas für Profis. Aber mann muss es ja nicht nutzen.
Aber trotzdem Danke für den Kommentar. Ich bastel im Moment sehr stark an Dingen, die ich selbst für wichtig erachte. Ein wenig Austausch tut eforia da ganz gut. 8-)

volker sagte am 23.11.2008 um 16:19 Uhr:
Mir kommt EXECPROG auch sehr entgegen,aber wie du ja auch richtig sagst, es ist für profis und man muss es nicht nehmen. Beim Gedankenaustausch bin ich gern dabei. Meinen geheimsten (Weihnachts)Wunsch kennst du ja.....

Der Beitrag ist älter als 30 Tage. Keine Kommentare mehr möglich.


Hier bloggt Horst Klier mit und über eforia web manager und was dazugehört (HTML, Javascript, Internet, Webdesign, Such- maschinenoptimierung, usw.).

>> Zur Blog Startseite

RSS-Feed
abonnieren


Übersicht über alle Beiträge



eforia® ist ein eingetragenes Markenzeichen der tdb Software Service GmbH.
Alle anderen Marken und Markenzeichen gehören Ihren jeweiligen Besitzern.
Letzte Aktualisierung dieser Seite: 21.05.2022 / 00:00:09
Suche  
Impressum