lunedì 16 febbraio 2015

Non impazzire con le stringhe

Può capitare molte volte di dover comporre delle stringhe molto lunghe, ad esempio quando si lavora con i database, e non sempre la sintassi di livecode può essere agevole.
Ad esempio immaginiamo di dover scrivere l'espressione:

SELECT nome,cognome FROM "elenco indirizzi" WHERE "nome"="Mario";

Con livecode diventa:


put "SELECT nome,cognome FROM " & quote & "elenco indirizzi" & quote & " WHERE " & quote & "nome" & quote & "=" & quote & "Mario" & quote & ";" into espressione


forse è troppo lunga e difficile da interpretare. Per fortuna c'è la funzione merge(), che serve a lavorare con i testi. La funzione merge() prende una stringa ed elabora il contenuto tra doppie parentesi quadre.
Ad esempio:

put merge("[[1+1]]")

2 come risultato. Sembra un'ulteriore complicazione, ma l'esempio con select la possiamo scrivere così:
put merge("SELECT nome,cognome FROM [[quote]]elenco indirizzi[[quote]] WHERE [[quote]]nome[[quote]]=[[quote]]Mario[[quote]];") into espressione

eliminando tutti quegli spazi e quelle & si rende più leggibile il codice.
La funzione merge() è utlizzata molto anche per chi usa livecode come server, nella generazione di pagine web, e nell'esportazione in formati RTF, Word o Openoffice.