Quick-Tipp: IDE-Scripts zur automatischen Textersetzung

Eins vorweg: Dieser Text ist völlig nicht auf meinem Mist gewachsen. Er ist vielmehr eine Übersetzung/-tragung eines Blogbeitrags von Xojo-Ingenieur Greg O’Lone. Da er ein Feature von Xojo beschreibt, das nach meiner Erfahrung vielen völlig unbekannt ist (und auch ich vergesse es immer wieder), ein guter Kandidat für einen schnellen Tipp.


Nun, vielleicht kennen Sie ein  solches oder ein ähnliches Szenario: Sie erstellen vielleicht den Entwurf einer Datenbank mit einem professionellen Datenbankeditor (der Xojo-interne Editor ist zugegebenermaßen doch eine recht rudimentäre Lösung). Das sieht dann alles ganz gut aus, und Sie möchten den Datenbank-Aufbau nun Xojo anvertrauen.

sqlite-eddie
Die Kundentabelle der Eddie’s Electronics-Beispieldatenbank aus Xojos Musterprojekten, hier in SQLPro

Rauskommen muss am Ende natürlich ein Xojo-Code, in diesem Fall etwa

Dim  SQL As Text = "CREATE TABLE IF NOT EXISTS ""Customers"" ( ""ID"" integer PRIMARY KEY NOT NULL, ""FirstName"" text, ""LastName"" text, ""Address"" text, ""City"" text, ""State"" text, ""Zip"" text, ""Phone"" text, ""Email"" text, ""Photo"" blob, ""Taxable"" integer);"

Anders gesagt: Die doppelten Anführungszeichen müssen escaped werden – damit ein String oder Text Anführungszeichen beinhaltet, die ja eigentlich seinen Anfang und Ende markieren, müssen sie verdoppelt werden. Und die Returns sollten raus, damit alles eine Zeile ergibt (die man zur Not und für besseren Überblick ja mit einem Unterstrich in mehrere Zeilen zerlegen kann:)

Dim  SQL As Text = "CREATE TABLE IF NOT EXISTS ""Customers""" + _
  "( ""ID"" integer PRIMARY KEY NOT NULL, ""FirstName"" text, " + _
  """LastName"" text, ""Address"" text, ""City"" text, ""State""" + _
  "text, ""Zip"" text, ""Phone"" text, ""Email"" text, ""Photo""" + _
  "blob, ""Taxable"" integer);"

Das macht manuell keinen Spaß. Erst recht nicht, wenn es nicht bei einmaliger Aktion bleibt, sondern solche Kopieraktionen des öfteren stattfinden.

Nun kann man mit Xojo nicht nur programmieren, es lässt sich auch programmieren. Unter anderem mit IDE-Scripts – Codeschnipseln, die die IDE steuern. Dazu muss man noch nicht einmal eine Scriptsprache lernen. Xojo verwendet selbstverständlich Xojo dafür.

Also: Wählen Sie im Menü von Xojo unter „File“ den Eintrag „IDE-Script“ und dort „New IDE-Script“

ide-script

Es geht ein kleines Scriptfenster auf. Geben Sie dort den Code ein:

escapequotes

Damit Sie mit dem Zählen der Anführungszeichen nicht durcheinanderkommen, der Code hier als Text:

 Dim c As String = Clipboard
 c = c.ReplaceAll("""","""""").ReplaceAll(chr(13), "")
 SelText = c

Es gibt also kleine Abweichungen zum normalen Xojo-Code: Das Clipboard muss hier nicht neu erzeugt werden (Dim Clip As New Clipboard etwa), und es wird nicht Clipboard.Text angesprochen. Stattdessen gibt es einen String, der Clipboard heißt.

In Zeile 2 werden alle doppelten Anführungszeichen verdoppelt und die überflüssigen Returns entfernt.

SelText holt oder setzt den ausgewählten Text im Code-Editor. Die Beschreibungen finden Sie übrigens im IDE-Scripting-Segment der Sprachreferenz.

Speichern Sie dieses Script. Als Vorgabeordner wird Ihnen der Script-Ordner im Xojo-Verzeichnis angeboten. Da gehört es auch hin, denn dann installiert es sich selbst mit Tastaturkurzschlüssel im IDE-Scripts-Untermenü (siehe oben).

Tja, und wenn Sie fortan einen solchen Code aus dem SQL-Editor kopieren: Setzen Sie den Cursor im Code-Editor an die gewünschte Stelle:

Dim SQL As Text = "

und wählen Sie den Script-Menüeintrag aus. Setzen Sie dahinter noch das abschließende Anführungszeichen und fertig. Praktisch, oder?

2 Gedanken zu “Quick-Tipp: IDE-Scripts zur automatischen Textersetzung

  1. Xojo unterstützt leider keine mehrzeiligen Text-Literale, wie du in deinem Beispiel suggerierst – auch nicht mit dem Underscore. Lediglich Anweisungen lassen sich in mehrere Zeilen trennen, der String muss also zusammengesetzt werden:

    Dim test As String = „Ein sehr “ _
    + „langer String“

    Gefällt mir

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s