Vai al contenuto

GESSTR - Gestione stringhe e testi

Posizione nel menu Programma non a menu Linkage section

Tipo Dato Formato Contenuto
INPUT GESSTR-OPE x(20) Vedi argomenti successivi
I/O GESSTR-N-RIGHE 9(04) comp
GESSTR-LEN-RIGA 9(04) comp
GESSTR-LEN-NOTE 9(08) comp
GESSTR-SYMBOL-SET x(30)
GESSTR-BACKSLASH x(05) Indica come deve essere convertito il carattere backslash
Vale solo per l'operazione "CONV-TESTO-X-ESPORT"




GESSTR-ESITO x(01) Esito dell'operazione
GESSTR-MSG x(80) Messaggio di esito
GESSTR-SOST-DA x(100) Stringa da sostituire e stringa sostituente, in caso di operazione "REPLACE"
GESSTR-SOST-A x(100)
GESSTR-CHAR x(02) Carattere da usare in determinate operazioni
GESSTR-REPLACE-DONE x(01) La "REPLACE" ha fatto qualche sostiutuzione? (S/N) serve ad indicare se il testo da sostituire è stato trovato o no
GESSTR-CASE-SENSITIVE x(01) La ricerca deve tenere conto del case?


GESSTR-TRIM-LEFT x(01) Il risultato deve essere trimmato a sx?


