Formato TDS: tipi di separazione delimitata

Per i tipi di separazione delimitata, viene utilizzato un delimitatore per separare i campi dei dati, ma non sono presenti tag. E' necessario fornire i campi dei dati nell'ordine corretto nel flusso di bit e non è possibile omettere elementi dal centro del flusso di bit.

Il tipo di separazione Tutti gli elementi delimitati significa che i campi dei dati sono delimitati da una stringa o da un carattere specificato in precedenza. In questo esempio, quattro campi dei dati sono separati da un delimitatore asterisco (*):
data1*data2*data3*data4
I tipi di separazione delimitata sono restrittivi nell'ordine e nella presenza di elementi:
Dopo aver descritto le Regole di troncamento ed eliminazione del delimitatore, il presente argomento descrive i seguenti tipi di separazione delimitata:

Regole di troncamento ed eliminazione del delimitatore

Tutti gli elementi delimitati

In un tipo di separazione Tutti gli elementi delimitati, tutti gli elementi sono separati da un delimitatore; nessuno è determinato dalla lunghezza. Ad esempio:
data1*data2*data3*data4*data5
dove il delimitatore è *.

Parametri applicabili

Vengono utilizzati questi parametri:
  • Indicatore di gruppo indica l'inizio di un gruppo o di un tipo complesso.
  • Carattere di terminazione di gruppo indica la fine di un gruppo o di un tipo complesso.
  • Delimitatore separa gli elementi dati all'interno di un gruppo o di un tipo complesso.
  • Elimina delimitatori dell'elemento assente indica se la soppressione del delimitatore è consentita (consultare la sezione in basso).

Con Tutti gli elementi delimitati non verranno utilizzati tag o parametri associati. Anche le lunghezze verranno ignorate.

Ad esempio:
{data1*data22222*data3}
dove:
  • Indicatore di gruppo è {
  • Carattere di terminazione di gruppo è }
  • Delimitatore è *

Regole dell'elemento ripetuto

Se è necessario ripetere un elemento in un tipo di Tutti gli elementi delimitati, per separare gli elementi ripetuti viene utilizzato RED (Delimitatore elemento ripetuto).

Ad esempio, se data2 si ripete 5 volte:
data1*data2:data2:data2:data2:data2*data3*data4
dove:
  • Delimitatore è *
  • Il delimitatore elemento ripetuto è :
Se il campo Elimina delimitatori dell'elemento assente viene impostato su Fine di tipo, è possibile utilizzare l'eliminazione del delimitatore. Pertanto se, nell'esempio riportato sopra, fosse presente solo il primo elemento data2, nel flusso di bit si leggerebbe:
data1*data2*data3*data4
Tuttavia, se il campo Elimina delimitatori dell'elemento assente viene impostato su Mai, nel flusso di bit si legge:
data1*data2::::*data3*data4
Se il delimitatore e RED corrispondono, i due delimitatori vengono emessi per indicare che termina la ripetizione. Pertanto, se il delimitatore e RED sono *, nel flusso di bit si legge:
data1*data2**data3*data4

Delimitato da elementi a lunghezza variabile

In un tipo di separazione delimitato da elementi a lunghezza variabile (definito anche tipo di separazione delimitato e fisso) alcuni elementi vengono determinati in base alla lunghezza mentre altri vengono delimitati. Si tratta in realtà di una combinazione di un formato a lunghezza fissa e delimitato e segue delle regole associate a entrambi i tipi. E' possibile fornire e utilizzare le lunghezze, ma non sono obbligatorie.
  • Se una lunghezza è presente per un elemento, viene utilizzata e non sarà necessario un delimitatore per terminare l'elemento. E' necessario completare l'elemento con la lunghezza corretta e che tale elemento non superi tale lunghezza.
  • Se non viene fornita una lunghezza, verrà richiesto un delimitatore.

Un tipo di separazione delimitato da elementi a lunghezza variabile in cui sono contenuti solo elementi a lunghezza variabile somiglia a un tipo del genere Tutti gli elementi delimitati. Se in esso sono contenuti solo elementi a lunghezza fissa, somiglia a un tipo Lunghezza fissa.

Ad esempio:
data1*data2*data3*data4000data5
dove:
  • Delimitatore è *
  • data4 dispone di una lunghezza pari a 8

Parametri applicabili

