GET_CP_CONVERT_TABLE

Il verbo GET_CP_CONVERT_TABLE crea e restituisce una tabella di conversione a 256 byte per convertire stringhe di caratteri da una tabella codici sorgente a una tabella codici di destinazione.

Nella struttura seguente viene descritto il blocco di controllo verbo (VCB) utilizzato dal verbo GET_CP_CONVERT_TABLE .

Sintassi

  
struct get_cp_convert_table {  
    unsigned short       opcode;  
    unsigned char        opext;  
    unsigned char        reserv2;  
    unsigned short       primary_rc;  
    unsigned long        secondary_rc;  
    unsigned char        reserv3[8];  
    unsigned short       source_cp;  
    unsigned short       target_cp;  
    unsigned char FAR *  conv_tbl_addr;  
    unsigned char        char_not_fnd;  
    unsigned char        substitute_char;  
};  

Members

Opcode
Parametro fornito. Verbo che identifica il codice dell'operazione SV_GET_CP_CONVERT_TABLE.

opext
Un campo riservato.

reserv2
Un campo riservato.

Primary_rc
Parametro restituito. Specifica il codice restituito primario impostato da APPC al completamento del verbo. I codici restituiti validi variano a seconda del verbo APPC emesso. Per questo verbo, vedere Codici restituiti per codici di errore validi.

Secondary_rc
Parametro restituito. Specifica il codice restituito secondario impostato da APPC al completamento del verbo. I codici restituiti validi variano a seconda del verbo APPC emesso. Per questo verbo, vedere Codici restituiti per codici di errore validi.

reserv3
Un campo riservato.

source_cp
Parametro fornito. Specifica la tabella codici sorgente da cui vengono convertiti i caratteri. Le tabelle codici consentite (valori decimali) sono le seguenti:

  • ASCII 437, 850, 860, 863, 865

  • EBCDIC 037, 273, 277, 278, 280, 284, 285, 297, 500

Sono consentite anche tabelle codici definite dall'utente nell'intervallo compreso tra 65280 e 65535.

Le tabelle codici ASCII vengono talvolta definite tabelle codici PC; Le tabelle codici EBCDIC vengono talvolta definite tabelle codici host.

target_cp
Parametro fornito. Specifica la tabella codici di destinazione in cui vengono convertiti i caratteri. Per le tabelle codici consentite, vedere la definizione precedente per source_cp.

conv_tbl_addr
Parametro fornito. Specifica l'indirizzo del buffer in cui contenere la tabella di conversione a 256 byte. Il buffer deve trovarsi in un segmento scrivibile e deve essere sufficientemente lungo da contenere la tabella.

char_not_fnd
Parametro fornito. Specifica l'azione da eseguire se un carattere nella tabella codici sorgente non esiste nella tabella codici di destinazione:

  • Usare SV_ROUND_TRIP per archiviare un valore univoco nella tabella di conversione per ogni carattere della tabella codici sorgente.

  • Utilizzare SV_SUBSTITUTE per archiviare un carattere sostitutivo (specificato da substitute_char) nella tabella di conversione.

substitute_char
Parametro fornito. Specifica il carattere da archiviare nella tabella di conversione quando un carattere dalla tabella codici sorgente non ha equivalenti nella tabella codici di destinazione.

Codici restituiti

SV_OK
Codice restituito primario; il verbo eseguito correttamente.

SV_PARAMETER_CHECK
Codice restituito primario; il verbo non è stato eseguito a causa di un errore di parametro.

SV_INVALID_CHAR_NOT_FOUND
Codice restituito secondario; il parametro char_not_fnd contiene un valore non valido.

SV_INVALID_DATA_SEGMENT
Codice restituito secondario; l'area a 256 byte specificata per la tabella di conversione si estende oltre il limite del segmento oppure il segmento non è scrivibile.

SV_INVALID_SOURCE_CODE_PAGE
Codice restituito secondario; la tabella codici specificata da source_cp non è supportata.

SV_INVALID_TARGET_CODE_PAGE
Codice restituito secondario; la tabella codici specificata da target_cp non è supportata.

SV_COMM_SUBSYSTEM_NOT_LOADED
Codice restituito primario; Impossibile caricare o terminare un componente richiesto durante l'elaborazione del verbo. Pertanto, la comunicazione non poteva avvenire. Contattare l'amministratore di sistema per un'azione correttiva.

SV_INVALID_VERB
Codice restituito primario; il parametro opcode non corrisponde al codice dell'operazione di alcun verbo. Nessun verbo eseguito.

