Come: |
Lingue disponibili: reporting, Maintain
La funzione PARAG divide una stringa di caratteri in stringhe secondarie, evidenziandole con un delimitatore. Esegue la scansione di un numero specifico di caratteri dall'inizio della stringa e sostituisce l'ultimo spazio nel gruppo scansionato con il delimitatore, quindi crea una prima stringa secondaria, conosciuta anche come token. Esegue, quindi, la scansione del prossimo gruppo di caratteri nella riga, cominciando dal delimitatore, e sostituisce l'ultimo spazio con un secondo delimitatore, creando un secondo token. Ripete questo procedimento fino al raggiungimento della fine della riga.
Dopo aver evidenziato ciascun token con il delimitatore, è possibile usare la funzione GETTOK per posizionare i token in campi diversi. Se PARAG non trova nessuno spazio nel gruppo scansionato, sostituisce il primo carattere dopo il gruppo con il delimitatore. Quindi, assicurarsi che ciascun gruppo di caratteri abbia almeno uno spazio. Il numero di caratteri scansionati viene fornito come dimensione massima token.
Per esempio, se si ha un campo chiamato 'subtitle', che contiene una grande quantità di testo consistente in parole separate da spazi, è possibile tagliare il campo in stringhe secondarie approssimativamente uguali, specificando una dimensione massima del token per dividere il campo. Se il campo è lungo 350 caratteri, dividerlo in tre stringhe secondarie, specificando una dimensione massima del token di 120 caratteri. Questa tecnica consente di stampare le righe di testo sotto forma di paragrafo.
Suggerimento: Se le righe sono divise in modo uniforme, è possibile creare più righe di quelle intese. Per esempio, si supponga di dividere righe di testo lunghe 120 caratteri in due righe di massimo 60 caratteri, ma una di queste righe viene divisa per avere rispettivamente una riga secondaria di 50 caratteri e una di 55 caratteri. Questa pratica permette di avere più spazio per una terza riga secondaria di 15 caratteri. Per correggere questa azione, inserire uno spazio (utilizzando una concatenazione debole) all'inizio dell'ulteriore riga secondaria, quindi accodarla (utilizzando una concatenazione forte) alla fine della riga precedente. Notare che la riga secondaria sarà più lunga di 60 caratteri.
PARAG(length, source_string, 'delimiter', max_token_size, output)
dove:
Valore intero
Numero di caratteri in source_string e output, o un campo che contiene la lunghezza.
Alfanumerico
Una stringa per dividere i token racchiusa in virgolette singole, o un campo o variabile che contiene il testo.
Alfanumerico
Il delimitatore racchiuso tra virgolette singole. Scegli un carattere che non appare nel testo.
Valore intero
Limite superiore per le dimensioni di ciascun token.
Alfanumerico
Nome del campo che contiene il risultato o formato del valore di emissione racchiuso tra virgolette singole”.
PARAG divide ADDRESS_LN2 in righe più piccole di non oltre dieci caratteri, utilizzando una virgola come delimitatore. Il risultato viene memorizzato in PARA_ADDR:
TABLE FILE EMPLOYEE
PRINT ADDRESS_LN2 AND COMPUTE
PARA_ADDR/A20 = PARAG(20, ADDRESS_LN2, ',', 10, PARA_ADDR);
BY LAST_NAME
WHERE TYPE EQ 'HSM';
END
L'emissione è:
LAST_NAME ADDRESS_LN2 PARA_ADDR --------- ----------- --------- BANNING APT 4C APT 4C , CROSS 147-15 NORTHERN BLD 147-15,NORTHERN,BLD GREENSPAN 13 LINDEN AVE. 13 LINDEN,AVE. IRVING 123 E 32 ST. 123 E 32,ST. , JONES 235 MURRAY HIL PKWY 235 MURRAY,HIL PKWY MCKNIGHT 117 HARRISON AVE. 117,HARRISON,AVE. ROMANS 271 PRESIDENT ST. 271,PRESIDENT,ST. SMITH 136 E 161 ST. 136 E 161,ST.
WebFOCUS |