Vengono utilizzati questi parametri:
  • Indicatore di gruppo indica l'inizio di un gruppo o di un tipo complesso.
  • Carattere di terminazione di gruppo indica la fine di un gruppo o di un tipo complesso.
  • Delimitatore separa gli elementi dati all'interno di un gruppo o di un tipo complesso.
  • Elimina delimitatori dell'elemento assente indica se la soppressione del delimitatore è consentita.
  • Uno tra Lunghezza o Riferimento di lunghezza indica la lunghezza di un elemento. Se un elemento dispone di una lunghezza, questa verrà utilizzata. Poiché la lunghezza di questo elemento è nota, non è necessario emettere un delimitatore dopo di esso. Se la lunghezza non è nota, è richiesto un elemento.
In questo esempio il quarto campo (in cui è contenuto data4) è di lunghezza fissa 8 e il relativo carattere di riempimento è 0:
{data1*data22222*data3*data4000data5}
dove:
  • Indicatore di gruppo è {
  • Carattere di terminazione di gruppo è }
  • Delimitatore è *

Regole dell'elemento ripetuto

L'azione di un elemento ripetuto in un ambiente delimitato da elementi a lunghezza variabile dipende dal numero minimo e massimo di ripetizioni e dal fatto che l'elemento disponga o meno di una lunghezza.

Ripetizione di un elemento delimitato

Se un elemento delimitato (vale a dire un elemento senza lunghezza) è ripetuto, è richiesto un RED (Delimitatore elemento ripetuto) e vengono seguite le regole valide per Tutti gli elementi delimitati. E' pertanto richiesto un delimitatore dopo l'ultima ripetizione. E' possibile che si verifichi inoltre l'eliminazione del delimitatore di questa ripetizione.

Ad esempio, se data2 si ripete:
data1*data2:data2:data2:data2:data2:data2*data3*data4000data5
dove:
  • Delimitatore è *
  • Il delimitatore elemento ripetuto è :
  • data4 dispone di una lunghezza fissa pari a 8

Se il campo Elimina delimitatori dell'elemento assente viene impostato su Fine di tipo, è possibile utilizzare l'eliminazione del delimitatore.

Se nell'esempio riportato sopra è presente solo il primo data2:
data1*data2*data3*data4000data5
Tuttavia, se il campo Elimina delimitatori dell'elemento assente viene impostato su Mai, nel flusso di bit si legge:
data1*data2:::::*data3*data4000data5
Se il delimitatore e RED corrispondono, i due delimitatori vengono emessi per indicare che termina la ripetizione. Pertanto, se il delimitatore e RED sono entrambi *, nel flusso di bit si legge:
data1*data2**data3*data4

Questo si applica inoltre per un gruppo o tipo complesso a lunghezza non fissa all'interno di un ambiente delimitato da elementi a lunghezza variabile.

Ripetizione di un elemento a lunghezza fissa

Se un elemento con una lunghezza definita (elemento a lunghezza fissa) si ripete e il numero di ricorrenze minimo non coincide con il numero massimo di ricorrenze, non è richiesto un RED, ma dopo l'ultima ripetizione è richiesto un delimitatore. E' possibile che si verifichi l'eliminazione del delimitatore di questa ripetizione.

Ad esempio, se data4 (con una lunghezza fissa pari a 8) si ripete e il relativo numero minimo di ricorrenze è pari a 2, il numero massimo di ricorrenze è 4:
data1*data2*data3*data400data400data400data400*data5
dove il delimitatore è *.
In alternativa, se sono presenti solo due ricorrenze di data4:
data1*data2*data3*data4000data4000*data5

Se un elemento con una lunghezza definita (elemento a lunghezza fissa) si ripete e il numero di ricorrenze minimo coincide con il numero massimo di ricorrenze, non è richiesto un RED. Non è richiesto neanche un delimitatore dopo l'ultima ripetizione. Non è possibile il troncamento di questa ripetizione ed è necessario che siano presenti tutti gli elementi.

Ad esempio, se data4 (con una lunghezza fissa pari a 8) si ripete quattro volte:
data1*data2*data3*data4000data4000data4000data4000data5
dove il delimitatore è *.
In alternativa, se sono presenti solo due ricorrenze di data4:
data1*data2*data3*data4000data40000000000000000000data5

Questo si applica inoltre per un gruppo o tipo complesso a lunghezza non fissa all'interno di un ambiente delimitato da elementi a lunghezza variabile.

Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ad00812_