SV_INVALID_VERB_SEGMENT
Codice restituito primario; VCB si estende oltre la fine del segmento di dati.

SV_UNEXPECTED_DOS_ERROR
Codice restituito primario; si è verificata una delle condizioni seguenti:

  • Il sistema Microsoft® Windows® ha rilevato un errore durante l'elaborazione del verbo. Il codice restituito dal sistema operativo è stato restituito tramite il codice restituito secondario. Se il problema persiste, contattare l'amministratore di sistema per un'azione correttiva.

  • Un volume condiviso cluster è stato emesso da un ciclo di messaggi richiamato da un'altra applicazione che emette una chiamata di funzione SendMessage di Windows, anziché dalla chiamata di funzione PostMessage di Windows più comune. L'elaborazione dei verbi non può essere eseguita.

  • È stato generato un file CSV quando SendMessage ha richiamato l'applicazione. È possibile determinare se l'applicazione è stata richiamata con SendMessage usando la chiamata di funzione API Windows InSendMessage .

Commenti

Il tipo Un set di caratteri è costituito da:

  • Lettere maiuscole.
  • Numerali da 0 a 9.
  • Caratteri speciali $, #, @e spazio.

Questo set di caratteri è supportato da una tabella di conversione A fornita dal sistema.

Il primo carattere della stringa di origine deve essere una lettera maiuscola o il carattere speciale $, #o @. Gli spazi sono consentiti solo nelle posizioni finali. Le lettere ASCII minuscole vengono convertite in lettere EBCDIC maiuscole quando la direzione è ASCII in EBCDIC.

Il set di caratteri AE di tipo è costituito da:

  • Lettere maiuscole.
  • Lettere minuscole.
  • Numerali da 0 a 9.
  • Caratteri speciali $, #, @, punto e spazio.

Questo set di caratteri è supportato da una tabella di conversione AE fornita dal sistema.

Il primo carattere della stringa di origine può essere qualsiasi carattere nel set di caratteri, ad eccezione dello spazio.

Durante la conversione, gli spazi vuoti incorporati (inclusi gli spazi vuoti nella prima posizione) vengono convertiti in 0x00. Anche se tale conversione verrà completata, CONVERSION_ERROR viene restituito come codice restituito secondario, a indicare che la libreria CSV ha completato una conversione irreversibile sui dati forniti.

Per Windows, una descrizione di COMTBLG deve puntare al Registro di sistema di Windows in \SnaBase\Parameters\Client. Per il sistema operativo OS/2, la directory e il file contenente la tabella devono essere specificati dalla variabile di ambiente COMTBLG. Se il file non viene trovato, il sistema restituisce il controllo del parametro SV_TABLE_ERROR.

Il valore SV_ROUND_TRIP per char_not_fnd è utile solo se si compila una seconda tabella di conversione per eseguire la conversione tra le stesse due tabelle codici nella direzione inversa. Se si specifica il valore di SV_ROUND_TRIP nella compilazione di entrambe le tabelle di conversione, qualsiasi carattere convertito da una tabella codici all'altra e quindi verrà modificato.

Quando si usa il valore SV_SUBSTITUTE per char_not_fnd, la conversione della stringa di caratteri tradotta nella tabella codici originale non comporta necessariamente la ricreazione della stringa di caratteri originale.

Usare substitute_char solo se char_not_fnd è impostato su SV_SUBSTITUTE.

Il valore archiviato nella tabella di conversione è il valore ASCII associato al carattere. Se la tabella viene utilizzata per la conversione da ASCII a EBCDIC, il carattere visualizzato nella stringa convertita è il carattere associato al valore EBCDIC numerico anziché ASCII.

Ad esempio, se si specifica il carattere di sottolineatura () (valore ASCII F6) durante la creazione di una tabella di conversione da ASCII a EBCDIC, il carattere visualizzato nelle stringhe convertite sarà 6, il carattere associato al valore F6 in EBCDIC. Per usare il carattere \ come carattere sostitutivo in una tabella di conversione da ASCII a EBCDIC, è necessario specificare il valore E1 (il valore associato al carattere _ in EBCDIC) anziché il carattere effettivo.

Una tabella codici è una tabella che associa valori ASCII o EBCDIC specifici a caratteri specifici. Se nella tabella codici di destinazione non esiste un carattere della tabella codici sorgente, la stringa tradotta (di destinazione) è diversa dalla stringa originale (di origine).