2017-03-22 5 views
1

Wie ein mehrzeiliges Textwert in Dyalog APL codieren?Multi-line Textwerte in Dyalog APL

Ich möchte so etwas wie dieses kodieren:

query←' 
SELECT * 
FROM SOME_TABLE 
' 

der Lage sein, diesen Text zu SQL Developer zu kopieren und zurück.

Ich weiß, dass ich es auf diese Weise codieren könnte:

query←'' 
query,←'SELECT * ' 
query,←'FROM SOME_TABLE ' 

Aber es würde mir nicht erlauben, diesen Text zu SQL Developer zu kopieren und leicht zurück.

Ist es möglich, temporäre Überschreibung Code die Newline-Zeichen in Dyalog APL-Funktion Quelle?

Antwort

2
S←{a←⍺⍺⋄,⎕cr'a'} 
query←{ 
SELECT * 
FROM Some_Table 
}S⍬ 
+0

Netter Trick, danke. Es gibt einige Probleme damit: 1) die Abfrage wird umgeben von 'a ← {' und '}' mit einigen Leerzeichen 2) '}' Zeichen innerhalb der Abfrage (in String-Konstanten) werden nicht unterstützt 3) Dyalog APL formatiert die Abfrage auf ihre eigene Art und Weise. Das Trimmen auf diese Weise getan werden könnte: Abfrage ← (query⍳ '{') ↓ (1 + query⍳ '}') ↑ Abfrage – Olexa

0

Ich fürchte, Multiline-Strings sind nicht da (noch, hoffe ich).

Der einzige Weg, dies zu umgehen wäre es nicht zu schreiben, wie folgt:

query←ScriptFollows 
⍝ SELECT * 
⍝ FROM Some_Table 

Wenn von SQL Dev einfügen, den eingefügten Text auswählen und auf die Taste auf der Editor-Symbolleiste die einfügen Kommentarzeichen auf jeder Zeile.

Wenn die IDE verwenden, klicken Sie und halten Sie die rechte Maustaste einen rechteckigen Block ohne die Kommentarzeichen zu wählen.

0

Diese Funktion war eigentlich auf der vor vielen Jahren (Mainframe) Systeme auf Basis von APL \ 360, wie Sharp APL (entfernt um 1980?), STSC APL * Plus und andere. Unter anderem war es nicht mehr möglich, eine solche Zeile mit eingebetteten Wagenrückläufen mit dem normalen Del-Editor zurück zu bearbeiten (Vollbild-Editoren als solche existierten noch nicht). Es wurde entfernt, da es für die Benutzer verwirrend gewesen sein könnte - das System hat ein schließendes Zitat erwartet und das Drücken von Return hat nicht implizit einen zurückgegeben.