Insert ( text ; separator )
Inviato: domenica 20 febbraio 2011, 14:25
Let([
$i = $i + 1 ;
char = Middle ( text ; $i ; 1 )
];
Case(
$i < Length ( text ) ; char & separator & Insert ( text ; separator ) ;
Let( $i = "" ; Right ( text ; 1 ) )
)
)
Data la stringa di testo "FMPro.it", il risultato potrebbe essere:
con separator = " " : F M P r o . i t
con separator = ¶ :
F
M
P
r
o
.
i
t
C'è da notare che questo modo di scrivere una funzione personalizzata ( usando le $var ) consente di usarla SENZA avere la versione Advanced, applicando semplicemente quel tipo di calcolo ad un campo calcolato NON memorizzato*.
Ad esempio, se il campo origine si chiamasse: text ed il campo calcolato si chiamasse: TestoSpaziato, potremmo scrivergli nel suo stesso calcolo:
Let([
$i = $i + 1 ;
char = Middle ( text ; $i ; 1 )
];
Case(
$i < Length ( text ) ; char & " " & TestoSpaziato ;
Let( $i = "" ; Right ( text ; 1 ) )
)
)
* con la limitazione di 356 ricursioni
$i = $i + 1 ;
char = Middle ( text ; $i ; 1 )
];
Case(
$i < Length ( text ) ; char & separator & Insert ( text ; separator ) ;
Let( $i = "" ; Right ( text ; 1 ) )
)
)
Data la stringa di testo "FMPro.it", il risultato potrebbe essere:
con separator = " " : F M P r o . i t
con separator = ¶ :
F
M
P
r
o
.
i
t
C'è da notare che questo modo di scrivere una funzione personalizzata ( usando le $var ) consente di usarla SENZA avere la versione Advanced, applicando semplicemente quel tipo di calcolo ad un campo calcolato NON memorizzato*.
Ad esempio, se il campo origine si chiamasse: text ed il campo calcolato si chiamasse: TestoSpaziato, potremmo scrivergli nel suo stesso calcolo:
Let([
$i = $i + 1 ;
char = Middle ( text ; $i ; 1 )
];
Case(
$i < Length ( text ) ; char & " " & TestoSpaziato ;
Let( $i = "" ; Right ( text ; 1 ) )
)
)
* con la limitazione di 356 ricursioni