PATTERN: Generazione di un modello da una stringa

Come:

La funzione PATTERN esamina una stringa di origine e produce un modello che indica la sequenza di numeri, le lettere in maiuscolo e in minuscolo nella stringa di origine. Questa funzione risulta utile per l'esamininazione di dati, per assicurarsi che si segua un modello standard.

Nel modello di emissione:


Inizio pagina

x
Sintassi: Come generare un modello da una stringa di immissione
PATTERN (length, source_string,  output)

dove:

length

Numerico

La lunghezza di source_string.

source_string

Alfanumerico

Stringa di caratteri racchiusa tra virgolette singole, oppure un campo che contiene la stringa di caratteri.

emissione

Alfanumerico

Nome del campo che contiene il risultato o formato del campo racchiuso tra virgolette singole.



Esempio: Produzione di un modello da dati alfanumerici

I seguenti 19 record sono memorizzati nel file sequenziale di formato fisso (con LRECL 14) , chiamati TESTFILE:

212-736-6250
212 736 4433
123-45-6789
800-969-INFO
10121-2898
10121
2 Penn Plaza
917-339-6380
917-339-4350
(212) 736-6250
(212) 736-4433
212-736-6250
212-736-6250
212-736-6250
(212) 736 5533
(212) 736 5533
(212) 736 5533
10121 Æ
800-969-INFO

Il file principale è:

FILENAME=TESTFILE, SUFFIX=FIX     ,            
  SEGMENT=TESTFILE, SEGTYPE=S0, $              
    FIELDNAME=TESTFLD, USAGE=A14, ACTUAL=A14, $

La seguente richiesta genera un modello per ciascuna istanza di TESTFLD e le visualizza a seconda del modello generato. Visualizza il conteggio di ciascun modello e la sua percentuale del conteggio totale. Il comando PRINT mostra quali valori di TESTFLD hanno generato ciascun modello.

FILEDEF TESTFILE DISK testfile.ftmDEFINE FILE TESTFILE
   PATTERN/A14 = PATTERN (14, TESTFLD, 'A14' ) ;
END
TABLE FILE TESTFILE
  SUM CNT.PATTERN AS 'COUNT' PCT.CNT.PATTERN AS 'PERCENT'
   BY PATTERN
 PRINT TESTFLD
   BY PATTERN
ON TABLE COLUMN-TOTAL
END

Notare che il prossimo dell'ultima riga ha creato un modello da una stringa d'immissione contenente un carattere non stampabile, per poter modificare quel carattere in X. Altrimenti, ciascuna cifra numerica creerebbe un 9 nella stringa d'immissione, ciascuna lettera maiscola creerebbe il carattere 'A' e ciascuna lettera minuscola creerebbe il carattere 'a'. L'emissione è:

PATTERN         COUNT  PERCENT  TESTFLD
-------         -----  -------  -------
(999) 999 9999      3    15.79  (212) 736 5533
                                (212) 736 5533
                                (212) 736 5533
(999) 999-9999      2    10.53  (212) 736-6250
                                (212) 736-4433
9 Aaaa Aaaaa        1     5.26  2 Penn Plaza
999 999 9999        1     5.26  212 736 4433
999-99-9999         1     5.26  123-45-6789
999-999-AAAA        2    10.53  800-969-INFO
                                800-969-INFO
999-999-9999        6    31.58  212-736-6250
                                917-339-6380
                                917-339-4350
                                212-736-6250
                                212-736-6250
                                212-736-6250
99999               1     5.26  10121
99999 X             1     5.26  10121 Æ
99999-9999          1     5.26  10121-2898
TOTAL              19   100.00

WebFOCUS