Come assegnare stringhe di caratteri mainframe con spazi

È possibile definire le proprietà per una stringa in modo che l'ambiente run-time di Transaction Integrator (TI) aggiunge spazio al pad la rappresentazione mainframe della stringa anziché a seconda di un carattere di terminazione Null.

Per usare un carattere di terminazione spazio o Null

  1. In Microsoft Visual Studio fare clic con il pulsante destro del mouse sull'oggetto e quindi scegliere Proprietà.

  2. In Informazioni tipo di dati host nel riquadro Proprietà fare clic su Delimitazione stringa.

  3. Selezionare Spazi vuoti o Null Terminati.

    La tabella seguente descrive ciò che accade con ogni opzione di delimitazione (spaziatura interna o null terminata) durante la conversione nel tipo di stringa indicato.

Tipo di operazione stringa Cosa accade per ogni tipo di operazione di delimitazione di stringhe
Conversione in stringa EBCDIC Spaziatura spaziata. L'ambiente di runtime TI aggiunge spazio a byte singolo alla fine della stringa fino a quando non vengono riempiti tutti i byte nella stringa formattata PIC X.
Null terminato. L'ambiente di runtime TI aggiunge un singolo carattere Null alla fine della stringa se è presente spazio nel conteggio PIC X per il byte.
Conversione dalla stringa EBCDIC Spaziatura spaziata. L'ambiente di runtime TI esegue lo striping dello spazio a byte singolo dalla fine della stringa.
Null terminato. L'ambiente di runtime TI analizza dall'inizio della stringa e arresta la conversione al primo carattere Null che rileva nella stringa.
Conversione in stringa DBCS Spaziatura spaziata. L'ambiente di runtime TI aggiunge spazio doppio byte alla fine della stringa fino a quando non vengono riempiti tutti i caratteri nella stringa formattata PIC G.
Null terminato. L'ambiente di runtime TI aggiunge un carattere null a byte doppio alla fine della stringa se è presente il conteggio pic G per i byte.
Conversione dalla stringa DBCS Spaziatura spaziata. L'ambiente di runtime TI esegue lo striping dello spazio a doppio byte dalla fine della stringa.
Null terminato. L'ambiente di runtime TI analizza dall'inizio della stringa e arresta la conversione al primo carattere NULL DBCS che rileva nella stringa.
Conversione in stringa intermixed Spaziatura spaziata. L'ambiente di runtime TI aggiunge spazio a byte singolo alla fine della stringa fino a quando non vengono riempiti tutti i byte nella stringa formattata PIC X. Se il carattere di terminazione nella stringa UNICODE viene mappato a un carattere DBCS, l'ambiente di runtime TI aggiunge un carattere SI prima di aggiungere i caratteri di spazio.
Null terminato. L'ambiente di runtime TI aggiunge un singolo carattere Null byte alla fine della stringa se è presente spazio nel conteggio PIC X. Se il carattere di terminazione nella stringa UNICODE esegue il mapping a un carattere DBCS, l'ambiente di runtime TI aggiunge un carattere SI prima di aggiungere il carattere Null.
Conversione da stringa intermixed Spaziatura spaziata. L'ambiente di runtime TI stripa i caratteri di spazio a byte singolo e doppio byte dalla fine della stringa. Quando esegue lo striping dei caratteri di spazio, l'ambiente di runtime TI considera qualsiasi carattere SI terminante come se fosse uno spazio.
Null terminato. L'ambiente di runtime TI analizza dall'inizio della stringa e arresta la conversione al primo carattere Null (di una larghezza) che rileva.

La gestione speciale si verifica per una stringa che è ultima nel buffer host e che viene contrassegnata come ultima variabile. Ad esempio:

  • Spaziatura spaziata. Dopo la conversione in una stringa EBCDIC (Extended Binary Coded Decimal Coded Decimal Coded), la stringa viene terminata dal numero di lunghezza del buffer contenente, quindi non contiene altri caratteri di spazio. Dopo la conversione da una stringa EBCDIC, il buffer viene considerato terminato dal conteggio della lunghezza del buffer contenente; quindi la stringa viene esaminata per la spaziatura vuota. L'host può inviare questa stringa vuota spaziata oltre i dati significativi o meno spaziati, ma con l'ultimo carattere significativo della stringa nell'ultima posizione del buffer contenente. Il carattere di spazio è determinato dal tipo di stringa (singolo, doppio o intermixato).

  • Null terminato. Dopo la conversione in una stringa EBCDIC, la stringa viene inviata come è. L'ambiente di runtime TI controlla la lunghezza della stringa e quindi verifica che venga inviato il numero esatto di caratteri. In altre parole, il numero di caratteri inviati è uguale alla lunghezza della stringa. Nessun terminatore null o spazi viene aggiunto alla fine della stringa.

    Nelle tabelle seguenti viene illustrato il funzionamento della delimitazione della stringa quando la proprietà di delimitazione String è impostata su Spazi spaziati rispetto a Null terminati in combinazione con l'impostazione delle dimensioni della variabile. Tutti gli esempi presuppongono la dichiarazione dei dati del mainframe come PIC X(5). "b" rappresenta uno spazio, "?" rappresenta i dati non assegnati e "\0" rappresenta un valore Null.

Delimitazione stringa impostata su Spazia spaziatura e dimensione variabile non attiva

Workstation Direzione Mainframe
ABC\0 Per ospitare 'ABCbb'
ABCb Per ospitare 'ABCbb'
CBA Dall'host 'CBAbb'
CBA\0? Dall'host 'CBA\0?'
CBA\0 Dall'host 'CBA\0b'

Delimitazione stringa impostata su Spazia spaziatura e dimensione variabile attiva

Workstation Direzione Mainframe
ABC\0 Per ospitare 'ABC'
Abb Per ospitare 'Abb'
CBA Dall'host 'CBAbb'
CBA\0? Dall'host 'CBA\0?'
CBA\0 Dall'host 'CBA\0b'

Delimitazione stringa impostata su Null con terminazione e dimensione variabile non attiva

Workstation Direzione Mainframe
ABC\0 Per ospitare 'ABC\0?'
ABC Dall'host 'ABC\0?'
ABCbb Dall'host 'ABCbb'
ABC Dall'host ABC\0\0'

Delimitazione stringa impostata su Null con terminazione e dimensione variabile attiva

Workstation Direzione Mainframe
ABC\0 Per ospitare 'ABC\0'
ABC Dall'host 'ABC\0?'
ABCbb Dall'host 'ABCbb'
ABC Dall'host ABC\0\0'

Vedere anche

Stringhe di caratteri e tabelle codici del mainframe