LISP-intro – del 2

Nu skal vi have lavet en ny variabel TEKST_NY, som skal indeholde tekststrengen “FACADE 1:100”. Til dette formål bruger vi funktionen strcase.

(strcase string [which])

Funktionen strcase ændrer en tekststreng, således at den udelukkende står med store eller små bogstaver. Funktionen tager to argumenter …
string = den tekststreng, der skal ændres.
[which] = T eller nil (hvilket kan tolkes som True eller False). Dette argument kan udelades.
Hvis which er specificeret som T, returneres en tekststreng af udelukkende små bogstaver. Ellers returneres en tekststreng udelukkende af store bogstaver.

Eksempler:

(strcase “Jeg programmerer i AutoLISP”)
returnerer “jeg programmerer i autolisp”

(strcase “Jeg programmerer i AutoLISP” T)
returnerer “JEG PROGRAMMERER I AUTOLISP”

Derfor ender vi med at definere variablen TEKST_NY sådan her …

(setq TEKST_NY(strcase TEKST T))

Variablen TEKST_NY repræsenterer hermed strengværdien “FACADE 1:100”.

I Visual LISP kan vores kode nu se sådan her ud:

Denne kode kan stadig optimeres. Vi gør det om lidt.

For at kunne opdatere teksten til den nye upper-case-værdi i variablen TEKST_NY skal vi først redefinere listen ED, så den i stedet for at indeholde tekststrengen “Facade 1:100” kommer til at indeholde tekststrengen “FACADE 1:100”. Vi skal …

  1. Oprette en ny dotted-pair-liste (1 . “FACADE 1:100”) og gemme denne i variablen DP_NY
  2. Erstatte det gamle element (1 . “Facade 1:100”) i listen ED med det nye element DP_NY og gemme resultatet i en liste, som vi kalder ED_NY.
  3. Opdatere tekstobjektet.

Det gør vi på næste side …