La classe Mainframe contiene filtri che possono convertire, in forme differenti, file di testo elaborati da sistemi mainframe.
I filtri della classe Mainframe sono progettati per lavorare su file in codifica EBCDIC. |
I filtri ASCII to EBCDIC e EBCDIC to ASCII consentono di convertire un file di testo dalla codifica ASCII alla codifica EBCIDIC e viceversa. Essi utilizzano le tabelle standard di conversione dei 256 caratteri di ciascuna codifica.
Alcuni caratteri non possono essere convertiti mediante i filtri ASCII to EBCDIC e EBCDIC to ASCII, in quanto esistono solo nel codice ASCII o solo nel codice EBCDIC. |
Spesso testi e documenti elaborati da mainframe contengono campi numerici di tipo Packed Decimal o Zoned Decimal. Si tratta di rappresentazioni numeriche peculiari della codifica EBCDIC, che risultano illeggibili se convertite direttamente in formato ASCII.
APPROFONDIMENTI: PACKED DECIMAL e ZONED DECIMAL In formato Packed Decimal ogni byte, tranne l'ultimo a destra, rappresenta due cifre decimali. L'ultimo byte a destra rappresenta, invece, una cifra decimale ed il segno, positivo o negativo, del numero originario. In formato Zoned Decimal ogni byte rappresenta un singolo numero decimale. In particolare, ogni byte è suddiviso in due parti da quattro bit ciascuna: la zone portion e la digit portion. La zone portion dell'ultimo byte a destra contiene il segno, positivo o negativo, del numero originario. |
I filtri Expand packed decimal e Expand zoned decimal consentono di convertire campi di tipo Packed Decimal o Zoned Decimal nel formato numerico standard.
Il numero delle eventuali cifre decimali di un valore è implicito nel formato Packed Decimal e Zoned Decimal. Pertanto questi filtri richiedono di specificare quante siano le cifre decimali del numero da convertire, nel campo Implied decimal point.
I filtri Expand packed decimal e Expand zoned decimal devono essere preceduti da un filtro Restrict, in modo da permettere ai filtri di processare un numero alla volta. |
In caso i numeri in formato Packed Decimal siano privi di segno, la loro conversione in formato numerico standard avviene mediante i filtri Expand unsigned (even-legth) packed decimal e Expand unsigned (odd-legth) packed decimal.
Il primo è utilizzato in caso il numero decimale, in output, sia costituito da un numero pari di cifre. Viceversa, il secondo è utilizzato in caso il numero decimale, in output, sia costituito da un numero dispari di cifre.
Analogamente al filtro Expand packed decimal, questi filtri richiedono di specificare il numero di cifre decimali del numero da convertire, nel campo Implied decimal point.
I filtri Compress to Packed Decimal e Compress to Zoned Decimal consentono di convertire un numero decimale in codifica EBCIDC in formato Packed Decimal o Zoned Decimal.
I filtri Expand Binary Number to EBCDIC ed Expand Binary Number to ASCII permettono di convertire un numero dal formato binario al formato tipico, rispettivamente, della codifica ASCII o della codifica EBCDIC.
Il filtro Copybook permette di convertire, mediante un opportuno copybook, un export tabellare da mainframe in un file di testo:
✓ a campi delimitati da caratteri speciali, quali virgole, tab o pipe;
✓ a campi di ampiezza fissa;
✓ XML.
Per copybook intendiamo un file di testo particolare, contenente: ✓ la struttura di un file elaborato da sistemi mainframe; ✓ informazioni di rappresentazione dei dati in esso contenuti, quali il tipo dato (i.e. numerico o stringa) ed il formato dei numeri decimali (i.e. Packed o standard). |
Il filtro Copybook richiede di:
✓ copiare il testo del copybook da utilizzare per la lettura del testo in input, nell'editor di testo Paste COBOL Copybook (format) here;
✓ selezionare il tipo di file generato in output dal filtro mediante il campo Output Format.
Il campo Output Format può assumere i valori:
✓ Fixed width, file con campi ad ampiezza fissa;
✓ CSV (comma-delimited), file con campi separati da virgole;
✓ Semi-colon delimited, file con campi separati da punti e virgola;
✓ Tab delimited, file con campi separati dal carattere speciale tab;
✓ Pipe delimited, file con campi separati dal carattere speciale pipe;
✓ XML, file in formato XML.
Infine l'output di un filtro Copybook può essere ulteriormente personalizzato, attivando le seguenti opzioni:
✓ Assume adjacent comp fields are overlapped identifica eventuali caratteri superflui, aggiunti per gestire la conversione, in formato Unsigned Packed Decimal, di numeri decimali con un numero dispari di cifre;
✓ Trim leading spaces and zeros from the output file rimuove eventuali zeri non significativi o spazi iniziali da ogni campo del testo in input;
✓ Allow Comp-3 to be unsigned considera ogni numero in formato Packed Decimal privo di segno;
✓ Only handle numeric fields espone in output i soli campi numerici del testo in input;
✓ Remove Filler fields rimuove i campi, identificati come Filler dal copybook utilizzato per la lettura del testo in input;
✓ Add field name header espone in output le intestazioni dei campi, indicate dal copybook utilizzato per la lettura del testo in input.
I campi Filler di un copybook corrispondono a caratteri riempitivi oppure a informazioni di corredo superflue. |