GESSTR-SOST-ESCLUDI-SX x(01) Se significativo, la funzione "REPLACE" non avrà effetto se la stringa da sostituire è preceduta da questo carattere
(ad esempio quando devo sostituire "0A" con "0D0A"
GESSTR-TARGET-POS 9(08) comp Posizione del testo trovato (operazione FIND)
FILLER x(174)
GESSTR-NOTE x(64000) Campo note su cui lavorare
GESSTR-TAB-RIGHE Tabella di 1000 elementi che contiene le righe scomposte o da comporre

x(1000) Singola riga all'interno della tabella
GESSTR-TAB-RIGHE-AGG Dati aggiuntivi collegati alle righe

Elemento tabella (1000 elementi)

x(01) Contiene:




x(10)

Logica generale Raccolta di funzioni di utilità su testi e stringhe Maschera del programma Nessuna maschera. Elaborazione L'elaborazione cambia a seconda dell'operazione richiesta.

Operazione: BINARY-TO-NOTE

Descrizione Questa operazione preleva il contenuto di un file binario, il cui nome è GESSTR-RIGA (1), e restituisce il contenuto nel campo GESSTR-NOTE

Il limite è dato dalla lunghezza di GESSTR-NOTE: 64000 byte Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "BINARY-TO-NOTE"
GESSTR-N-RIGHE Numero di righe passate (1)
GESSTR-RIGA (1) Contiene il nome del file binario
OUTPUT GESSTR-NOTE Contenuto del file binario
GESSTR-LEN-NOTE Lunghezza del campo note restituito

call "GESSTR" using stringhe util-gesstr gesstr-note gesstr-tab-righe

Operazione: NOTE-TO-BINARY

Descrizione Questa operazione salva su un file binario il contenuto di GESSTR-NOTE. Il nome del file da creare è GESSTR-RIGA (1)

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "BINARY-TO-NOTE"
GESSTR-NOTE Contiene il nome del file binario
GESSTR-LEN-NOTE Lunghezza del campo note passato
GESSTR-RIGA (1) Il nome del file da creare
GESSTR-N-RIGHE Numero di righe passato (1)
OUTPUT GESSTR-ESITO Esito dell'operazione

call "GESSTR" using stringhe util-gesstr gesstr-note gesstr-tab-righe

Operazione: JSON-FIND

Descrizione Con questa operazione viene esaminato il contenuto di GESSTR-NOTE, dando per scontato che sia in formato JSON. All'interno delle note viene cercato un "tag", passato in GESSTR-SOST-DA e viene restituito il contenuto in GESSTR-NOTE Ad esempio: {"error":"invalid_grant","error_description":"Invalid user credentials"} oppure, formattato: { "error":"invalid_grant", "error_description":"Invalid user credentials" } In rosso sono indicati i tag, in verde il risultato Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "JSON-FIND"
GESSTR-NOTE Contiene il testo su cui effettuare la ricerca
GESSTR-LEN-NOTE Lunghezza del campo di testo da analizzare
GESSTR-SOST-DA TAG da cercare
GESSTR-CASE-SENSITIVE Modalità di ricerca:


default

OUTPUT GESSTR-ESITO Qui viene restituito "S" se il tag è stato trovato
GESSTR-NOTE Contenuto del tag

call "GESSTR" using stringhe util-gesstr gesstr-note

Operazione: SCOMPONI-NOTE

Descrizione Scompone un campo testo ricevuto in input in righe da GESSTR-LEN-RIGA caratteri. Le parole intere vengono mandate a capo. Se GESSTR-LEN-RIGA non è significativo, il programma si aspetta che sia passato GESSTR-SOST-DA; in questo caso la stringa verrà separata quando verrà trovato il carattere di separazione. NB: tenere presente che le righe di output potranno essere lunghe al massimo la lunghezza di GESSTR-RIGA (n) Da implementare Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "SCOMPONI-NOTE"
GESSTR-LEN-RIGA Lunghezza righe richiesta
GESSTR-SOST-DA Carattere separatore delle righe, in alternativa a GESSTR-LEN-RIGA
GESSTR-LEN-NOTE Lunghezza del campo note, se conosciuta (altrimenti l’analisi sarà effettuata su tutto il campo note, quindi con un peggioramento di prestazioni)
GESSTR-NOTE Campo note su cui lavorare
GESSTR-TRIM-LEFT Indica se le righe devono essere trimmate a sx


OUTPUT GESSTR-N-RIGHE Numero righe create
GESSTR-TAB-RIGHE Tabella con le righe create
GESSTR-AGG-A-CAPO (n) Conterrà “S” se la riga contiene un “a capo” al termine del testo

Operazione: COMPONI-NOTE

Descrizione Ricevo in input una tabella di "n" righe e con questa compongo un campo note editabile a video in un campo memo Ad ogni ". " trovato separo il paragrafo Ad ogni flag "a capo" trovato separo il paragrafo Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "COMPONI-NOTE"
GESSTR-N-RIGHE Numero righe presenti in tabella
GESSTR-LEN-RIGA Lunghezza righe passate in input
GESSTR-TAB-RIGHE Tabella che contiene le righe con cui comporre il testo
GESSTR-AGG-A-CAPO (n) Contiene:



OUTPUT GESSTR-NOTE Campo note creato dall’insieme delle righe
GESSTR-LEN-NOTE Lunghezza del campo note creato

Operazione: CERCA-PREPARA

Descrizione Questa operazione fa parte di un set di operazioni necessarie per eseguire una ricerca di una o piu' parole all'interno di un testo. Ricevo in input una stringa contenente le parole da cercare, e prepara la w/s necessaria. La string potrà contenenere fino a 3 parole con il wildchar "*" prima o dopo la parola stessa. A differenza di "CERCA-TUTTO-PREPARA", se le stringhe in input non hanno il wildchar, la ricerca sarà per parola intera. Questa operazione è in alternativa a "CERCA-PREPARA"; successivamente si dovrà eseguire l'operazione "CERCA-ESEGUI" Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "CERCA-PREPARA"
GESSTR-NOTE Campo note in cui passare la stringa contenente le parole da cercare
GESSTR-LEN-NOTE Lunghezza del campo note passato
OUTPUT GESSTR-ESITO Esito dell'operazione (S/N)

020

Operazione: CERCA-TUTTO-PREPARA

Descrizione Questa operazione fa parte di un set di operazioni necessarie per eseguire una ricerca di una o piu' parole all'interno di un testo. Ricevo in input una stringa contenente le parole da cercare, e prepara la w/s necessaria. La stringa potrà contenenere fino a 3 parole, che saranno considerate sempre come se avessero il wildchar "*" prima e dopo (ricercherà sempre per contenuto) Questa operazione è in alternativa a "CERCA-PREPARA"; successivamente si dovrà eseguire l'operazione "CERCA-ESEGUI" Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "CERCA-PREPARA"
GESSTR-NOTE Campo note in cui passare la stringa contenente le parole da cercare
GESSTR-LEN-NOTE Lunghezza del campo note passato
OUTPUT GESSTR-ESITO Esito dell'operazione (S/N)

Operazione: CERCA-ESEGUI

Descrizione Questa operazione fa parte di un set di operazioni necessarie per eseguire una ricerca di una o piu' parole all'interno di un testo. Da eseguire dopo avere eseguito l'operazione "CERCA-PREPARA" Ricevo in input una testo su cui effettuare la ricerca delle stringhe passate con l'operazione precedente Verrà restituito l'esito dell'operazione: * "S": Il testo contiene tutte le parole richieste * "N": Il testo non contiene tutte le parole richieste Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "CERCA-ESEGUI"
GESSTR-NOTE Campo note in cui passare il testo su cui effettuare la ricerca
GESSTR-LEN-NOTE Lunghezza del campo note passato
OUTPUT GESSTR-ESITO Esito dell'operazione (S/N)

Operazione: COMPONI-WORDMDL

Descrizione Ricevo in input una tabella di "n" righe e con questa compongo un campo note editabile a video in un campo memo Ad ogni ". " trovato separo il paragrafo Ad ogni flag "a capo" trovato separo il paragrafo Come COMPONI-WORDMDL, con la differenza che i caratteri di "a capo" utilizzati sono "", necessario a WORDMDL Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "COMPONI-NOTE"
GESSTR-N-RIGHE Numero righe presenti in tabella
GESSTR-LEN-RIGA Lunghezza righe passate in input
GESSTR-TAB-RIGHE Tabella che contiene le righe con cui comporre il testo
GESSTR-AGG-A-CAPO (n) Contiene:



OUTPUT GESSTR-NOTE Campo note creato dall’insieme delle righe
GESSTR-LEN-NOTE Lunghezza del campo note creato

Operazione: CONV-TESTO-IMPORTATO

Descrizione Questa operazione potrebbe essere necessaria dopo aver importato un testo da un file memorizzato su disco. L'operazione converte i caratteri speciali (lettere accentate, e se necessario, altro), in modo che siano visibili nel modo corretto all'interno dei campi testo del programma. NB: questa funzione viene usata anche, solo quando TRANSLATE-TO-ANSI = 1, per mostrare i messaggi a video in modo corretto (chiamata in AREAMSG) La conversione attualmente viene effettuata, quando è impostato il valore environment "TRANSLATE-TO-ANSI 1", sui seguenti caratteri:

Carattere Valore importato Valore convertito
à E0 85
è E8 8A
é E9 82
ì EC 8D
ò F2 95
ù F9 97
° B0 F8
β DF E1
ӧ F6 94
À C0 B7
È C8 D4
Ì CC DE
Ò D2 E3
Ù D9 EB

24-07-2017 La conversione attualmente viene effettuata, quando è impostato il valore environment "TRANSLATE-TO-ANSI 0", sui seguenti caratteri: (L'operazione inversa alla precedente)

Carattere Valore importato Valore convertito
à 85 E0
è 8A E8
é 82 E9
ì 8D EC
ò 95 F2
ù 97 F9
° F8 B0

Conversione "0A' In certi casi (compilazione campi testo da Areagate/Scheduler) il comando "A capo" contiene solo "0A". In questo caso dovremo aggiungere "0D" in modo che venga riconosciuto in modo corretto dal gestionale. Quindi verrà effettuata la sostituzione di "0A" in "0D0A" solo quando non è già preceduto da "0D". A questo scopo verrà invocata la funzione "REPLACE" con opportuni parametri

Operazione: CONV-TESTO-X-ESPORT

Descrizione Questa operazione potrebbe essere necessaria prima di esportare un testo da una tabella interna la gestionale ad una fonte dati esterna, L'operazione converte i caratteri speciali (lettere accentate, e se necessario, altro), in modo che siano visibili nel modo corretto all'interno della fonte dati esterna.

TRANSLATE-TO-ANSI = 1 La conversione attualmente viene effettuata, quando è impostato il valore environment "TRANSLATE-TO-ANSI 1", sui seguenti caratteri:

Carattere Valore da esportare Valore esportato
à 85 E0
è 8A E8
é 82 E9
ì 8D EC
91 27
92 27
ò 95 F2
ù 97 F9
TAB 09 20 (spazio)
° F8 B0
β E1 DF
ӧ 94 F6
À B7 C0
È D4 C8
Ì DE CC
Ò E3 D2
Ù EB D9

Inoltre verrà eseguito anche un trattamento del carattere "\": se trovato sarà convertito nel carattere ricevuto in input su GESSTR-BACKSLASH.

TRANSLATE-TO-ANSI = 0 La conversione attualmente viene effettuata, quando è impostato il valore environment "TRANSLATE-TO-ANSI 0", sui seguenti caratteri:

Carattere Valore da esportare Valore esportato
91 27
92 27
93 22
94 22
99 32 (" ")

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "CONV-TESTO-IMPORTATO"
GESSTR-NOTE Contiene il testo da convertire
GESSTR-LEN-NOTE Lunghezza del campo di testo da analizzare
GESSTR-BACKSLASH Indicare il valore relativo al carattere "\"
OUTPUT GESSTR-NOTE Campo note convertito
GESSTR-LEN-NOTE Lunghezza del campo note convertito

Operazione: CONV-PER-STAMPA

Descrizione Questa operazione potrebbe essere necessaria per stampare correttamente un testo in funzione del symbol set utilizzato Poichè il codice binario memorizzato potrebbe variare a seconda della presenza di TRANSLATE-TO-ANSI, la conversione viene fatta se il codice corrispondente di partenza differisce da quello di destinazione; quindi nella seguente tabella a fronte di ciascun carattere viene indicato se la conversione verrà fatta oppure no a seconda della valore di TRANSLATE-TO-ANSI (1/0)

TRANSLATE-TO-ANSI = 1

Carattere PC8
à */85
è */8A
é */82
ì */8D
ò */95
ù */97
° A7/A7

* Invariato perchè corrisponde all'originale Codice ASCII memorizzato dal runtime in presenza di TRANSLATE-TO-ANSI (1) oppure no (0) (evidenzio in rosso le differenze), e relativo valore nei symbol set previsti NB: * il symbol set e' memorizzato nella configurazione "PRNTSTBOLL"-"EUTA-C022-SYMBOL-*" * Link da cui ricavare informazioni riguardanti i symbol set: * http://www.pclviewer.com/resources/pcl_symbolset.html * http://pclhelp.com/pcl-symbol-sets/ * Programma di test per stampare i caratteri speciali di una certa famiglia: * Scommentare la parte "Test" di COGP41L * Impostare in configurazione il set desiderato

Carattere 1 0 PC8
(341)
Roman8
(277)
PC-858
(437)
à 85 E0 85 C8 85
è 8A E8 8A C9 8A
é 82 E9 82 C5 82
ì 8D EC 8D D5 8D
ò 95 F2 95 CA 95
ù 97 F9 97 CB 97
° F8 B0 A7 B3 F8
# 23 23 23 23 23
@ 40 40 40 40 40
7C 7C 7C 7C
£ 9C A3 9C non trovato? (BB) 9C
$ 24 24 24 24 24
% 25 25 25 25 25
& 26 26 26 26 26
/ 2F 2F 2F 2F 2F
( 28 28 28 28 28
) 29 29 29 29 29
[ 5B 5B 5B 5B 5B
] 5D 5D 5D 5D 5D
{ 7B 7B 7B 7B 7B
} 7D 7D 7D 7D 7D
5F 80 "E" "E" D5
ç 87 E7 87 B5 87
§ F5 A7 " " BD F5
ø 9B F8 ED D6 9B
Ø 9D D8 ED D2 9D
µ E6 B5 E6 F3 E6
© B8 A9 "C" "C" B8

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "CONV-PER-STAMPA"
GESSTR-NOTE Contiene il testo da convertire
GESSTR-LEN-NOTE Lunghezza del campo di testo da analizzare
GESSTR-SYMBOL-SET Symbol set a cui convertire; valori previsti:


NB: accetta anche i valori tra parentesi
OUTPUT GESSTR-NOTE Campo note convertito
GESSTR-LEN-NOTE Lunghezza del campo note convertito

Operazione: CONV-PER-XML

Descrizione Questa operazione viene eseguita per convertire i caratteri memorizzati e visualizzati dal programma in un file XML, allo scopo di non generare errori di parsing. Simile a CONV-PER-WORD, ma verranno aggiunti alcuni caratteri. Poichè il codice binario memorizzato potrebbe variare a seconda della presenza di TRANSLATE-TO-ANSI, la conversione viene fatta se il codice corrispondente di partenza differisce da quello di destinazione; quindi nella seguente tabella a fronte di ciascun carattere viene indicato se la conversione verrà fatta oppure no a seconda della valore di TRANSLATE-TO-ANSI (1/0)

Codice ASCII memorizzato dal runtime in presenza di TRANSLATE-TO-ANSI (1) oppure no (0) (evidenzio in rosso le differenze), e relativo valore trovato su WORD (per il momento testato con font "Calibri")

Carattere 1 0 Calibri (default) Note
à 85 E0 E0
è 8A E8 E8
é 82 E9 E9
ì 8D EC EC
ò 95 F2 F2
ù 97 F9 F9
° F8 B0 "D"
# 23 23 23
@ 40 40 40
7C 7C 7C
£ 9C A3 A3
$ 24 24 24
% 25 25 25
& 26 26 26
/ 2F 2F 2F
( 28 28 28
) 29 29 29
[ 5B 5B 5B
] 5D 5D 5D
{ 7B 7B 7B
} 7D 7D 7D
Ø 9D 9D "D"
Ø 9B "D"
÷ F6 F7 "-"
¦ DD " "
Ï D8 "D" (*)
¸ F7 "-"
¦ B0 " "
¾ F3 "3/4" Per ora verranno convertiti a " " per motivi di performance
½ AB "1/2"
µ B5

(*) Questi caratteri vengono convertiti come i due precedenti: presso Idrolux, una merce la cui descrizione conteneva i caratteri "Ø" e "÷" (visto in Notepad++) nel gestionale venivano visti come quelli qui indicati: probabilmente frutto di una importazione merce. Per il momento non analizzo il caso TRANSLATE-TO-ANSI = 0 Inoltre vengono eseguite alcune conversioni generiche, necessarie per risolvere comportamenti anomali di Word:

Carattere Diventa Note
^ ^^ Il carattere "^" singolo comporta che il tag non venga risolto.

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "CONV-PER-WORD"
GESSTR-NOTE Contiene il testo da convertire
GESSTR-LEN-NOTE Lunghezza del campo di testo da analizzare
GESSTR-SYMBOL-SET Symbol set (nome font) a cui convertire; valori previsti:

OUTPUT GESSTR-NOTE Campo note convertito
GESSTR-LEN-NOTE Lunghezza del campo note convertito

Operazione: CONV-PER-WORD

Descrizione Questa operazione viene eseguita per convertire i caratteri memorizzati e visualizzati dal programma in un file destinato ad essere visualizzato su WORD. Simile a CONV-PER-STAMPA, ma alcuni caratteri diventano diversi. Poichè il codice binario memorizzato potrebbe variare a seconda della presenza di TRANSLATE-TO-ANSI, la conversione viene fatta se il codice corrispondente di partenza differisce da quello di destinazione; quindi nella seguente tabella a fronte di ciascun carattere viene indicato se la conversione verrà fatta oppure no a seconda della valore di TRANSLATE-TO-ANSI (1/0)

Codice ASCII memorizzato dal runtime in presenza di TRANSLATE-TO-ANSI (1) oppure no (0) (evidenzio in rosso le differenze), e relativo valore trovato su WORD (per il momento testato con font "Calibri")

Carattere 1 0 Calibri (default)
à 85 E0 E0
è 8A E8 E8
é 82 E9 E9
ì 8D EC EC
ò 95 F2 F2
ù 97 F9 F9
° F8 B0 B0
# 23 23 23
@ 40 40 40
7C 7C
£ 9C A3 A3
$ 24 24 24
% 25 25 25
& 26 26 26
/ 2F 2F 2F
( 28 28 28
) 29 29 29
[ 5B 5B 5B
] 5D 5D 5D
{ 7B 7B 7B
} 7D 7D 7D

Inoltre vengono eseguite alcune conversioni generiche, necessarie per risolvere comportamenti anomali di Word:

Carattere Diventa Note
^ ^^ Il carattere "^" singolo comporta che il tag non venga risolto.

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "CONV-PER-WORD"
GESSTR-NOTE Contiene il testo da convertire
GESSTR-LEN-NOTE Lunghezza del campo di testo da analizzare
GESSTR-SYMBOL-SET Symbol set (nome font) a cui convertire; valori previsti:

OUTPUT GESSTR-NOTE Campo note convertito
GESSTR-LEN-NOTE Lunghezza del campo note convertito

Operazione: FIND

Descrizione Questa operazione esegue la scansione di GESSTR-NOTE, e restituisce esito positivo se la stringa GESSTR-SOST-DA è presente all'interno del campo note. La stringa cercata deve essere significativa (non cerca un campo vuoto) Per il momento la riga

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "FIND"
GESSTR-NOTE Contiene il testo su cui effettuare la ricerca
GESSTR-LEN-NOTE Lunghezza del campo di testo da analizzare
GESSTR-SOST-DA Stringa da cercare
GESSTR-CASE-SENSITIVE Modalità di ricerca:


default

OUTPUT GESSTR-ESITO Qui viene restituito "S" se la stringa cercata è stata trovata
GESSTR-TARGET-POS Posizione del primo carattere del testo cercato

Operazione: IS-NUMERIC

Descrizione Questa operazione permette di riconoscere se una determinata string può essere considerata numerica. Questo sarà vero se la string contiene, oltre a numeri, solo i caratteri di separazione di migliaia, il punto decimale, e l'eventuale segno; Caratteri consentiti: * "." * "," * "-" * "+"

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "IS-NUMERIC"
GESSTR-NOTE Contiene la string da controllare
GESSTR-LEN-NOTE Lunghezza del campo da analizzare
OUTPUT GESSTR-ESITO Restituirà:


call "GESSTR" using stringhe util-gesstr gesstr-note

Operazione: MISURA

Descrizione Ricevo in input una descrizione e una eventuale lunghezza iniziale. Misuro la lughezza della descrizione (tutti caratteri significativi prima degli ' ') e restituisco il risultato in GESSTR-LEN-NOTE La lunghezza viene ottenuta cercando il primo carattere a dx diverso da GESSTR-CHAR (default " ") Esempio

GESSTR-NOTE I:GESSTR-LEN-NOTE O:GESSTR-LEN-NOTE
" ROSSI MARIO" 40 13
" ROSSI MARIO" 40 17
" ROSSI MARIO" 15 7

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "MISURA"
GESSTR-NOTE Testo da misurare
GESSTR-LEN-NOTE Lunghezza del testo passato in input
GESSTR-CHAR Il carattere su cui misurare
OUTPUT GESSTR-LEN-NOTE misurato

Parametri richiesti call "GESSTR" using stringhe util-gesstr gesstr-note

Operazione: REPLACE

Descrizione Questa operazione esegue la scansione di GESSTR-NOTE, e sostituisce la stringa GESSTR-SOST-DA con GESSTR-SOST-A La sostituzione avverrà per tutte le occorrenze trovate.

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "REPLACE"
GESSTR-NOTE Contiene il testo da convertire
GESSTR-LEN-NOTE Lunghezza del campo di testo da analizzare
GESSTR-SOST-DA Stringa cercata
GESSTR-SOST-A Stringa che sostituira' la stringa cercata
GESSTR-SOST-ESCLUDI-SX Carattere che impedisce la sostituzione
OUTPUT GESSTR-NOTE Campo note convertito
GESSTR-LEN-NOTE Lunghezza del campo note convertito
GESSTR-REPLACE-DONE La REPLACE ha fatto qualche sostiutuzione? (S/N) serve ad indicare se il testo da sostituire è stato trovato o no

call "GESSTR" using stringhe util-gesstr gesstr-note

Operazione: RIMUOVI-DELIMITATO

Descrizione Questa operazione esegue la scansione di GESSTR-NOTE, e rimuove il contenuto compreso tra GESSTR-SOST-DA e GESSTR-SOST-A La sostituzione avverrà per tutte le occorrenze trovate. Attenzione * I delimitatori devono essere presenti entrambi * I delimitatori devono essere diversi * La sostituzione avviene solo quando sono presenti entrambi i delimitatori nell'ordine corretto Esempio Se viene passato: GESSTR-NOTE="Inizio note <##testo da rimuovere##> Fine note" GESSTR-SOST-DA = "<##" GESSTR-SOST-A = "##>" Il testo risultante sarà: "Inizio note Fine note" Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "RIMUOVI-DELIMITATO"
GESSTR-NOTE Contiene il testo da controllare
GESSTR-LEN-NOTE Lunghezza del campo di testo da analizzare
GESSTR-SOST-DA Delimitatore iniziale
GESSTR-SOST-A Delimitatore finale
OUTPUT GESSTR-NOTE Campo note convertito
GESSTR-LEN-NOTE Lunghezza del campo note convertito
GESSTR-REPLACE-DONE L'operazione ha effettuato una rimozione? (S/N)

call "GESSTR" using stringhe util-gesstr gesstr-note

Operazione: SOSTITUISCI-CARET

Descrizione Operazione molto specifica creata in attesa di creare una operazione "SOSTITUISCI" generica, che però dovrebbe usare le espressioni regolari per poter esaminare situazioni come questa. Questa operazione sostituisce "^" con "^^", purchè non sia già presente doppio; quindi: * "^" -> "^^" * "^^" -> "^^" La sostituzione avverrà per tutte le occorrenze del carattere in GESSTR-NOTE Questa operazione è necessaria in ambito passaggio dati su WORD, altrimenti non risolve i tag.

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "SOSTITUISCI-CARET"
GESSTR-NOTE Contiene il testo da convertire
GESSTR-LEN-NOTE Lunghezza del campo di testo da analizzare
OUTPUT GESSTR-NOTE Campo note convertito
GESSTR-LEN-NOTE Lunghezza del campo note convertito

Operazione: TRIM-LEFT

Descrizione Ricevo in input una descrizione e una eventuale lunghezza. Restituisco la descrizione trimmata a "sx" del carattere contenuto in GESSTR-CHAR (il primo carattere) Esempio

GESSTR-NOTE GESSTR-CHAR GESSTR-NOTE risultante
" ROSSI MARIO" " " "ROSSI MARIO"
"0000001234,000" "0" "1234,000"

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "TRIM-LEFT"
GESSTR-NOTE Testo da trimmare
GESSTR-LEN-NOTE Lunghezza del testo passato in input
GESSTR-CHAR Carattere da trimmare. Se vuoto è " "
OUTPUT GESSTR-NOTE Testo trimmato

Parametri richiesti call "GESSTR" using stringhe util-gesstr gesstr-note

Operazione: TRIM-SPACES

Descrizione Ricevo in input una descrizione e una eventuale lunghezza. Restituisco la descrizione eliminando tutti gli spazi consecutivi interni, limitando gli spazi ad 1. Viene anche effettuato il trim sugli spazi iniziali. Esempio

GESSTR-NOTE GESSTR-NOTE risultante
" ROSSI MARIO" "ROSSI MARIO"
"Dimensione: 1000,00 x 500,00" "Dimensione: 1000,00 x 500,00"

Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "TRIM-SPACES"
GESSTR-NOTE Testo da trimmare
GESSTR-LEN-NOTE Lunghezza del testo passato in input
OUTPUT GESSTR-NOTE Testo trimmato

Operazione: TRONCA-DES-PAROLA

Descrizione Ricevo in input una descrizione e una lunghezza. Restituisco la descrizione troncata alla lunghezza richiesta, ma togliendo l'eventuale parola mozzata. Esempio Ricevo in input la stringa "TESTO DI PROVA", e la lunghezza di 12. Il troncamento standard restituirebbe: "TESTO DI PRO" Il troncamento con questa funzione invece restituisce "TESTO DI" e lunghezza = 8 Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "TRONCA-DES-PAROLA"
GESSTR-NOTE Testo da troncare
GESSTR-LEN-NOTE Lunghezza a cui troncare
OUTPUT GESSTR-NOTE Testo troncato
GESSTR-LEN-NOTE Lunghezza del testo troncato

Operazione: ESTRAI-BASENAME

Descrizione Ricevo in input un testo contenente il percorso completo di un file, o un nome di file senza percorso. Restituisco il "basename" (il nome del file senza estensione). Esempio Ricevo in input la stringa "/server/percorso1/percorso2/nomefile.arc'. La funzione restituisce "nomefile". Ricevo in input la stringa "nomefile.arc'. La funzione restituisce "nomefile". NB: al momento la funzione lavora indipendentemente dal tipo percorso, perche' esamina la presenza di "/" e "\" contemporaneamente. Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "ESTRAI-BASENAME"
GESSTR-LEN-NOTE Lunghezza del testo passato in input
OUTPUT GESSTR-NOTE Basename trovato
GESSTR-LEN-NOTE Lunghezza del basename trovato

Operazione: ESTRAI-ESTENSIONE

Descrizione Ricevo in input un testo contenente il percorso completo di un file, o un nome di file senza percorso. Restituisco l'estensione del file. La routine dà per scontato che l'estensione sia singola (non contempla ad esempio "nomefile.aaa.bbb": in questo caso restituisce "bbb". Esempio Ricevo in input la stringa "/server/percorso1/percorso2/nomefile.arc'. La funzione restituisce "arc". Ricevo in input la stringa "nomefile.arc'. La funzione restituisce "arc". Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "ESTRAI-ESTENSIONE"
GESSTR-NOTE Nome file su cui effettuare la ricerca
GESSTR-LEN-NOTE Lunghezza del testo passato in input
OUTPUT GESSTR-NOTE Estensione trovata
GESSTR-LEN-NOTE Lunghezza dell'estensione trovata

Operazione: ESTRAI-PATH

Descrizione Ricevo in input un testo contenente il percorso completo di un file. Restituisco il percorso del file (quindi viene tolto il nome del file e l'ultima barra) Esempio Ricevo in input la stringa "/server/percorso1/percorso2/nomefile.arc'. La funzione restituisce "/server/percorso1/percorso2". NB: al momento la funzione lavora indipendentemente dal tipo percorso, perche' esamina la presenza di "/" e "\" contemporaneamente. Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "ESTRAI-PATH"
GESSTR-LEN-NOTE Lunghezza del testo passato in input
OUTPUT GESSTR-NOTE Percorso trovato
GESSTR-LEN-NOTE Lunghezza del percorso trovato

Operazione: ESTRAI-NOMEFILE

Descrizione Ricevo in input un testo contenente il percorso completo di un file. Restituisco il nome file al netto del path in cui è posizionato. Esempio Ricevo in input la stringa "/server/percorso1/percorso2/nomefile.arc'. La funzione restituisce "nomefile.arc". NB: al momento la funzione lavora indipendentemente dal tipo percorso, perche' esamina la presenza di "/" e "\" contemporaneamente. Chiamata standard

Tipo Dato Contenuto
INPUT GESSTR-OPE "ESTRAI-NOMEFILE"
GESSTR-LEN-NOTE Lunghezza del testo passato in input
OUTPUT GESSTR-NOTE Nome file trovato
GESSTR-LEN-NOTE Lunghezza del nome file trovato

Estratto da documentazione interna ClickUp